site/posts/Utilities.mdwn

66 lines
3.6 KiB
Markdown

A fried of mine installed [Archlinux](http://archlinux.org) on his PC
the other day, for which I applaud him as it **is** the best distro
out there, and it got me thinking about some of the programs I've
found after venturing outside of the safety of a desktop environment
like [GNOME](http://gnome.org) or [KDE](http://kde.org).
The closest thing I've come to a desktop environment *outside* of one
was the [awesome](http://awesome.naquadah.org) window manager. By
default it comes with a system tray and notifications (daemon). This
makes for a very easy transition as those are two of the things that
seem to be in a bit of a short supply. There are plenty of file
managers (although [ZSH](http://zsh.sourceforge.net/) and
[Emacs](http://gnu.org/software/emacs) are good enough for me) and, of
course, window managers. Another cool thing is that it is one of the
most programmable window managers around. If you learn a bit of lua
you can make some very nice customizations.
There are lots, or at least a couple, of tray applications, like
[Stalonetray](http://stalonetray.sourceforge.net/) and *trayer* (part
of the [FVWM-Crystal](http://home.gna.org/fvwm-crystal/) project, but
seemingly also usable stand-alone), but I've never really tried them
since I don't use any applications that show an icon there.
A notifications daemon seemed most difficult to find back when I
stopped using *GNOME*. I did without for a while, but eventually
someone wrote [dunst](http://knopwob.github.com/dunst/) and my problem
was solved. It's very easy, and is fairly configurable. Just start
it in the background from your `.xinitrc` and all should be well.
[dmenu](http://tools.suckless.org/dmenu/) is a very nice menu system
with very few dependencies. *dunst* also seems to have based its
funcion/look on *dmenu*. I mostly use it as a program launcher, but
give it a list of possibilities and configure it the way you like and
you can use it for pretty much any kind of selection.
[dzen2](https://sites.google.com/site/gotmor/dzen) is another very
versatile piece of software. It can be used to create a status bar.
It has a funky syntax, but once you get the hang of it it's really
cool. The most interesting part is that takes whatever you want it to
show from `stdin` and parses it for its own syntax and that's about
it. This means that it's pretty much configurable in *any* language.
A shell script might be most obvious, since piping input and output is
really easy, but if you know your way around python, lisp, C or pretty
much anything that can open pipes to other applications you can use
that too.
If you have a window manager with some kind of IPC or another way to
call commands through an external application, like the
`awesome-client` for *awesome* you could also use
[xbindkeys](http://www.nongnu.org/xbindkeys/xbindkeys.html), which
offers a pretty nice way to configure your keybindings in a
WM-independent way. If you have it compiled with support for guile it
gets even cooler, because then you have a complete programming
language to configure it with, which offers tricks like multi-level
keybindings, kind of like *Emacs* (for example `C-i w` or `C-i p b c`
and things like that).
That's most if what I've found that I still use. These don't replace
everything a desktop environment offers, of course, but automounting
is not something I miss a lot, though that too is
[possible](https://wiki.archlinux.org/index.php/Automount#Udisks), and
I don't even remember anything else a desktop environment does. So I
hope there is at least one interesting application you might use in
here. If you know any others, feel free to let me know about them.
[[!tag wm linux software desktop]]