What ever happened to the eink screen on my netbook? I hadn’t used it in months… Not just because I got busy and the weather got cloudy, but because it lacked polish. It worked, but it didn’t Just Work. There were commands to remember, and options to configure. It involved telnet. It just wasn’t production-level shiny. But now my headaches are back, which got me back to thinking and tinkering.
The setup as it stands
Execute on Kindle DX directly: (Only if not already set)
;debugOn
`usbNetwork
Plug in Kindle DX.
Execute on netbook:
sudo net/kindle.sh
#!/bin/sh
INTERFACE=`ip link|grep enp0s29f7|awk -F: '{print $2}'`
ip link set $INTERFACE up
ip addr add 192.168.2.1/255.255.255.0 dev $INTERFACE
This is such a mess because, despite being a ‘static’ interface name, the interface name is NOT static; only its prefix is.
Execute on netbook:
x11vnc -scale 1200x824 -clientdpms
Make sure the Kindle DX is sideways and not on screensaver.
Use netbook to execute on Kindle DX:
telnet 192.168.2.2
/etc/init.d/netwatchd stop
/mnt/us/kindlevncviewer/kvncviewer.sh 192.168.2.1:0
Quickly hide both vnc related windows because they’re scrolling junk. And that’s it; you’re set.
Kill x11vnc
to get back out of it. If you pull the cable, you can use ctrl-]
to regain control of your telnet session. If you killed the client instead of the server, log back into the kindle and restart powerd
to get sleep switch functionality back.
How well it works
Well, it *does* work… But I’m not going for dancing bear prizes here.
It’s hard to read. In lighting where an ebook on the Kindle would be fine, this isn’t just not fine, it’s more eye strain than using the lcd screen. At least, when I don’t have a headache. It’s still more usable than the lcd with a headache. On close inspection, the readability issue seems to be one of font clarity. White areas are white and black areas are black, but most fonts appear to be mostly neither. Still, passable in bright enough light, though bold lines would help.
Block updates help usability on most regions, though they make scrolling text painful. Pagination is definitely the order of the day for any system designed to use eink. Scrolling a text block updates the entire thing painfully. On the other hand, small changes to text in an otherwise unobserved corner of my screen are actually noticed this way because of them briefly flashing black. This means I spot chat alerts, draft saves, etc. much more readily.
Screen delays are neither good nor bad exactly. They lend a familiar but very different dynamic to the interaction. If you’ve ever telneted into a unix server from a green phosphor terminal over a slow modem, you’ll know exactly the dynamic I’m talking about. Or, even more exactly, one of the early monochrome Sun monitors. Great for contemplating single screens of data, annoying if you need to switch back and forth between stuff.
The mouse is barely usable, so keyboard shortcuts are a must. Typoes are likewise hard to catch quickly, so accurate typing matters far more than usual. This makes it critical to have a reliable keyboard, and means that only very reliable applications are usable quickly. Far too many modern apps drop keystrokes at speed, which failures are ordinarily both easily mistaken for human error and easily corrected on the fly.
Default console colors translate into greyscale poorly and inconsistently. This is a source of a lot of the weak grey tones, though scaling also seems to contribute to those. It makes vim syntax highlighting counter-productive. Fortunately, code is also more readable without highlighting than usual. The most natural color scheme is primarily white, which is a reversal of my normal tendencies on an lcd screen, so I had to redo themes and wallpapers. However, this makes bright websites non-annoying without resorting to scripts. In particular, some sites using the modern large fonts on white style become nearly as comfortable as ebooks.
Physically, the setup is bulky and top-heavy. The kindle is best stored in its case so the screen doesn’t get damaged, which adds even more bulk. It’s a lot harder to balance on my lap than the netbook alone is.
The screen is mostly off behind the kindle, but not entirely. Dpms isn’t ignoring key strokes, so it flashes white on occasion. This would be really annoying if it weren’t covered over. There is also no screen blanking of the kindle. Sure, this doesn’t draw power or damage anything, but I still consider it a misfeature. Ghosting is also present on the eink screen, but I haven’t found it anywhere near as troublesome as expected.
Ideas by the bucketload
Since a lot of the frustration is with form factor, top-heaviness etc. I am pondering whether replacing the shells of both devices with a custom case would be feasible. This would be a grand opportunity to steampunkify the entire thing, of course, which is far too tempting, if entirely outside the realm of my hardware modification experience. It’d be a serious case mod, requiring custom wiring and a lot of fiddly bits. But it gives me something pleasant to ponder while chasing the software around in circles.
On the software side, you may have noticed that I switched back to x11vnc
from Xvnc
upon discovering that there was an option that would let me stretch the screen to the kindle’s resolution. This allows switching screens without having to restart all of my apps or move them to different workspaces, means I don’t have issues with the pointer sliding off the screen, and means I don’t have to go track down ways to increase my font size. It does, however, also mean that I’m not using the full resolution of the kindle, my fonts don’t pixel align with the kindle pixels, and images are stretched more in one direction than in the other.
The lack of pixel alignment is what causes the ambiguous grey fuzziness. It’s an unacceptable downside in the long term. But not having to bring up a whole new workspace was a *huge* advantage… Bugger. Insoluble, for now. Maybe if I could sufficiently script the whole obnoxious… Ok, next problem.
Startup is way WAY too manual. I’d like to just plug the kindle in, hit a key combo on it, and have the whole thing swap over. Can I do this? First, the network would have to enable itself automatically. netctl
should allow me to do this. Except, its profiles rely on the static interface names actually being static. Which in this case they aren’t. Bugger. I’d have to either figure out how to make the interface names static, or find another way of hooking a network script to the plug-in action.
Once the network is up properly, it would be nice to use a key combo on the kindle rather than having to telnet in. As my original post referred to, there are directions for setting this up. They boil down to ‘go here, get launchpad, install it’. The vnc viewer already comes with a configuration script for it. However, it also comes with a script for running all the relevant commands automatically from the computer. Which might be even handier, seeing as how that’s the keyboard I expect to already have my hands on and be running any automation from. It’s based on Xvnc
, though it certainly doesn’t need to be, and will apparently require me to figure out how to use multiple ssh keys since I’m certainly not going to render my primary key passwordless.
In the process of messing with this, I naturally discovered that the Xvnc
and x2vnc
setup I’d previously used was no longer functional. Aaaargh. But I will not bang my head on the wall of software all of the time. Hardware daydreams are at least as productive. I’d love to see this thing in a wooden case, with metal fiddly bits and a nice light that could be extended from the top for when I didn’t want to turn the room lights on, the screen set to flip around between the lcd and eink, a sturdier keyboard with comfy custom keys… I can at least daydream.