For now I will simply post it as DIY instructions. Not sure when and if I get around to get it packaged (never packaged anything, so my learning curve starts at ZERO).
You need USB Network access to your Paperwhite. I do not wish that anyone just follow these instructions unless they are comfortable doing it. If you scratch your head, because something doesn't make sense, then DON'T DO ANY OF THIS
. Please don't complain later that I did not warn you.
Instructions are in the Spoiler:
The Hack, as you can see, is rather simple and short. That doesn't mean it is not doing what it should. It also means that it is less likely to misfunction. What does it do? When you wake up from sleep (either by pushing the power button or by opening your cover) the light of the Paperwhite gets turned of. This happens if and only if these conditions are met:
- the file TURN_LIGHT_OFF
exists in folder /mnt/us (empty or not doesn't matter)
- the light is set to level 0 (no bars showing) according the setting screen of the Paperwhite
Also make sure that lipcd is running and using the correct settings. Easiest way to make sure is to stop it (stop libcd
) and restarting it (start lipcd
) after you made the change to the config file. Once it is running, it doesn't need to be restarted again. No need to go back into the USB Network for it to keep working after eventual restarts.
Now to install it you need to:
Create the file /usr/bin/lightoff.sh with the following content. When I made did it I copied another shell script to the new file and replaced the content. (That was easier for me than to figure out what permissions the Kindle likes to have)
FLINTENSITY=`lipc-get-prop com.lab126.powerd flIntensity`
if [ -e "/mnt/us/TURN_LIGHT_OFF" ]
if [ "$FLINTENSITY" -eq 0 ]
/bin/echo -n 0 > /sys/devices/system/fl_tps6116x/fl_tps6116x0/fl_intensity;
Here is also the chance to modify it to a desired (other than 0) intensity setting, if you so wish. Please note that the intensity I check against is the setting of the bar, not the actual setting the light is set on (so it should be 0-24). Who knows what logic Amazon uses to translate light bars into real intensity values - plus it might change. I gave my reasons before on why I won't change it to anything else than 0 or to make it customizable. Not going to repeat myself. That I coincidentally made it so easy to customize has nothing to do with my foresight of it beeing a possibility. In fact, if it would have created cleaner code, I would have avoided this. You might also notice the lack of comments in the script. That is on purpose as well, it practically reads itself. If it doesn't for you, then don't mess with it. A little side note for the the necessity of the delay in there: If you take the call to sleep out, the whole functionality will break. I believe it has something to do with calling and finish executing the script BEFORE the Kindle had time to turn the light on. If the light is not on, then turning it off is redundant. Even worse, the light would stay on, contrary to what you want to do. (Doh
The file /etc/lipc-daemon-events.conf needs the last line added (in green). This is the complete file, the non-green part is the default file. It even includes (and I did not edit that) the typo evetns (in red)
## This file defines what evetns are handled by lipc-daemon
## The format of the file is
##<event name> <event publisher> <command to execute when event is received>
## NOTE: By default the event name and any parameters are passed to the script as arguments. If you want to ignore the arguments,
## you must add a semi-colon (;) to the end of the script command.
FrameworkStarted com.lab126.framework rm -f /var/local/system/.framework_retries /var/local/system/.framework_reboots
tzRequested com.lab126.framework settz
interfaceChange com.lab126.cmd /usr/sbin/updatetime;
triggerTimeChange com.lab126.cmd /usr/sbin/updatetime
networkTime com.lab126.wifid /usr/sbin/setdate
## Uncomment the following line if you want to see when lipc-daemon received
## outOfScreenSaver event. Useful for debugging out of suspend performance
#outOfScreenSaver com.lab126.powerd . /etc/rc.d/functions; msg "lipc-daemon got outOfScreenSaver at `date +%s`s" I; true;
outOfScreenSaver com.lab126.powerd /usr/bin/lightoff.sh
Please note: If you ever want to edit this file again and try out to uncomment the other outOfScreenSaver, then you MUST
comment out the one for the light. If you have 2 lines with the same event, it does not call any of them. Also, you NEED
to restart the lipc daemon after you edited the file. (see above)
last not least:
The file TURN_LIGHT_OFF
needs to be in usb partition (/mnt/us) (so that it can be disabled simply by deleting or renaming the file - just like USE_ALT_FONTS). That is an easy way to turn the light hack completely on or off with only access to the usb-visible disk.
Simplest way to make it is like this:
I hope this is useful. If I get enough time this weeking, I will try to start figuring out on how to package it. It all but looks like a short weekend aka nonexistant. Shutdown over Christmas / New Year usually comes to haunt us with a vengence in the form of overtime. Tonight it is time for me to go back to work
p.s.: If someone wants to have a go at packaging it, please feel free to do so and use all knowledge and code. If you change functionality (e.g. different light level, customizable light level or anything) please don't claim that it was my work. The code I made is robust, but I won't voucher for it if it is changed. And yes if you want to give me credit for inspiration, feel free to do so. If it wasn't for others, even this would not have been possible. Special thanks to: knc1
(they know why)
p.p.s: Just seen ixtab
has the margins fixed in JBPatch (see here
). Yay good timing on his part. Time to tinker with that a bit.
decided to lay the packaging on ice for now. This is really easy enough to do if you have usb network installed. Plus since I discovered a way to turn the light off w/o jailbreak, there is no incentive for me right now to learn a new trick. See post #78 for the joilbreak free method.