LebGeeks

A community for technology geeks in Lebanon.

You are not logged in.

#1 July 24 2012

xterm
Moderator

Linux - Tiling Window Managers

I've been using Linux on and off for a long time now, well over 14 years and I've always been fascinated by software evolution. In terms of Window Managers, I've flavored most of the old and quite a number of the new window managers and desktops. What I found relatively weird as of late (about a year ago) is that, as a developer I wasn't aware that my interest in software evolution had compromised my productivity. Perhaps the hypocrite in me is speaking now granted I've always been a fan of 'Eye Candy'.

I've come to realize that even though monitors are now cheap, large and wide, we are still bound by the need to 'tab' through windows, not to mention the idea of minimizing windows has polluted our minds since the dawn of the '_' button.

The more window managers (and Microsoft Windows and OS X) evolve the more we are finding ourselves hooked to the mouse and to the recent "Touch" trend.

I for one, find it very disturbing having to slide my hand over to grab the mouse. In fact, one of the reasons why I hate browsers is the need for a mouse (and I'm talking beyond address bar shortcuts, new tabs and the lot).

I needed a solution. I needed a solution that would allow me to exercise the tasks I needed to do on a daily basis (personal and work) all the while providing me with great productivity and speed without interfering with the usual 'visual' workflow.

I stumbled upon Tiling Window Managers. In short, they are window managers that do the following:
- Drop any unnecessary visuals.
- Use the screen space as it should be used.
- Provide you with a handful of keyboard shortcuts to move around.
- Provide simple configuration mechanisms.

Before I move on, allow me to say that the preference of a tiling window manager, just as it is with operating systems or anything else, is relative. You use what you find enjoyable.

Also please note that I have only scratched the surface of the following WMs and what I say may be incorrect, doable or anything else, so just take it with a grain of salt and do your own trials!

Awesome

I started out with awesomewm. It's one of the most popular tiling window managers around and may very well be the only one you would ever use. From my part I simply disliked the way awesome does its tiling algorithms as well as the graphical menu it provides. The reason I'm using a tiling window manager is because i do NOT want a menu. Awesome does provide a way to run commands but its sub par to the alternatives.

i3wm

I moved on a couple of months later to i3wm. I don't think I've ever used a window manager more than i3, it stuck with me for quite a long time and it has proven to be very valuable. What I enjoyed about i3 is the fact that the tiling process is not driven by an algorithm but by YOU as a user. The way the windows are tiled is solely dependent on the signals you provide i3. I'll give you a small example:

Mod + Enter = Open Terminal (fullscreen)
Mod + Enter = Opens new Terminal side by side to the first (default split is always horizontal)

We now have 2 side by side terminals.

Mod + V = Signals i3 that the next split should be vertical
Mod + Enter = Opens new Terminal vertical to the previous one.
Mod + H = Signals i3 that the next split should be horizontal

and so on. That benefit alongside the availability of Dmenu was reason enough for me to stick with i3 for a long time. i3 as well as awesome come with a status bar. The downside of i3 is that it doesn't allow window resizing by default using keyboard shortcuts. Furthermore, it had chosen to use the 'H' key as a signal for splitting horizontally, which forced the author to use JKL; as the navigation keys, which really conflicts with the idea of HJKL being the movement keys in linux.

Xmonad

I should've started with xmonad before the previous, simply because it's more vanilla in terms of features. However, Xmonad also comes with Dmenu and out of the 3 listed, it really squeezes windows and does not waste a pixel of space. It's also quite fast and provides a single smart and fast tiling algorithm by default (as opposed to awesome, which provides many) but there are libraries that you may use to change the algorithm.

I haven't used Xmonad for long so i reserve my feedback for later. So far, the downsides I've witnessed are the lack of a default status bar as well as the (obvious) need to have GHC installed which is about 40mb in size, nevertheless this is a one time thing and the status bar is probably available separately.

-

I'm not going to bother discussing the benefits of using a Tiling Window Manager as a developer, as soon as you start using it, you'll realize it!

I hope this brief introduction will at least have you guys give one of those (or others) a test.

Offline

#2 July 24 2012

Joe
Member

Re: Linux - Tiling Window Managers

My story with tiling WM is limited to 2 different ones, which I differentiate mainly in the way they are configurable:

- Awesome WM: Conf file is a Lua script. It rules.
- dwm: Made by the same people behind dmenu, it is extremely tiny (yet complete). The conf file is a C header file. Each time you modify it you have to recompile the whole WM. It's not very dynamic, but strangely, it works rather well!

Tiling WMs have benefits and disadvantages much like everything else. And like xterm says, it's about personal preferences. You should definitely give it a try if:

- You favor efficiency and productivity over eye candy.
- You favor using the keyboard over the mouse (don't be fooled, awesome supports the mouse fully. But it expects you to do everything with a keyboard).
- You don't open/close windows a lot.

That last one is more a tip than a factor. Tiling WMs are not made to be dynamic. Every time you open a new window, there's a chance your tiling will go wrong. Sure, with experience, you can predict well how your tiling evolves, and from what I've seen in i3, it's really easy to manage it. However, I find that the best way to operate, is have a definitive layout, and stick to it.

In my case, I have a Lua script set up the windows that I want, and the programs that I want, at startup. I rarely open/close any windows.

Offline

#3 July 24 2012

saeidw
Member

Re: Linux - Tiling Window Managers

Great write-up! I haven't tried i3 or awesome but I hear really good things about them!

On my home laptop I always have xmonad installed, I have it set up with a simple xmobar and the default tiling algorithm.

At work I use wmii. It's a simple tiling wm from the same people who made dwm and dmenu. The configuration is through a 9P filesystem, which is pretty cool, because you can learn about the system and change it just by reading and writing files.

By the way, I found Windows 7 to be kind of keyboard friendly. With a window focused, WinKey + {Up,Down,Left,Right} will respectively: Maximize, Minimize, Snap to Left, and Snap to Right.
It takes a few seconds every morning to set up a tiled layout.

Offline

#4 July 24 2012

xterm
Moderator

Re: Linux - Tiling Window Managers

saeidw wrote:

By the way, I found Windows 7 to be kind of keyboard friendly. With a window focused, WinKey + {Up,Down,Left,Right} will respectively: Maximize, Minimize, Snap to Left, and Snap to Right.
It takes a few seconds every morning to set up a tiled layout.

Right, but it's quite weak in comparison. To get a better experience I had to get third party software that provide more tiling options. Not to mention the inability to hide the title bars and borders, which is a big plus in tiling WMs.

For the record I'm almost giving up on xmonad for rather silly reasons.

- I tend to close apps in i3 with mod shift Q, this exits xmonad :-( you have no idea how many times I logged out of my session where I meant to simply close a client. Yes I can remap, but I really don't want to do that granted the less I need to configure the easier it is to maintain across machines and fresh installs.

- Haskell is somewhat alien to me, I didn't enjoy the configuration much. I'd rather stick with Lua, which for the most part is more fit for such tasks.

Offline

#5 July 24 2012

saeidw
Member

Re: Linux - Tiling Window Managers

xterm wrote:

- Haskell is somewhat alien to me, I didn't enjoy the configuration much. I'd rather stick with Lua, which for the most part is more fit for such tasks.

I definitely agree on that point, it is a weird choice to do configuration, and I'm still not sure if the power it gives you is worth the trouble. I do like Haskell though, and I wanted to learn it anyway so I got used to it, but Lua definitely wins in this aspect.

The solution to your first problem is obvious, though: never close a window!
You're using a tiling wm, just switch to a new workspace and open more stuff! Solved!

That last paragraph was a joke :)

Offline

#6 July 24 2012

xterm
Moderator

Re: Linux - Tiling Window Managers

saeidw wrote:

That last paragraph was a joke :)

nevertheless, I have 4 workspaces that remain the same at all times

W1 - 3 terminals, a main one for Vim, one with an interactive python shell running at all times, one for anything else related to terminal functions.
W2 - Chrome
W3 - IM clients
W4 - File manager, media stuff
W5 to W9 - temporary clients that i use for a short while. Those are the ones that I close often.

-

On a side note I'm still trying to find a decent terminal IM client! Empathy is boring, Pidgin is ugly. I tried Irssi with xmpp plugin but it's really annoying to deal with.

If I can't find something to my taste may as well end up writing my own but I'm dreading the horror of 'curses'.

Last edited by xterm (July 24 2012)

Offline

#7 March 10 2013

venam
Member

Re: Linux - Tiling Window Managers

--

Last edited by venam (July 31 2013)

Offline

#8 May 8 2013

xterm
Moderator

Re: Linux - Tiling Window Managers

I'm reviving this thread because I can't emphasize enough on the benefits of using a Tiling WM.

Offline

#9 May 8 2013

Joe
Member

Re: Linux - Tiling Window Managers

Okay, peripheral question: Does anyone know of something similar to tiling WM on the mac OS X platform?

Offline

#10 May 8 2013

xterm
Moderator

Re: Linux - Tiling Window Managers

I tried Shiftit and Divvy.

They don't hold a candle to the TWMs we use.

Last edited by xterm (May 8 2013)

Offline

#11 May 8 2013

Joe
Member

Re: Linux - Tiling Window Managers

I've been using Divvy since yesterday. It's not good enough. Thanks mentioning Shiftit, I'll try it.

Offline

#12 May 8 2013

samer
Admin

Re: Linux - Tiling Window Managers

What don't you like about Divvy?

Offline

#13 May 8 2013

m0ei
Member

Re: Linux - Tiling Window Managers

Shiftit is not bad compared to Divvy, but it lacks a lot compared to others.

I'm currently testing the 2 following TWMs xnomad and slate.

Offline

#14 May 18 2013

venam
Member

Re: Linux - Tiling Window Managers

--

Last edited by venam (July 31 2013)

Offline

Board footer