goomwwm: Get out of my way, Window Manager
github.com
github.com
Actually, what I've been contemplating writing for a while is a window manager that notices what windows you have open, clusters those into sets (windows may be in multiple sets!), creates workspaces based on these clusters, automatically flips between these clusters when it senses you're switching to another one, and attempts to display windows as disconnected floating golden rectangles (still 2d, but not encompassing every pixel on your screen). I really really hate managing windows...
The tile layouts have a primary area and a secondary area. There are four different tile layouts with the primary area either on the left, right, top, or bottom. Once you pick one of those, you can control how many windows are in the primary area - the rest fill the secondary area. You can split the secondary area into divisions and increase or decrease the number of divisions; it will fill each division with windows in a round-robin style, placing the new window in the primary area - if the primary area is full, the oldest window gets pushed into the secondary area.
Of course, if you open a window and specifically want to move it to the secondary area, it's as simple as giving focus to that window and moving it down the stack.
This might sound complicated, but the keybindings are quite natural once you learn them (kind of like vim). All the window manager shortcuts start with the [mod4] ("windows") key. It's that with j/k to cycle up and down the stack, add [shift] to shift the position of the window in the stack. It's the [mod4] key with h/l to increase/decrease the size of the primary area; add [shift] to that to increase/decrease the number of windows in the primary area or [ctrl] to increase/decrease the number of subdivisions (I remember "C"ontrol "C"olumn, even though it's not columns if you're using a layout with the primary on the top or bottom).
You might wonder how one could use tile mode for everything: what if you're coding away (which usually involves several terminals open), then you need to open gitk - one of those tiny panes is way too small! Well, you don't need to change the whole layout for that; you can toggle properties on individual windows to add either fullscreen [mod4]+f, maximized [mod4]+m, or floating [mod4]+[ctrl]+[space].
Here is a screenshot so you can see the Awesome theme and the Conky setup: http://i.imgur.com/nv7sn.png?1
I've used awesome before but I found nwm to be a nice fit, and its cool that it's made in Javascript. You could probably make your own features like that very easy, its not very big yet. It looks a lot like dwm feature wise, since the creator originally used that.
My only complaint with i3 is how the concept of splitting and changing tiling orientation between horizontal and vertical are intertwined. [1] I think it would be much more intuitive to have two tiling layouts (horizontal and vertical), a single kind of split that is only responsible for splitting, and no separate concept of orientation.
To help myself get used to i3, I wrote myself this small program for visualize the tree structure of my containers. [2]
[0] http://i3-wm.org/docs/userguide.html#multi_monitor
[1] http://i3-wm.org/docs/userguide.html#_orientation_and_split_...
[1]http://aerosuidae.net/goomwwm/tutorial [2]http://dwm.suckless.org/
http://www.6809.org.uk/evilwm/ it's a massive 40k download.
I don't wanna have to go through a "video" (hi nwm) to show me how it works.
I'm ok with a 5min first time setup and 5min reading the man page, then that's it.
Most tiling and "minimalistic" wms fail at that.
So i'm using KDE/XFCE/etc. Heck, KDE's kwin tiling mode is just fine.
Moreover, awesome is "pluggable" into classic gnome 2.x
Incidently awesomewm configuration system is extremely powerful. But I don't wanna "waste" hours on that anymore (that is, all the wm config in general).
If KDE brings too many troubles (the config is dead easy but it has other quirks, like memory usage, bugs, etc), I might just go back to the trusty window maker. Simple, easy. Maybe the way it should always have been ;-)
I'm pleased to say that there is now Notion (not ion):
http://notion.sourceforge.net/
Notion is a fork of an earlier version of Ion with a more permissible license but behaves and looks exactly like Ion always did.
Notion and Ion were so-called stacked tiling window managers, their position and layout were not fixed in patterns of dividing the screen up like (iirc) Awesome and XMonad.
Also, it's 3,727 lines.
I use it constantly and have invested quite a bit of time in my .xmonad.hs file but I'm interested in hearing why other people like it as well.
For myself I love that I can basically code my own wm and make it what I want. It's like a wm toolkit.
I also like that it keeps my haskell chops from rusting too much.
I just read through the tutorial and in a lot of ways this is very like musca. Similar commands (some are identical, in fact), similar config file etc. It also looks more flexible and powerful than musca! I will definitely be trying this out. Perhaps I've found my new WM...
It has been pretty rock solid. I like that a window can float if you want, it is good for watching something with mplayer.
It is written by a BSD guy and the code is nice and easy to follow if you want to see some X11 programming.
The great thing about it is how it integrate with emacs/slime. For instance, let's say you want to close all the windows from the second/third workspace, you write the code in emacs and evaluate it in the context of stumpwm.
I'm on OSX. I typically have Firefox, Terminal, and TextWrangler open while I work through Zed Shaw's LPtHW course. What window manager should I use?
If you're looking to up your terminal skills, I'd recommend looking at something like tmux.
XQuartz is nice, but you're still subject to the OS X mouse acceleration etc.
I suppose when I said "mouse acceleration" I really meant "mouse lag".
In some ways I prefer it to strict tiling window management like awesome or xmonad.
You lose the "windows automatically tile" functionality, but the other side of that is that it's easier to break the paradigm for when you don't want to tile.
free unlimited trial: http://www.irradiatedsoftware.com/sizeup/
or $14 for a license
ShiftIt (Free/OSS): https://github.com/fikovnik/ShiftIt/tree/shiftit16
DoublePane ($3): http://5amcode.com/
Tyler ($10): http://blog.reflare.com/tagged/tyler
SizeUp ($13): http://www.irradiatedsoftware.com/sizeup/
Divvy ($14): http://mizage.com/divvy/
There are some old versions of ShiftIt available in the GitHub downloads, but you might want to compile a more recent version yourself. It's what I use on my 11" MacBook Air, where I mostly use the left-half, right-half, full-screen, and center-window commands. If your use case would be similar, DoublePane might be an easier choice, though it doesn't look like it does centering.
I just stumbled into it, I recommend watching the video.
The window manager situation on OSX is still dire.
The whatever proprietary program Apple uses in OS/X isn't cutting it for me. I spend too much time getting the windows how I want them and it's never quite right. I would like to automatically tessellate my windows as seen in the GOOMWWM. Is there a way to do that in OSX, and if so, what is this type of software called?
All X11 window managers are capable of managing GTK3 applications.
The downside to these changes is that several GTK3 features were horribly broken outside of GNOME's default window manager. I've seen at least five or six window managers that would freeze applications with the mouse grabbed as of GTK3.2: click on the wrong part of a menubar or on the resize corner and you had to resort to the keyboard to kill the offending application before it or your mouse would work. Version 3.4 or thereabouts has fixed these bugs for the most part; even window managers that don't support much in the way of ClientMessage-based window manager protocols should work fine now. But for some time GTK3 did interact very poorly with most window managers.
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=630972
That this was so hairy and bug-prone is, in my opinion, a symptom of interacting with the ugly beast that is X11. If you read the code of the affected window managers and GTK, you would probably agree.
What's your opinion on Wayland? Specifically, how likely is it that the reliability and consistency of the graphical parts of desktop Linux will improve if the applications I use the most are ported to Wayland?
Despite the pains, X allows window managers to arbitrate over window management policy relatively effectively. From what I see so far, it seems that this will be a less clear-cut scheme in Wayland, given its clientside window management and decoration setup. Individual applications will have more freedom to misbehave in terms of custom titlebars etc. and refusing to cooperate with management actions. In an environment where GTK, Qt, wrapped X programs, and other toolkits will be coexisting, there's a lot of room for implementations to behave differently in ways that will confuse and upset users. Whether this will actually be the case is yet to be seen, but I've never seen three different software projects implement a feature in exactly the same way without sharing code.
As the saying goes, we live in exciting times.
Users of desktop Linux live in exciting times, you means.