summaryrefslogtreecommitdiffstats
path: root/posts/Utilities.mdwn
blob: a3d5d7c92906dd4fbcd38bf7e1328654b13fd0fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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]]