I understand little of the complexity surrounding fonts in Debian (and most other Linux distributions). But I do know that to get the artwiz fonts (or other bitmapped fonts) properly installed has been challenging as the procedures to install fonts occasionally changed, and good documentation is hard to find. In 2008 I explained how to install the artwiz fonts in Ubuntu Hardy, but those guidelines have not worked for many years.

Which is a shame, because the artwiz fonts are wonderfully minimalistic. Here are a few examples:


I had given up on installing these fonts a long time ago, but recently decided to give this another try. After a good amount of searching, I found a way that seems to work, at least on this system, running Debian Testing. I suppose that this should work also on Ubuntu, Linux Mint, or other Debian derivatives (please confirm this in the comments, if this is indeed the case!).

Here is what you have to do. First, download the artwiz fonts. (There are also version that support characters used in German and Swedish here; if you download those files, change the commands below where necessary.)

Unpack the bz2 archive:

tar xvjf artwiz-aleczapka-en-1.3.tar.bz2

Move into the new directory:

cd artwiz-aleczapka-en-1.3

Inside that directory you have all the .pcf font files. Before, those were the files that you would use, but apparently Debian no longer recognises .pcf font files, only .pcf.gz files. Therefore, you have to archive these with the following command:

gzip *.pcf

Now copy the entire artwiz-aleczapka-en-1.3 directory to /usr/share/fonts/X11/misc, with root privileges. If you use Ubuntu, add sudo before each command, as Ubuntu does not use root (su).

mv artwiz-aleczapka-en-1.3 /usr/share/fonts/X11/misc

Move into that last directory, and create an index of the font files that X will be able to use, still with root privileges:

cd /usr/share/fonts/X11/misc

By default Debian disables bitmapped fonts. Check whether there is a link to a file called 70-no-bitmaps.conf in /etc/fonts/conf.d/ directory. If there is, delete it.

Renew your font cache, as root (su or sudo):
fc-cache -f -v

Then enable the use of bitmapped fonts, as root:

dpkg-reconfigure fontconfig-config

You will be asked to answer three questions. These are the choices I selected:




Then reconfigure your fontconfig settings, also as root:

dpkg-reconfigure fontconfig

Then, add the following line to ~/.xprofile (or ~/.xinitrc if you use startx), so you can use the fonts in X applications (like xterm, and xfontsel, but also dmenu):

xset fp+ "/usr/share/fonts/X11/misc/artwiz-aleczapka-en-1.3/" &

(According to this post from 2013, you should also be able to add this to /usr/share/X11/xorg.conf.d/, but that did not work for me.)

Once all this is done, you should be able to use the artwiz fonts in any X application. To prove that this does indeed work, here is a screenshot of xfontsel, selecting the nu font, and using nu as the font in Openbox.


To use these fonts in conky, I use ${font nu:size=7} in .conkyrc just before the command or text conky should display. Thus, ${font nu:size=7}${time %H:%M} gives the following:


These are screenshots of the desktops I have used in 2015. No dramatic changes–still using Openbox, still loving the Erthe theme for work, still keeping it simple.

Early in the year I replaced Varuna, a Thinkpad X60 that was prone to overheat, with Soma, a Thinkpad X200. The screenshots of both are of a 23″ screen I use with it. Savitar is my old, battered, but beloved Thinkpad X41. On Soma, I’ve mainly used the last two desktops. The two screenshots of Savitar are those from last year, as I did not change anything to that desktop the entire year. Savitar is still my work laptop.



Openbox 3.5.2, with the Mythos Gtk and Openbox themes, and the AnyColorYouLike (ACYL) icon theme.



Openbox 3.5.2, with the Alghattas Gtk and Openbox themes, and the MeliaeSVG icon theme. I can’t remember where I found the wallpaper image.



Openbox 3.5.2, with the Alghattas Gtk and Openbox themes, and the MeliaeSVG icon theme.


Openbox 3.5.2, with an unreleased Gtk and Openbox themes, and the ACYL icon theme. The wallpaper is from here (G3, scaling the 960×800 image with Feh).




Gnome 2.30.2 with Openbox 3.5.0, still using the Erthe themes and ACYL icon theme.



I’ve long controlled the sound volume with keybindings in Openbox, but now that PulseAudio has become default, I keep forgetting how to do so with this new sound server. You’ll find a variety of suggestions on how to control PulseAudio from the command line online, but most of them don’t work for me.

