Bryan Garza

What I Want From Window Managers (Switching from i3 to MATE) ( August 20, 2017)

I decided to try and switch to a different window manager, namely because I was tired of switching to the wrong workspace in i3. Even though I for the most part put the same applications on the same workspaces each time, I still spend too much time fumbling with which workspace I want. I tend to want at most 2 windows in view, usually as split columns. Occasionally I’ll want 3 windows visible at once, but for the most part my workflow is having one or two visible windows. I’ve put up with i3’s manual layouts for years, mostly because its i3bar supports system applets out-of-the-box and it’s too much effort to set up another window manager to work similarly, effort that could be spend working on something more productive.

Before I get into more detail, here’s some background on what window managers or desktop environments I’ve used:

During the time that I used dwm/xmonad/i3 in high school, I was active in the Arch Linux forums, as well as the #archlinux IRC channel. Back then, I was still learning to program and spent much of my time ricing my setup. As time went on and I became a decent programmer, I realized how I just wanted things to work correctly without fiddling, and that spending hours tweaking color schemes and other settings was a waste of my time. Furthermore, using OS X was a total 180 from what I was previously used to, which required writing scripts for everything and manually binding to various keys, as well as manually triggering arandr commands to change my monitor layouts, etc.

When I switched back to GNU/Linux last year I knew that I wanted to maintain the level of ease that is in OS X, at least for the essentials. One of those thing is the use of alt-tab. This doesn’t really seem to be available in any tiling window managers. I started using rofi as a wannabe alt-tab switcher, but disliked having to type the beginning of a window’s name to switch to it.

One thing that drives me nuts to configure is status bars and applet trays. I really don’t see the point in setting them up, and tiling window managers that ship without a decent status bar get a hard pass from me.

My requirements, therefore, for switching to another window manager or desktop environment are that (1) there has to be an alt-tab switcher, (2) the status bar has to work out-of-the-box and support applets.

Having heard of MATE from a friend, I decided to give it a shot. First I installed the most minimal package from the Debian repositories, but then realized that even the full install didn’t include that many extras. I also installed mate-tweak to be able to change some extra settings.

The switch was also catalyzed by having read Why Tiling Window Manager Sucks by Xah Lee. I’ve always respected his expertise on emacs, ergonomics, and general GNU/Linux usage, and it got me thinking that perhaps I was taking the wrong approach to window management, too chord-centric and complicated for what should require a minimal number of window manager actions, namely split left, split right, maximize window, close window, and rotate to next application.

I removed most of the default MATE bindings, bound some of the Function keys to the previously mentioned most common window manager actions, and set up wmctrl to switch to specific applications. I also tried out Compiz for about an hour but it seemed buggy to me so I quickly went back to the “Marco (Compton GPU Compositor)” setting.

So far, my current setup is basically how I use Spectacle on OS X, but without using as many chords. Like I mentioned earlier, all I really want is to be able to put emacs on the left half, and either Chromium or urxvt on the right. For less used applications, I want to alt-tab to them. Simple as that. I don’t need the tiling (manual or automatic), because if I’m working on the x230, I don’t have much screen real estate anyways, and if I’m using the external monitor, well, I still don’t want to have more than 2 or 3 visible windows.

One unexpected side effect of switching to MATE is that monitors automatically work when plugged in. For i3, what I do is create an arandr script for each specific setup (HDMI only, HDMI with ThinkPad monitor on left, living room TV with ThinkPad on right, etc), and then launch said script with rofi. It’s not ideal, and sometimes X freaks out on me and I get a black screen, forcing me to switch to another tty to kill the X server. I don’t know if MATE will also have similar issues but at least when I plug in my external monitor, it’s automatically enabled and the placement is saved. When I unplug the external monitor, it works like it should, changing to only use the ThinkPad monitor, and when the ThinkPad is closed and I disconnect the monitor, the ThinkPad goes to sleep like it should.

I’m still using i3lock (it seems to work on any WM or DE without having to touch it).

The monitor support in MATE (or any other Desktop Environment, I’m assuming) is enough reason to switch from a tiling window manager, or to switch to a combination of Desktop Environment plus tiling wm. It’s 2017, no one should be using a tiling window manager standalone.

I’ve only had this setup for a day, and therefore haven’t fully explored the pros and cons of i3 vs MATE (or tiling window managers vs Desktop Environments in the large); later on I might write a follow-up post, but for now, these are my first impressions.

Archive