I decided to give Debian a whirl, and at the same time I wanted to experiment with window managers to see if I could find something lighter than GNOME that was to my liking.
I remember using KDE once upon a time and really liking the experience, so when I installed Debian Wheezy, I configured it with KDE as my desktop environment. That turned out to be a mistake. Like GNOME 3, KDE 4 went in a different and more bloated direction. The plasma interface is nice, but it has some annoyances, and it doubles my start-up time. (That is not an exaggeration. It takes just as long for KDE to settle in enough to let me do anything as it does to boot to KDM.)
I tried 9wm, amiwm, ctwm, e17 (Enlightenment), flwm, olvwm, twm, vtwm, and wm2. I skipped windowmaker because, despite being my perennial favorite window manager, my experience from just a year ago was that it can't handle xrandr events and it hasn't been updated in that time. I also skipped icewm and fluxbox because I didn't want a bar manager.
Enlightenment is the most user-friendly for in-environment customization, and it's exceptionally fast even with all its frills. It's definitely the window manager to show off on any PC up to 10 years old.
TWM is almost perfect for a traditional X11 feel, but it and its clones have a critical shortcoming regarding accessibility. Since this is a tablet, I need an on-screen keyboard entry program when in tablet mode. CellWriter isn't perfect, but it's the best so far on Linux. The problem with twm is that it doesn't respect cellwriter's keyboard focus hint, sending keystrokes to the entry window itself instead of to the most recent previous window, and this makes on-screen text entry impossible.
WM2 is almost perfect as the ultra-minimalist mouse-driven window manager, in terms of both size and appearance, but it suffers from the same accessibility failing as twm and clones.
The window manager I finally settled on is flwm. The decorations are just large enough without being too large, it manages windows in pleasantly interesting ways, it starts up very quickly, and it respects my most critical tablet needs.
Next up was customization. Unlike full-blown desktop environments like GNOME and KDE, and unlike self-contained environments like Enlightenment, flwm is a window manager and nothing more. To configure a desktop environment, I had to install and configure desktop enhancement applications, like desklaunch, stalonetray, and hsetroot, but that's not a problem for me. Reading a manpage, writing a text file, and experimenting with settings let me find exactly the settings I like and will keep.
Getting programs to run automatically at login historically required editing ~/.xinitrc, and the format is very straightforward. It's just a shell script, so start programs in the background (with the "&" modifier), and at the very end "exec" the window manager.
That isn't the whole story with Debian. The .xinitrc file is completely ignored by the chain of Xsession files starting at
/etc/X11/xinit/xinitrc. Because of this, the system default session is run whenever you choose "Default" as the session type from GDM's or KDM's session menu, not the session specified in .xinitrc. (Incidentally, that makes choosing minimalist window managers from the session menu pointless.)
Debian's Xsession files look for two files in the home directory, ~/.xsession and ~/.Xsession, and executes the first of the two it finds. So the solution is to link .xinitrc to one of these two files:
ln -s .xinitrc .Xsession
And presto! I have a working desktop environment on my terms. Edit /etc/kde4/kdm/kdmrc so the AutoLoginUser line says AutoLoginUser=arielmt and I can now start up in tablet mode without needing the keyboard.
Trivia: Because hsetroot isn't smart enough to scale images to fill the whole screen while preserving aspect ratio, I have to use two images and a script to change the wallpaper. One image has to scale well to 1400x1050, and the other has to scale well to 1050x1400. The script I use is in my arbitrarily-named ~/.xpapers file. Also, my ~/.desklaunchrc file, and ~/bin/rotate script for tablet control. The icons named in ~/.desklaunchrc are 24x24. Desklaunch doesn't care about size and doesn't scale, so I used `convert` from ImageMagick to scale them down and turn them into XPMs.
Oh, and if I haven't yet said how much I despise Network-Manager, let me reiterate that the very first thing I did after installing Debian was:
sudo apt-get install wicd wicd-curses wicd-gtk sudo apt-get --purge remove network-manager wicd-gtk
Then I connected to my wireless network, set it to auto-connect, and added wicd-client to the list of start-up applications. Unlike network-manager, wicd doesn't need the GUI running in order to do its job, which means I'm not stuck without a network connection if either the tray icon or my entire desktop crashes.