I’ve found this to be the easiest way to control PulseAudio from the command line, using pulseaudio-ctl.

Volume up:
/usr/bin/pulseaudio-ctl up

Volume down:
/usr/bin/pulseaudio-ctl down

/usr/bin/pulseaudio-ctl mute-input

The default of the “up” and “down” commands is 5%. You can specify a different percentage. For example, if you want to increase the volume by 10%, use the following command:

/usr/bin/pulseaudio-ctl up 10

You can also set the volume at a certain percentage. If you want to set the volume at 50%, use the following command:

/usr/bin/pulseaudio-ctl set 50

Or you can set the volume at 50%, if it is currently higher than that with this command:

/usr/bin/pulseaudio-ctl atmost 50

For more options, read pulseaudio-ctl’s documentation.

These are the very few screenshots I took in 2014. I change my desktop much less frequently than I used to when I started documenting this, seven years ago, but it still serves as a good index of my thoughts and moods of the past year.

Savitar is a Thinkpad X41, running Debian Testing, with Openbox and Gnome 2.30 (still!). It is the computer I use for most of my work, and its looks have changed very little since 2012. Varuna is a Thinkpad X60, with an external monitor, running Linux Mint Debian edition. I generally use Openbox on it (with several Xfce components) and occasionally Pekwm. The second desktop setup, with the Groove themes, is the one I used for most of 2014.




Openbox 3.5, with the Laza-mod themes.


Openbox 3.5, with the Groove themes, and the ported AestheticGroove icon theme.


Pekwm 0.1.17, with the Fawn Gtk and Pekwm theme, and the Children of the Earth icon theme.




Gnome 2.30.2 with Openbox 3.5.0, still using the Erthe themes and ACYL icon theme.

You change your icon theme and find that Thunar uses the stock Gnome icons for directories, like in this image:


Other file managers–Nautilus, Caja, PCManFM–use your theme’s folder icons, but Thunar refuses to obey. The official Xfce documentation gives you a few workarounds, but you quickly realise these are outdated and don’t have any effect.

How do you fix this?

For some reason, Thunar looks for an inode-directory icon for folder icons. Older themes often don’t have this icon, but you can easily create it as a symbolic link. Here is how you do that:

ln -s ~/.icons/my-icon-theme/scalable/places/folder.png ~/.icons/my-icon-theme/scalable/places/inode-directory.png

Adjust this command to your needs. Make sure you replace my-icon-theme with the name of your icon theme (for icon themes installed as root, look for them in /usr/share/icons/my-icon-theme). Also double check what file type your icons are. Many icon themes use .svg files (scalable vector graphics), instead of .png files (portable network graphics) as in the above example.

Once that is done, relaunch Thunar, and your directories will use the folder icons of your chosen theme.


I still use Openbox daily, but recently decided to finally give some of the big desktop environments a serious try. The last time I really tried Gnome or KDE was before their big shifts (to 3. and 4. respectively). A friend had been speaking highly of the latest Gnome versions and claimed several features of it enhanced his workflow and productivity. Was I missing out on all these great developments by sticking with Openbox? I gave Gnome and KDE another try, using them for my usual work for a few days each. There are indeed some nice features in these newer versions, and I particularly liked some of the new aspects of KDE.

But I am now back with Openbox, because I feel so much more at home in it (having spent a few years fine tuning a desktop that suits my needs), and because I still don’t understand why I need to spend so much of my laptop’s resources on window and desktop management (resources that are not a plenty with older laptops!).

One feature of KDE I particularly liked: middle click on the desktop and the text in your primary X clipboard (the clipboard that contains the text that is merely highlighted, and that is normally pasted with a middle mouse click) is pasted into a new note on the desktop. Very handy for information you quickly want to store somewhere (for however long you want to)!

When I moved back to Openbox, I immediately decided to implement that in my Openbox desktop, using xpad. Here is how I did it.

Open your favourite text editor and create the following script:

xclip -selection p -o > $FILE ; xpad --new-from-file=$FILE

(If, for some reason, you want this to work with the text you copied with Ctrl+C use “xclip -selection c -o” instead of “xclip -selection p -o” in the above script.)

Note that this requires xclip to be installed (besides xpad, obviously). If you don’t have it installed, you can do so on Debian systems with the following command:

sudo apt-get install xclip

