A little ode to dwm from suckless.org So the past year or so i've been using the suckless.org window manager called dwm. After being a user of Gnome, which was integrated into the Ubuntu distro i used before i moved to a plain Debian installation, i felt that i didn't really need a whole desktop environment anymore. The reason was that most administrative tasks on the computer would happen inside the command line interface anyway. For browsing and moving files i mostly used the CLI and not Nautilus. As a file editor i would use mainly nano, and not GEdit. I was not so much interested in having all the fancy features that come with a full fledged desktop environment, so i went looking for just a window manager. (For those who wonder, a desktop environment, like Gnome or KDE will try to give you a whole graphical user experience for computering. So it contains not only a window manager, but also a file manager, a login manager, some panels and menus, icons etc. Most functions will be hidden nicely behind a graphical user interface. This is very user friendly. A window manager, is an application that only manages where and how application windows are shown. All the other things you have to do yourself) Anyway, first candidates where Openbox, Fluxbox and Awesome window manager. All the configuration options gave me headaches. I just wanted a thing that showed me windows and then got out of my way as much as possible. Fortunately i found dwm at some point. The nice thing is; dwm is just dwm. It behaves as it was programmed. If you want to change something, you change the code and recompile. There are no config scripts, plug-ins, scripting environment and whatever. Because of this, the whole dwm window manager is programmed in somewhere around 2000 lines of code. It didn't took long to get used to dwm. The keyboard commands to control the placement of windows are fairly straightforward, and fortunately you don't need to remember a lot of commands to get you started. dwm by default has 9 tags, which i see just as different desktop screens on which applications can be put. You can use ALT-1 to ALT-9 to view the different screens (or applications under a numbered tag, if you will). You can also use ALT-0 to view all applications under all tags. This will show basically all your applications on all your screens (tags) on one screen. Since this is messy i never use ALT-0. So next to navigation you also want to start and stop applications. ALT-Shift-Enter will start a terminal window under current tag. And ALT-p invokes dmenu from which you can start an application by selecting it by typing the name of the application, or with the cursor left and right buttons, and pressing Enter. I typically use the ALT-p option only for non-CLI programs, like a graphical webbrowser. If you start those kind of programs from a terminal, they will keep your terminal in use. (Unless you start them like a background process by putting an & in the name at terminal; like midori&) To quit any focused application on your screen, you can press ALT-Shift-C. If you want to move a window from one screen to the other, you press ALT-Shift-1..9 where tag/screen 1..9 is the new destination of your window. You can open or place a whole bunch application windows on one screen (tag). This can be useful sometimes, but i personally use it only very rarely. dwm will manage the way your windows are tiled mostly by itself, without you having to wory about it too much. When there are multiple windows on one screen can then use ALT-j and ALT-K to move the focus from one window to the other. On top of that you can use ALT-Enter to swap places between a focused window and the biggest window that hangs out on the left side of a screen. You can use ALT-h and ALT-l to resize splits between windows. These are also a features that i hardly use, since i rarely put more than one window on a screen (tag). The way i use dwm, is that i just start only one application on one screen. It comes in handy that i typically only use 5 or 6 applications at the same time, so i never even have to split anything. (Well ok, sometimes when i use gnuplot i like to show both the gnuplot shell and the actual plot on one screen) When i then press ALT-1..9 to switch between screens, i effectively switch between applications. Oh shit, this wasn't supposed to become a manual or something of dwm. If i explain any of these functionalities incorrectly, please resort to the dwm manual for the right explaination. :) (You should look that up anyway if you want to learn about floating/tabbed and monocle modes of screens ALT-f, ALT-m, ALT-t, and about mouse contols for resizing moving windows and such) Currently i still use dwm as it comes out of the box. I didn't recompile to add or toss out features. It might be interesting to do this someday. I'd probably keep the 9 screens and dmenu, remove all the tiling stuff, all the modal, floating,tiled code and just let windows be stacked on top of eachother when they are started on the same screen. The windows would always be started maximized, i wouldn't need resizing as much. (i feel if some dwm author would read this he'd be pulling his hair out screaming "You are missing the point, you friggin' idiot!" Anyway, i'm already very happy with dwm as it is, so i'm quite lazy when it comes to changing anything. The good thing about dwm is that i don't worry about desktop backgrounds, or showing stupid disk-drive usage meters on my desktop. I don't have to wory about window decorations, themes, start-up sounds, icon sets, or fancy 3D rendering of my desktop. I can just focus on computering in my own silly way and i like that a lot!