Geeking out an OLPC
— David Wagner 2008/12/10 00:09 Notes
I'm anxiously awaiting a used One Laptop per Child (OLPC) machine and intend to geek it out for productivity. Besides installing Debian Linux to match the distros on other systems around, this thing will need a nice collection of lightweight applications, most of them to run in monochrome mode.
One interesting twist is that I want to be able to use most of these offline, but synchronize them with online repositories when a connection is available. Email for messages and DokuWiki for most text-based data are reasonable choices for the online repositories to help keep things straight.
Console Applications
| Landscape | Portrait | |
|---|---|---|
| Font | 1200×900 | 900×1200 |
| 6×12 | 200×75 | 150×100 |
| 8×14 | 150×64 | 112×85 |
| 8×16 | 150×56 | 112×75 |
| 10×20 | 120×45 | 90×60 |
| 12×24 | 100×29 | 75×50 |
| 14×28 | 85×32 | 64×42 |
| 16×32 | 75×28 | 56×37 |
Screen size in Terminus characters
The LCD screen is rated at 200 dpi (square pitch at 152x114mm), and is 1200×900 grayscale. Because of the way this unusual dual-mode screen handles colors, the maximum maximum color resolution is about 984×738, but this has no effect on console applications (and little effect on any text application) since colors are resolved at the much grainier character cell resolution. A whole lot of 80×25 standard consoles can fit using small fonts; 7×9 looks like the most fun, with eight full consoles visible. However, 9×12 or 10×12 look more useful, and 8×14 is a common size.
The popular Terminus font is available in 6×12, 8×14, 8×16, 10×20, 12×24, 14×28 and 16×32; all but 6×12 include a bold face and EGA/VGA-bold is available in 8×14 and 8×16.
apt-get install console-terminus apt-get install xfonts-terminus #May or may not be needed
- Consola may be better. See this comparison of console fonts.
- Dina may be best for a bitmapped font; see this comparison.
It might be interesting to go for ultimate console application geekiness.
Screen: Console Manager
The screen console window manager can split a terminal screen into two console windows tiled vertically, and after upgrading to a more recent version, horizontally, too.
- Horizontal tiling has recently been added, though it seems
http://savannah.gnu.org/screen.githas the best version.- Here is a brief discussion of how to install the better patched version.
- The gnu project page should be the source for the better patched version.
- It looks like compiling the 256 color version includes vertical split (~4.00.03+).
yum install screendoes it on the OLPC (4.0.3).- It looks like Debian testing (lenny) has the version with vertical tiling (v4.03+). It was merged with CVS source on 02 Jun 2008, according to the Debian changelog. (The following installed it in an old iBook.)
- Added Testing repostiory:
deb http://http.us.debian.org/debian testing main - Needed to increase apt cache:
$ sudo apt-get update -o APT::Cache-Limit=25165824. (I changed it in Synaptic) - Though dependencies seemed a bit excessive, I apt-get installed it:
$ sudo apt-get install screen/testing -o APT::Cache-Limit=25165824.
- It may be better to change
screento use the backtick character instead of Ctrl-a. See this tips page for details. (Putescape ^``in.screenrc.) Peronally, I think Ctrl-` might be better.
Bash: Shell
This is the default OLPC console shell.
Vim: Editor
Vim and Nano are already installed on the OLPC.
- Turn on spelling check while typing.
: Taking Notes
: Message Aggregator
I plan to use a single application to aggregate messages from a variety of sources, download them for viewing offline, then use Vim with misspelling highlighting for writing replies.
So far, the best I've managed for an offline feedreader is to roll my own.
yum install libxslt ncftp wget
cone: Basic mail and News Reader
ssmtp: sendmail replacement
su - yum install ssmtp alpine # aspell aspell-en are already installed #ln -s /usr/local/ssmtp/sbin/ssmtp /usr/sbin/sendmail
It seems that getmail is not needed when using alpine?
Well, it looks like fifteen megabytes ofperl is necessary for sendmail.
- Email
- Both
alpine(21MB) andmutt(16MB) requires perl libs to install. CONEfor email and news also requires perl (18MB).
alpinemay have better news support thanmutt.- RSS Feeds (including weather forecasts and moon phases)
- Newsgroups
This is going to be more difficult than I'd hoped. One way to do this is to process news and mail into RSS feeds, then read them with a feedreader.
- Email to RSS:
Snowlist' (“requires an SQL database and a number of Perl modules[…]and is intended to be installed on a server”) - Newsgroups to RSS: SLRNPull + SLRN +

Alternately, these can be fed into email.
- Newsgroups to Email: Not needed with Alpine.
todo.txt: Organizer
This might be better combined with the aggregator.
- Calendar
wyrd: Wyrd acts as an ncurses-based frontend for remind, a scheduler application featuring sophisticated date calculation, moon phases, sunrise/sunset, Hebrew calendar, alarms, multilingual messages, and proper handling of holidays.calcurse: CalCurse is a calendar and todo list for the console which allows you to keep track of your appointments and everyday tasks. CalCurse has a nice textmode interface with configurable color schemes, configurable layout and Vi-like keybindings.pal: pal is a cal-like calendar with day highlight and support for events.ccal: CCAL is a drop in replacement for the standard unix calendar program. It includes support for color and daily, weekly, and yearly reminders/appointments.
- Shopping List
Note try dates, a calendar optimised for embedded devices, for X-windows.
bashpodder: Podcast Downloader
I decided to continue listening to podcasts through the iPod, rather than play them on the OLPC.
bashpodderto get podcasts.GNUpodto sync and manage playlists.- Update on iPod connect and download straight to it?
- See Download podcasts and sync music automatically with podget for some tips.
: IRC Chat
- Maybe should just go with
irciifor basic chat… yum install naim#only 256kByum install weechat#5M: requires ruby and lua libs, but has spelling support- irssi also requires about 15MB of perl libraries.
- The xo IRC client is OK under X, but doesn't seem to support
identd.
Elinks: Web Browser
yum install elinks- Only 1 MB install on stock OLPC
- w3m
- Requires perl installation (15MB)
- lynx
- netrik
Nethack: Game
Have this running, if possible, in a full-screen console with a big, weird font. Under X-windows, try to set the background to a running game.
yum install nethack
Though there is a medieval console font included with debian (I think), it does not seem to be available for an x-terminal.
- List of fonts in Debian, click on each for a sample.
- For use in a big transparent x terminal, try flatline or wargames.
xorg: X-windows
This is what the OLPC comes with, but I'll add an alternative to the Matchbook window manager and Sugar.
Here is an http://martin.ankerl.com/2007/09/01/comprehensive-linux-terminal-performance-comparison/interesting discussion of terminal emulators to use under x-windows. The winner for unicode high performance and low memory use is urxvt (see the comments).
apt-get install rxvt-unicode
OpenBook: Window Manager
There are too many window managers for me to spend the time trying them all. I like OpenBook, and will give it a shot first. Hopefully, I can configure it to open a cheat sheet with each console application.