Save the script (I saved it as ~/.scripts/xpad-middleclick.sh), and make it executable (chmod +x ~/.scripts/xpad-middleclick.sh).

Now you have to tell Openbox to run the script whenever you middle click on the desktop. Open your rc.xml file and search for <mousebind action=”Press” button=”Middle”> in the mouse section, under <context name=”Root”>. The default is as follows:

<mousebind button="Middle" action="Press">
<action name="ShowMenu"><menu>client-list-combined-menu</menu></action>

Change this into the following (make sure the path points to wherever you saved the above script):

<mousebind action="Press" button="Middle">
<action name="Execute">

Reconfigure Openbox, and you can quickly create an xpad note of the selected text whenever you middle click on the desktop.

If you don’t want Openbox to draw window decorations for xpad, add the following to your rc.xml (in the applications section):

<application name="xpad">

And here is a totally unnecessary picture of the end result:


(For those of you who prefer Tomboy: I’m not sure whether you can do this with Tomboy. Unlike xpad, Tomboy does not have a cli option to create a new note from file. Perhaps it is possible to achieve a similar result using tomboycli, but I have not tried to do so.)

This is my fifth annual screenshot review, recording my changing aesthetics and moods. Early in the year, I moved back to Gnome (with Openbox, of course) on my laptop (Savitar, a Thinkpad X41), and in November began using MATE on my desktop (Loka). Early in the year, for a few months I also returned to Pekwm, a wonderful little window manager I hadn’t used much in the previous year. I also played with Awesome for a short while, but that window manager, however much I like it, remains more of a distracting novelty for me than an productive work environment.

As you can see below, I’ve mainly used dark themes this year (and particularly the Erthe themes), and have changed my setup a lot less often than I did when I started posting these annual overviews.

Both Savitar and Loka still run Debian Testing (Wheezy), though Savitar’s is far from up to date (as should be obvious from the Gnome 2 screenshots below).

All my Openbox and Gtk themes (including those that I merely modified) can now be found on github.


Gnome 2, with Openbox, using the Erthe themes, and the AnyColorYouLike icons.

Openbox 3.5, with the Dandelion Openbox and Gtk theme, and the nuoveXT-1.7 icons. The desktop background is a painting of the Six Gosvamis of Vrindavan.

Gnome 2, with Openbox, using the Erthe themes, and the AnyColorYouLike icons. The desktop background I found here.


Pekwm, with the Infinity Pekwm and Gtk theme, and the moblin icons.

Pekwm with the Royalty themes, and the AnyColorYouLike icons.

Openbox 3.5, with modified royalty themes and Somatic icons. The dock holds bbdock, bbpager, lal, and docker.

Openbox 3.5 and XFCE 4.8, with the Erthe themes, and AnyColorYouLike icons.

Awesome 3.4.13, with the Eidolon themes.

MATE 1.4.2 with Openbox 3.5, using modified Laza themes and the Gnome-Noble icons.

Elinks is a great browser, but rather limited when it comes to websites that use more than just text. Youtube, or other websites that host flash videos, are fairly useless in Elinks, as you can’t access that what they are all about (and, let’s admit, no one really wants to read the comments on Youtube…)

It is, however, possible to use Elinks in combination with other applications to access and view the flash videos on Youtube and other such sites. I will describe two ways here, one using youtube-dl (wholly following finferlu’s explanations) and the other clive (or cclive if you prefer that). Both methods use mplayer to play the video, though you could adapt both to use any other media player that plays flash videos if you so prefer.


First download and install youtube-dl, which is available in the repositories of most distros. If you use Debian Testing, download the package from the sid repostories and install that (dpkg -i youtube-dl_2009.09.13-2_all.deb), as for some reason it has not made its way to the Testing repos.

Once youtube-dl is installed, create the following script:


video_url=`youtube-dl -g $1`
mplayer -vc ffflv -ac mp3 -cache 300 -prefer-ipv4 $video_url > /dev/null 2>&1

Save the script somewhere in one of your executable paths (I have it in /usr/local/bin as utube), and make it executable (chmod +x filename).

Now start elinks, and go to the “Options manager” by pressing o or through the menu (press Escape) in Setup > Options manager. Select the category “Document” and press + to show all the options. At the very end of the the list (just before the next section, ECMAScript) there is an subsection called “URI passing”. Navigate to that section and press a to add an entry, and give it an appropriate name (I called mine youtube). Select the newly created entry and press e to edit it. You should see the following window:

