?

Log in

No account? Create an account
Semiformalishmaybe

How I compute


This is a post about GUIs, how I use them, and what I need to be happy.


I care a lot about my interface to computers. The interface you see up there (click on it for the full-sized version) is what I've had for the last many years, without substantial change. I use WindowMaker with some standard interface bits from GNOME (not meaning apps; I use a mix of apps that bind to GTK, Qt, and various other graphics libraries, using whatever apps I like most without strong preferences for any particular libraries/widgetsets). Windowmaker is a bit off-the-beaten-path by modern standards, but when I decided to go wholly with Unix, neither GNOME nor KDE were around and people used a number of different window managers. I've used a number of other WMs (the last one I used exclusively was 9wm, which eventually came to feel limiting for its lack of multiple workspaces and keyboard shortcuts) over the years.

These are the things I've learned that I want from my GUI:
*Multiple workspaces that I can devote to particular tasks. I need lots of these.
*Per-workspace app-launcher content, to help me devote workspaces to particular tasks
*Good keyboard shortcuts for anything I might need to do. Switching workspaces, resizing windows, etc.
*Good mouse control for anything I might need to do.
*The ability to layout the windows in a workspace as makes sense to me. I don't get along well with tiling window managers; all the windows should float, let me resize them, and move nicely under or over other windows
*Explicit management of window focus, ideally at least slightly decoupled from what window is on top. I don't get along well with focus-follows-mouse.
*Reasonable customisation of interface elements so I can tune the details for what I want
*Reasonable access to system configuration tools, including both the kind of stuff I often need to tweak (e.g. wireless settings) and the more rarely-used configuration stuff

Windowmaker provides options of large numbers of workspaces. In the upper-left of that screenshot, you'll see the mouse interface to switch between them. I have 9 workspaces, and have mapped Alt+1 through Alt+9 as keyboard shortcuts to move between them. Icons stuck to the clipboard are app launchers and specific to that workspace. I use:
*Workspace 1: Often has Pidgin running on the left third of the screen, and I do general systems-configuration and misc terminal stuff on the right part of the screen. Often I am playing music using my media-playing software (wrapper I wrote around mplayer) here.
*Workspace 2: Email, usually through a bunch of ssh sessions to places where I have mail. I almost exclusively used commandline tools like PSMail (my email client, which I wrote) and pine to do mail. Note that I do not check gmail in this workspace.
*Workspace 3: Viewing apache and other logs in giant terminals
*Workspace 4: Coding or GNUMeric (my preferred spreadsheet)
*Workspace 5: Firefox, and occasionally terminals holding stuff I want to cut/paste to the web. Gmail happens here.
*Workspace 6: Coding
*Workspace 7: Normally unused, sometimes used for CD/DVD-burning or ripping, and on the rare occasion I'm using AmaroK, it happens here
*Workspace 8: If I need to toss a bunch of extra windows somewhere or use something as a reference for other works, it goes here
*Workspace 9: VirtualBox, occasionally GIMP, other engrossing tasks

Over on the right is the dock, which is an application launcher and home for applets (its buttons are static across all workspaces). Beneath the NeXT logo (NeXTStep inspired WindowMaker and I grabbed a NeXT logo from back when I ran NeXTStep/Intel ages ago) are:
*Terminal (right now launches gnome-terminal with the menu disabled and a grey-on-black colour scheme)
*WindowMaker configurator
*wmCalClock set to EST/EDT
*wmCalClock set to GMT
*Launcher for nautilus (rarely used, as I usually manipulate files through the CLI)

There's also a popup menu (F12 or a right mouse click outside any window):
*A hierarchy of "Connect To:" that launches: "term -e ssh $SYSTEM" for a large number of systems I have shell access on
*A terminal
*A terminal that runs su (prompting me for a password), with the font colourscheme being red on black
*A menu allowing me to restart WindowMaker or end the GUI session

If I either do Control-Escape or right-click on any application's titlebar, Windowmaker has a window-specific popup menu that lets me kill it, send it to another workspace, move it, resize it, etc (all keyboard-friendly). Application windows also all have a resize bar on the bottom, an iconify button in the upper-left, and a close button in the upper right.

