Ask HN: What's your favorite window manager for X11?
Do you prefer keyboard-driven window manager? and how do you arrange your windows to be more efficient?
Do you prefer keyboard-driven window manager? and how do you arrange your windows to be more efficient?
One of the most impressive things is how well it has worked out of the box, so well that I basically forgot to come back and customize, its just been working for quite a while now.
All I care about is having separate workspaces and a few keyboard shortcuts. I have 7 work spaces: Main (local terminal), Browsing (Chrome/Firefox), Communications (Pidgin/XChat/Skype), Development (GVim/terminal), Email (Thunderbird/GMail), Shells (tabbed remote terminals), Misc (usually shells/music player).
Each workspace is dedicate to a single task. Everything is fully maximized in each workspace (for the most part). I switch between them with Alt+{1,7}. Ctrl+M Maximizes a window. I have a few monitoring applets (CPU/network) in the taskbar thingie. Over time I've found that is all I need to be happy and productive.
I especially liked docking applications/icons, its good support for virtual desktops and especially the many wmXXX applications that did one job well, in the space of a 64x64 pixel tile.
These days, I mostly resort to the "standard" gnome desktop with whatever it uses and resort to something very lightweight such as fluxbox on resource constrained machines.
What I love about OB is that everything is configurable. A lot of WMs (ahem, metacity) give you no control over the basic operations because they can't imagine any other way to do it. If you find faster ways to do things, e.g. workspace warping with mousewheel, or reordering windows with win+middle click) OB actually lets you achieve them. It's all there in XML--and the defaults are well thought out, too.
I know several people who swear by xmonad, but I've never been able to deal with it for graphical work.
It's tiling, keyboard-driven, small and lightweight. I've been using it for years now. It's a little hairy to start with, but I love it.
Instead of workspaces it uses "tags" which you can treat just like workspaces, but you can also combine, on-the-fly, to form a mashup of different tasks. For example, sometimes I want my editor & web browser next to each other, when I'm looking something up, but most of the time I just want to focus on the code.
devilspie is a rules engine for windows--new windows for this application go to this desktop and are always maximized; browser windows always go to workspace 1, all windows are always undecorated, etc.
xbindkeys is a scheme app that just handles mapping key bindings to shell commands.
Both of these are configured with files full of s-expression that you can check into your version control. Put them together and you can kinda ignore the fact that you're still using brain-dead metacity.
One killer feature of wmii is its use of 'tags' instead of virtual desktops. Windows can be assigned to multiple tags. I tend to have tags per task, so task switching is as simple as switching desktop tags.
I'm mainly using OSX now but I always have my wmii open in a virtual box.
Awesome is great because of its use of the keyboard and tag system. Also, it is named after one of Barney Stinson's catchphrases.
Now that they kicked xcb out of cairo (which awesome needs) which resulted in awesome getting kicked out of the arch linux community repository I think I'll just switch to i3 like all of my buddies.
I usually have Chrome on my right screen, several tabs worth of terminals on my left screen, and Komodo Edit will float back and forth between the two, depending on what I'm doing.
Currently I am using a notebook in front of an external display and I added a function to dwm with which I can essentially "push" all clients (windows) to the external display, which in turn sends all its clients to my notebook's display (or in other words it swaps all clients of one display with all clients of the other).
When I am coding I am always using bstack mode with vim on top and one or two terminals at the bottom. The external monitor is displaying documentation. If I have to look something up I just have to push vim + terminals away. If I am finished I pull them back. So my notebook display becomes my working display.
http://suckless.org has some other really cool stuff as well.
ii is a FIFO based IRC client, slock, wmii etc...
http://hg.suckless.org/ is their HG repo.
I usually have a workspace for shell & filesystem stuff, one for emacs, one for documentation, one for running servers and monitors and other misc. utils for whatever I'm doing, and one floating one for web browser and music.
I have keyboard shortcuts for most simple operations (change workspace, change window, send to back, etc.) and use the mouse when that sort of thing makes sense. I try to stick to 'one task-type per workspace' which helps keep things somewhat organized (plus it keeps my browser in hiding while I'm trying to code).
I started using it when it was the default WM for gnome, and had so many customizations that I couldn't switch away when metacity came out.
Things like windows7-ish tiling (I had it before windows 7, when someone using another WM could do it).
(Everything else is as well, but those are the things I particularly like over other window managers I have seen.)
I would like to try running Xmonad on a second monitor, and use that monitor for xterms primarily - I don't want my browser window-size to change with how many windows I have open - but I haven't had time/monitors to experiment.
I have a single config file that detects which host its running on and modifies fvwm's behavior accordingly. This way I can have the same configuration work well on the desktop and the netbook.
It works well on the netbook, too, as its very resource-friendly.
I have it set up with a 3x3 virtual desktop space and no edge resistance. The "Windows" key pops up the virtual desktop manager.
Also, I have it configured so that when I hit the "Menu" key or CTRL-Windows I get the root menu, so it's reasonably keyboard friendly. (e.g. CTRL-Windows,T gets me a terminal; CTRL-Windows,N,W gives a browser.)
Not that I use those, really, since I have F1 on the root window bound to "launch terminal", and F2 to "launch browser".
FVMW doesn't work as well as others out-of-the-box, but you can pretty much make it do anything if you tweak the config enough. But that's work, so you gotta wannit.
I really wish it was a compositing window manager, but it's not, and it doesn't seem likely to be.
I have used Linux almost daily for the last 12 years; a good chunk of them via putty/ssh from XP. I headless Slackware box without X; ssh or serial is just fine by me.
At the risk of being mauled to death, I also have a Mac that I just got used, and I only ssh to it. Couldn't be bothered to figure its quirks; will come handy when I get into iphone dev though.
Also, I will not use a non Thinkpad machine if it was given to me for free. My current setup is an R51; Pentium M, 1GB RAM, and 33GB disk.
I like a main window taking the left 60% of the screen and the remainder for 2 aux windows stacked vertically.
I've also been meaning to give a modern tiling window manager (I've used ratpoison in the past) e.g., Xmonad a try.
Tiled and programmable in Common Lisp. It's fun to config/hack.
What more could one ask for?
It can spawn a terminal with one keystroke, can move and resize windows, and has virtual desktops. Other than that, it gets the hell out of my way -- no extraneous bars / panels / whatever, and one-pixel-wide window borders. That's all I ever want a WM to do.
That said, most of my 'window' management is handled by tmux.
The compositing effects Present Windows Desktop Grid are actually useful