summaryrefslogtreecommitdiff
path: root/magickindle
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2020-01-26 12:02:24 +0100
committerschneefux <schneefux+commit@schneefux.xyz>2020-01-26 15:55:18 +0100
commit8b1a693f9f8492f9a9e49aef6b3a64ace9e50e9d (patch)
tree75e165d64e6758113151d10e871563ae428bc773 /magickindle
downloadmagic-kindle-master.tar.gz
magic-kindle-master.zip
Import into gitHEADmaster
Diffstat (limited to 'magickindle')
-rw-r--r--magickindle/bin/start.sh58
-rw-r--r--magickindle/config.xml12
-rw-r--r--magickindle/menu.json9
3 files changed, 79 insertions, 0 deletions
diff --git a/magickindle/bin/start.sh b/magickindle/bin/start.sh
new file mode 100644
index 0000000..4b260ad
--- /dev/null
+++ b/magickindle/bin/start.sh
@@ -0,0 +1,58 @@
+#!/bin/sh
+# redirect stderr and stdout to file
+exec >> /mnt/us/log 2>&1
+
+# kill other instances of this script
+me=$$
+ps -ef | grep 'start.sh' | awk -v me=$me '$2 != me {print $2}' | xargs kill
+
+echo "$(date) starting"
+
+update_screensaver() {
+ echo "$(date) downloading screensaver"
+
+ #echo "$(date) enabling wifi"
+ #lipc-set-prop com.lab126.cmd wirelessEnable 1
+ for i in 1 2 3 4 5
+ do
+ curl "CHANGETHIS.png" --output /mnt/us/screensaver.png --fail --silent --show-error && break
+ sleep 10
+ done
+ # turning off wireless during ready to suspend causes issues with Kindle Wifi
+ # - the Kindle forgets the gateway, the configuration gets desynced,
+ # leading to the Kindle being connected but having no network
+ #echo "$(date) disabling wifi"
+ #lipc-set-prop com.lab126.cmd wirelessEnable 0
+
+ echo "$(date) updating screen"
+ eips -f -g /mnt/us/screensaver.png
+}
+
+LAST_UPDATE=0
+lipc-wait-event -m com.lab126.powerd goingToScreenSaver,readyToSuspend | while read event
+do
+ echo "$(date) event $event"
+
+ # throttle to 1/minute
+ NOW=$(date +%s)
+ if [ "$(($NOW - $LAST_UPDATE))" -ge 60 ]
+ then
+ # run in background so loop is not blocked
+ update_screensaver &
+ fi
+ LAST_UPDATE=$NOW
+
+ case "$event" in
+ # event looks like "goingToScreenSaver 7" so use a regex
+ readyToSuspend*)
+ echo "$(date) scheduling wakeup"
+ # must be called within 5s after readyToSuspend
+ # 60s until screensaver + 29min sleep
+ lipc-set-prop -i com.lab126.powerd rtcWakeup 1740
+ ;;
+ goingToScreenSaver*)
+ ;;
+ esac
+ echo "$(date) waiting for next event"
+done;
+
diff --git a/magickindle/config.xml b/magickindle/config.xml
new file mode 100644
index 0000000..5f28dd6
--- /dev/null
+++ b/magickindle/config.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<extension>
+ <information>
+ <name>Magic Kindle</name>
+ <version>0.1</version>
+ <author>schneefux</author>
+ <id>MagicKindle</id>
+ </information>
+ <menus>
+ <menu type="json" dynamic="true">menu.json</menu>
+ </menus>
+</extension>
diff --git a/magickindle/menu.json b/magickindle/menu.json
new file mode 100644
index 0000000..5248ce6
--- /dev/null
+++ b/magickindle/menu.json
@@ -0,0 +1,9 @@
+{
+ "items": [
+ {"name": "Magic Kindle Screensaver",
+ "items" : [
+ {"name": "Start", "priority":0, "action": "bin/start.sh" }
+ ]
+ }
+ ]
+}