Awesome is a pretty good tiling window manager I have recently taken some liking to. I initially started with it for the simple reason that I was working with a Matlab script which spawned tens of figures and I wanted to view them simultaneously. I am sure there are easier ways of viewing those graphs than switching window managers from Gnome (which I still think is pretty good) to Awesome, but it was a valid reason to procrastinate in my own way. :-)
Anyhow, some of the things I really missed from Gnome were:
It is the last thing which I got tired of today and looked at how I can fix it. The configuration turned out to be fairly easy to, thanks to the general awesomeness of Awesome and handy Lua documentation. It happened in the following steps:
myRhythmboxFunction = function (c) home = os.getenv("HOME") file = io.open(home .. "/.song_list") if not file then myNotifyFunction("~/.song_list does not exist") else found = false myNotifyFunction("Searching for " .. c) c = string.lower(c) for song in file:lines() do songLower = string.lower(song) if string.find(songLower, c) then found = true awful.util.spawn ("rhythmbox-client --play-uri=\"" .. song .. "\"") myNotifyFunction("Found, playing") break end end file:close() if not found then myNotifyFunction("Not found") end end end
It is not difficult to guess what this function does:
awful.key({ modkey, }, "p", function () awful.prompt.run({ prompt = "Play: " }, mypromptbox[mouse.screen].widget, myRhythmboxFunction, nil) end),Here, mypromptbox is just the usual Run prompt which I have borrowed to act as the play prompt box.
After these rudimentary changes, I did:
find /my/music/folder | grep -v 'No directories' > ~/.song_list
To prepare the .song_list file needed in myRhythmboxFunction , and voila!
My songs are now Super + P + Song name away!
The next additions on my dashboard are the Pidgin integration and some sort of periodic mail notification without needing either Evolution or Thunderbird running in the background.
Some other holiday ...