Add the command utube %c (replace utube with whatever you called the above script) into the “Value” field as in the above picture, press Enter, and press v to save the new settings.

Now you need to assign a keybinding to this script, so that you can tell Elinks to launch it when you want to view a Youtube video. Close the Options manager if you haven’t done so already (press c) and open the “Keybindings manager” (press k or go to “Setup > Keybindings manager” in the menu). Open the first section called “Main mapping” with the + key.

You now have two options (or three if you decide to use both). You can assign a keybinding to tell Elinks to view the Youtube video of either the selected link, or of the current page. With the former, you don’t actually have to browse to the page of the Youtube video you want to view, but can just select the link to that page from your Youtube search results list. With the latter you’d have to be on the page that contains the video.

To assign a keybinding to play the video of the selected link, select the “Pass URI of current link to external command” and press a to add a keybinding, and enter the keybinding you want to use in the “Keystroke” field.

To play the video of the current page, select the “Pass URI of current tab to external command” and add your keybinding there. Inverting finferlu’s choice, I use “Alt-p” for the current link, and “Alt-o” for the current page or tab.

Once all the above is done, you’re all set to watch Youtube videos with Elinks and Mplayer. Simply press “Alt-o” to view the video of the current page, or “Alt-p” to view the video that is linked to by the selected link, and Mplayer should stream the video nearly instantly.


Using youtube-dl to watch Youtube videos has a few disadvantages. First of all, it is limited to Youtube (though you could modify the above with metacafe-dl or nicovideo-dl to watch videos from metacafe.com and the to me entirely unknown nicoveo.jp). Secondly, though mplayer streams the videos very fast (much faster than the flash player in a graphical browser on my old computers!), it is hard to jump ahead with this method, as the mplayer first stutters and then freezes whenever I attempt that.

Using clive instead of youtube-dl handles both of these better. According to the website, clive supports the following websites (most of which I had never heard of): Youtube, Google, Sevenload, Break, Liveleak, Evisor TV, Dailymotion, CCTV (not to be confused with “closed-circuit television”), Redtube, Vimeo, Spiegel.de, Golem, ehrensenf.de, Clipfish, Funyhub, adn Myubo. Secondly, fast forwarding with clive works really well (as long as it has streamed that far ahead), and results in smoother playback. Clive does have some disadvantages. It will download the video file to your harddisk, and it takes a little longer before Mplayer starts playing the video.

The method to use clive instead is largely similar to that of youtube-dl. Open the Options manager in Elinks, go to the “URI passing” subsection of the “Document” section and create a new entry: press a and name the new entry “clive”. Select the new entry, press e to edit it, and add the following command in the “Value” field:

clive -q --save-dir=/tmp --stream-exec=\"mplayer -really-quiet %i\" --stream=10 %c

If you would prefer to let clive stream more before mplayer starts to play, increase the value after the “–stream” option (in percentage). If you want to view the best quality of the video available add “–format=best” to the above command (before “%c”!). For more options, see man clive.

If you have used both the clive and youtube-dl methods (or if you have created some other URI passing options), you will be presented with a list of commands that appears at the position of your cursor when you press Alt-o or Alt-p. Select the one you prefer, and press enter. If you only have one “URI passing” command, that one will automatically load when you press your keybinding.

And so you can watch your favourite Youtube (or Google Video, or Vimeo, or …) clips without having to rely on Flash, or even X. Now K.Mandla can finally watch his favourite slug races on the framebuffer! ­čśł

I’ve been looking for a command-line todo list for a few weeks now. I normally use gtodo or tasks to keep track of the things I still need to do, but was looking for a command-line application that didn’t have a lot of dependencies and that I could easily use on my older hardware. Todo.txt, beautifully simple as it is, wasn’t quite what I wanted, and neither were td, lakTEK, or iKog. Applications like calcurse, on the other hand, had what I wanted, but offered much more than I needed. I didn’t want to have to learn commands, however simple, to add tasks to the list (like most of the above require). I just wanted something that looks like gtodo or tasks — a list of todos, that is easily managed, and where you can easily mark tasks done. If it supported subtasks so much the better.

