Selectable text justification is one the issues that I've been keen to have Amazon address. They actually built this feature into all Kindles but left it disabled. I've not seen any issues when using the built in left justification but maybe there is a reason Amazon left it disabled. Maybe it is buggy? Maybe some publishers are forcing Amazon to keep the feature off the Kindle? This is the third generation of the Kindle hardware without an official left justification toggle and it doesn't seem likely that Amazon will enable this so I'll go over the steps I took to enable the built in justification toggle (full, left) on the DX.
First, a bit of background. Out of the box, the Kindle uses full text justification. This means that the left and right margins are even. This looks good to most folks. It is how most printed books look and works well enough. I find that full justification is distracting and prefer a single space between words with a ragged right margin. This is a more agreeable to me when you have the ability to change font sizes, it keeps the white space uniform between the words no matter what font size. (see attached images)
I've been following ebs lead on the screen saver fix and poked around the DX until I found the settings that need to be changed to enable the justification toggle. Once these settings are added to your DX, you will see the toggle show up automatically on the font (aA button) screen.
The settings to allow the toggle reside in this file:
system/com.amazon.ebook.booklet.reader/reader.pref.default
Here is how mine looks now:
Code:
#Reader Booklet
#Tue Jul 21 09:31:16 GMT 2009
FONT_SIZE=36
JUSTIFICATION=left
LAST_BOOK_READ=/mnt/us/documents/UR-asin_B001RF3U9K-type_EBOK-v_0.azw
ALLOW_JUSTIFICATION_CHANGE=true
You can view this file in any text editor. It is in the user mountable section at the same level as the documents folder. Unfortunately, you can't just add ALLOW_JUSTIFICATION_CHANGE=true because the Kindle framework rewrites this file when shutting down. The settings need to be injected after boot but before the java framework is started. Since I already implemented ebs usbnetworking auto start script, I decided to hijack it to see what happened. It worked. My changes are in
bold
Code:
#!/bin/sh
_FUNCTIONS=/etc/rc.d/functions
[ -f ${_FUNCTIONS} ] && . ${_FUNCTIONS}
US_ENABLE=/mnt/us/usbnet/AUTO
case "$1" in
start)
if [ -f ${US_ENABLE} ]; then
/mnt/us/usbnet/usbnetwork
echo "JUSTIFICATION = left" >> /mnt/us/system/com.amazon.ebook.booklet.reader/reader.pref
echo "ALLOW_JUSTIFICATION_CHANGE = true" >> /mnt/us/system/com.amazon.ebook.booklet.reader/reader.pref
else
msg "not usbnet" I
fi
;;
stop)
;;
*)
msg "Usage: $0 {start|stop}" W >&2
exit 1
;;
esac
exit 0
With these changes, I rebooted once into auto usbnetworking. That injected the changes. Another reboot is needed to get back to normal mode. Although this works, the echo lines should be moved to separate script and there needs to be some shell logic written to prevent injecting the justification lines into the reader.pref file if they already exist. If there is enough interest, these changes could be packaged up into a binary file to make updating easier. Also, there needs to be a way to reverse this change.
-robert