Iconified and running apps show up on the desktop (often obscured over any large windows) in the lower-left corner of the screen (iconified versus running apps look different, and I've configured some apps not to have a "running" icon).

To this (reasonably standard) WindowMaker interface, I've added gnome-panel, configured in non-expanding mode across the top of the screen (the bottom gnome-panel is deleted). gnome-panel is reasonably ill-behaved, but I need its functionality so I live with it. I almost never use the minimise-to-the-side buttons on the panel, but they're there. I occasionally use it to launch GUI apps that come by RPMs. I heavily use it to manage the system volume (and having the panel's volume-control applet running is necessary for my keyboard's shortcuts to change the volume work properly), and it must be running to handle my keyboard's brightness controls. I use the nm-applet component to manage wireless connections, and the power applet to see how my battery is doing and to definitively know if I'm plugged in or not. I dislike gnome-panel though, because it manages more than I want to and because it's flakey outside the rest of the gnome components; it likes to override my chosen desktop background (which I want WindowMaker to manage) whenever it launches, sometimes its various panels don't manage to start up, and occasionally it likes to override all my .Xdefaults with whatever gnome-settings-daemon thinks they should be. It also lacks any keyboard controllability. I have compensated for this partly by having a script that, when run right after my desktop finishes loading, undoes a lot of the stuff gnome-panel does and kills some of the random stuff it automatically launches.

gnome-panel3 is considerably less well-behaved than gnome-panel2 was, and I had to do a number of undocumented and ugly things to get it configured as I want. I am concerned that future versions of gnome-panel will not be configurable this way, particularly given the GNOME developers having decided that configurability is a bad thing and their embracing a kind of Apple mentality that they should decide there's one right way to do interfaces and users who don't like their right way should be left out in the cold. I think this is pretty stupid, and I hate the GNOME3 standard desktop; I might need to see if the KDE components are adequate for what I need at some point.

I'm still pretty terminal-heavy. The non-terminal GUI apps I regularly use are:
*Pidgin - IM
*Firefox
*vim (in graphical mode; I also launch this in terminal mode)
*xchat
*gnumeric
*k3b - burning CDs/DVDs, but I don't actually do that very often anymore, now that USB sticks are so available
*mplayer (in graphical and terminal mode, but even in graphical mode, I don't use gmplayer very often)
*VirtualBox
*gedit - mainly for when I want a scratchpad for text for quick cut'n'paste and prefer speed and gedit's cut'n'paste style over gvim's power
*gthumb and geeqie - Image viewers. I prefer geeqie but it doesn't do animated images
*GIMP
*Emacs - Occasionally I want to edit a chunk of text with some quickly-written LISP instead of Perl regexen, but I don't find myself doing this that often anymore
*evince - for PDF and PS files

I have my interface very comfortable and my habits are adapted to it. I'm hoping I can continue to keep it this way with reasonably minimal changes moving forward.

As to being open to change, if I ever had to leave WindowMaker, I would be willing to do so for another window manager that let me do most of the above in a highly configurable way. I probably could lose the dock on the right if I could have multiple clocks on some other interface element, and I would not mind losing gnome-panel if I found a suitable replacement that would act as an interface to the distro-and-hardware-specific stuff. I would be very unhappy with changes to window management, workspace management, and keyboard-and-mouse-friendliness. I would likely never be happy on OSX or a GNOME3 desktop. I would not mind the system doing more routine chores for me (mounting and unmounting media, for example) provided it does so in a way where I can change or create new system policy or its detaults are already what I want now and changable to whatever I decide I want in the future. I would not mind the system doing fewer routine chores (although I don't want to go back to writing X configuration files manually) because I'm happy doing scripting and systems integration. I am a power user, and the fewer choices I have and the more distant unchangable defaults are from what I want, the less happy I am.

A fair subset of the software I use everyday is a body of software I've written, although most (not all) of this is CLI stuff.


Two bits of news relevant to broader computing:
*HP's new CEO reversed the decision to spin-off HP's computer division. I'm happy about this; I've been pretty happy with HP's PCs (my last several laptops have been giant HP laptops with full keyboards and I also have a HP gaming PC).
*The next version of Android, 4.0, is starting to roll out. I'm a bit bummed that my phone, the Nexus One, won't be getting an official port. This is probably because the GPU on it is not up-to-snuff and so they're not sure the full graphical experience will be possible on the device. Reasonable, but I wouldn't mind disabling some of the flashy bits. I expect once there's a solid unofficial port, I'll just migrate to it (although if I want to keep playing with developing for Android, maybe I'll have to get a Nexus Galaxy; I wish Google had stuck with HTC, but oh well).
Tags:

Comments

I have pretty strict needs from my DE/WM too. My guiding principles:

- Mouse usage should be minimised. All I use it for is navigating firefox, gimp, and copying/pasting text. Window management (moving, maximising horizontally/vertically, pack growing/shrinking, switching) is all done with keybindings.
- As much screen real estate should be free to my windows as possible. This means all of it.
- Workspaces are dedicated to certain types of tasks, but flexibly. When I'm "on a roll", I might reappropriate multiple workspaces for auxiliary nonstandard tasks (like having reference manuals or papers open).
- Window arrangement should be a mix of tiled and floating. When I have several windows I all want to stay open for a while (anywhere between the length of doing a homework and permanently), I will tile them; more transient operations (email, usually; sometimes just dicking around with files) will float. (Spawning a terminal defaults to floating.)

hence:

KDE offers really good keybindings. Not perfect (I wish it had pack grow/shrink window up and left instead of just down and right), but what it misses is so marginal that I don't want to go to the trouble of making an "infinitely customisable" WM do the same thing. These keybindings (plus "remove window decorations") let me to artificially/manually set up tiled arrangements, even though KDE only purports to do floating.

I have a task/toolbar (kicker) set to autohide on the bottom of the screen; it has a few shortcut icons (almost never used), a taskbar (only ever glanced at to see whether i have too many windows open), a battery meter (very frequently used), klipper (clipboard manager, copy/paste history, v. useful), a clock, and a CPU and RAM meter (frequently glanced at).

Four workspaces: 1 for firefox (occasionally used for fullscreen PDF viewing); 2 for tiled terminals used for coding (typically 3; one big one on the left and two on the right -- here's what it looks like, and here with kicker shown); 3 for IRC and email, also gets converted into a tiled format for doing homeworks or paper reviews; 4 for music and occasionally gimp.