Small Tools


dmenu is super cool. I'm pretty comfortable saying it's my favorite piece of software. It takes a list of lines from stdin, creates a menu out of them, and writes the user's selection to stdout. You can use it to do basically anything.

In this case, I was looking for a simple way to connect to wi-fi networks without NetworkManager, which, for whatever reason, simply did not work on my machine when I was setting it up. This script is really just a list of the commands I would run to connect manually with wpa_supplicant.

I've tried to keep it as narrowly POSIX as possible, given the obvious constraint that it has to use commands specific to wi-fi hardware, and, of course, dmenu (which requires the password patch to work properly with this script). The packages it requires are pretty common and usually ship standard (although I don't think iw comes standard on Arch).

Probably my biggest issue with it is that a lot of the wi-fi commands have to be run as root. If there's a clean fix for this using a udev rule or something like that, I haven't found it, so I just carve out a password exception for it in /etc/sudoers so I can bind it to a key.