I searched and searched, but always returned home empty handed. Until, a few nights ago, I searched for “ncurses todo list” and found the lovely doneyet. This is exactly what I have been looking for. You have a simple ncurses interface in which you can create simple todo lists (more than one if you desire to keep different projects separate). You can add subtasks. You can mark tasks started (green), completed (blue) or paused (red). You can add multiple notes to tasks (the notes column is only visible if you enlarge your terminal, but notes for the selected task can be viewed when you press v). Youc an export your task list to a simple text file. You can filter your todo list to find (un)completed tasks, or you can search for a keyword.

So how do you get doneyet? Make sure you have subversion installed, and use the following command to download the source code:

svn checkout http://doneyet.googlecode.com/svn/trunk/ doneyet-read-only

To build the application, just enter the doneyet-read-only directory and type “make”. I’m not sure what the dependencies are, but I was able to compile it on two computers without installing any additional packages. The documentation doesn’t give any details.

The ‘make’ command will create an executable file called todo. Launch that, and you have your todo list. I renamed this file to doneyet, as todo is used by other applications, and copied it to /usr/bin/ so that I can launch it normally through a terminal, without having to specify the full path.

On your first run, you will be asked to create a new project.


If you have already created one or more project files, you will be able to select one of the projects. (The projects files are stored in ~/.todo/)


Once you opened a project you can start adding your tasks.


The keybindings are well documented on the projects homepage:

  • A – Apply the Show All Tasks filter.
  • a – If a task is selected, add a new subtask of that task. If no task is selected add a root level task.
  • M – Show the menu bar.
    • j and k – Change menu item.
    • l and h – Change menu.
    • Return – Select the selected menu item.
    • Escape – Hide the menu bar.
  • m – Move the currently selected task. Note this doesn't work for root level tasks yet.
    • k/u/Up Arrow – Move selected task up.
    • j/d/Down Arrow – Move selected task down.
    • Return – Place task at current position.
    • Escape – Place task to where it was originally.
  • n – Add a note to the selected task.
  • v – View the notes of the selected task.
  • j – Selected next task.
  • k – Select previous task.
  • Escape – Select no task.
  • e – Edit selected task.
  • d – Delete selected task.
  • c – Toggle collapsed state of selected task.
  • R – Apply the Show Uncompleted Tasks filter.
  • C – Apply the Show Completed Tasks filter.
  • f – Apply the Find Tasks filter.
  • Space – Toggle the status of the selected item. White is unstarted, green is in progress, blue is completed and red is paused.
  • q – Quit.

Doneyet crashed on one of my computers whenever I tried to save or open project file (I haven’t yet explored why) but runs perfectly on my other computer.

I recently obtained an external USB hard disk, and have been irritated by it ever since I got it. Or rather, I’ve been irritated by the way Ubuntu Hardy interacts with the disk. Half of the time when I connected the hard disk to my computer, I would get the following error messages:

	[ 4159.607574] usb 1-1: new full speed USB device using uhci_hcd and address 4
	[ 2079.875502] usb 1-1: device descriptor read/64, error -71
	[ 2080.099379] usb 1-1: device descriptor read/64, error -71
	[ 2080.319263] usb 1-1: new full speed USB device using uhci_hcd and address 5
	[ 2080.443858] usb 1-1: device descriptor read/64, error -71
	[ 4161.322029] usb 1-1: device descriptor read/64, error -71
	[ 4161.537896] usb 1-1: new full speed USB device using uhci_hcd and address 6
	[ 4161.945615] usb 1-1: device not accepting address 6, error -71
	[ 4162.057577] usb 1-1: new full speed USB device using uhci_hcd and address 7
	[ 4162.465330] usb 1-1: device not accepting address 7, error -71

Other than this error message, the device was totally unrecognised. The USB port worked fine, and there were no problems with the hard disk, which I could use without any problems on other computers. Ubuntu’s behaviour was very unpredictable: I could detect no pattern why it sometimes recognised the disk, and why at other times it would ignore it.

An internet search indicated this is not an uncommon problem, and usbcore, which is compiled as a module in Hardy’s kernel, seems to be the culprit. Plenty of suggestions were offered online (including recompiling the kernel) but most of them did not help me at all.

Finally, I found something on an old mailing list that solved the problem. All I needed to do was add the following line to /etc/modprobe.d/options:

	options usbcore use_both_schemes=y

(If you are curious as to why this solved the problem, please read this clear explanation.)

After a reboot, my external USB drive is now recognised without any difficulties every time I plug it in.