<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Tiling on Tom Burkert</title><link>https://blog.burkert.me/tags/tiling/</link><description>Recent content in Tiling on Tom Burkert</description><image><title>Tom Burkert</title><url>https://blog.burkert.me/assets/</url><link>https://blog.burkert.me/assets/</link></image><generator>Hugo -- 0.148.0</generator><language>en-us</language><lastBuildDate>Sun, 20 Jul 2025 19:17:47 +0200</lastBuildDate><atom:link href="https://blog.burkert.me/tags/tiling/index.xml" rel="self" type="application/rss+xml"/><item><title>Workspaces &amp; tiling window management across operating systems</title><link>https://blog.burkert.me/posts/workspaces-and-tiling-window-management-across-operating-systems/</link><pubDate>Sun, 20 Jul 2025 19:17:47 +0200</pubDate><guid>https://blog.burkert.me/posts/workspaces-and-tiling-window-management-across-operating-systems/</guid><description>&lt;h2 id="the-problem">The problem&lt;/h2>
&lt;p>Window management for GUI operating systems has been with us for decades, but it still feels a bit broken to me. Yes, everyone has their preferences and not everyone needs to run as many programs as I do at times, but there is something principally broken about having a bunch of windows stacked on top of each other and trying to Alt-Tab to the right one at all times. And I&amp;rsquo;m not &lt;a href="https://youtu.be/ZH3iKbEiks0?t=571" target="_blank" rel="noopener">the only one&lt;/a> to think that.&lt;/p></description><content:encoded><![CDATA[<h2 id="the-problem">The problem</h2>
<p>Window management for GUI operating systems has been with us for decades, but it still feels a bit broken to me. Yes, everyone has their preferences and not everyone needs to run as many programs as I do at times, but there is something principally broken about having a bunch of windows stacked on top of each other and trying to Alt-Tab to the right one at all times. And I&rsquo;m not <a href="https://youtu.be/ZH3iKbEiks0?t=571" target="_blank" rel="noopener">the only one</a> to think that.</p>
<p>Windows (the operating system) has had some lukewarm attempts at allowing a slightly different window management paradigm by adding multiple desktops and running/switching to apps using the Win+<code>[number]</code> key stroke. This satisfies some of the needs but once you realize you can only move to the next or previous desktop using your keyboard only (no &ldquo;Go to Desktop 3&rdquo; command is available), your enthusiasm dies a slow death.</p>
<p>There are ways to further improve it: You can install <a href="https://learn.microsoft.com/en-us/windows/powertoys/" target="_blank" rel="noopener">PowerToys</a> and get some additional tweakability, but even then it feels a little insufficient: still no &ldquo;jump to desktop X&rdquo; command, FancyZones is decent but not very flexible, and you start piling a lot of additional software (PowerToys have been quite resource-hungry for me) just to have a usable (but still not great) experience.</p>
<h2 id="seeing-the-light">Seeing the light</h2>
<p>Tiling window management seemed like an odd choice for me in the beginning. Handling smaller and smaller windows the more stuff you open seems a little stressful (tiling typically involves spawning windows in <a href="https://en.wikipedia.org/wiki/Fibonacci_sequence" target="_blank" rel="noopener">Fibonacci sequence pattern</a>), but then I realized the trick is not to have too many windows opened on the same workspace. I started experimenting with tiling first on my personal (linux) computer, testing it in Gnome, then in the Cosmic desktop, but ultimately settled on <a href="https://hypr.land/" target="_blank" rel="noopener">Hyprland</a> as the universally acclaimed GOAT of tiling window management. The trick, of course, is to organize the apps you use very often into their own workspaces, and just switch between the different workspaces. This eliminates all the mental overhead and frantic alt-tabbing to get to what you need. The basic premises are:</p>
<ol>
<li>Workspaces are containers that should be as stable as posssible (i.e. their contents do not change a lot over time or individual sessions).</li>
<li>In order to have that stability, you create rules that assign newly opened app windows to specific workspaces (doing this manually is a surprisingly taxing feat).</li>
<li>For ad-hoc apps that don&rsquo;t have a rule, you can either open them in your currently active workspace and tile them next to whatever is already there (chances are they are both needed right now anyway since they spawn from the same context), or you move the app to one of the free/blank workspaces.</li>
<li>Apps are always fully visible on the workspace they&rsquo;re placed on, so there is no alt-tabbing to conjure up the right window.</li>
<li>After building a little bit of a muscle memory, you won&rsquo;t have to think at all when you want to switch from one app/workspaces to another, e.g. from your terminal to your browser - you just press Alt+2 (in my case).</li>
</ol>
<p>And setting this up in hyprland is not too difficult if you have at least basic experience with terminal and config files. You simply define the workspaces:</p>
<pre tabindex="0"><code>$ws1 = 1|💻
$ws2 = 2|🌐
$ws3 = 3|✉️
</code></pre><p>And then define the workspaces and their rules:</p>
<pre tabindex="0"><code># Workspace 1: Terminal
workspace = 1, defaultName:$ws1, persistent:true, id:1
windowrulev2 = workspace name:$ws1, class:^(com.mitchellh.ghostty)$

# Workspace 2: Web
workspace = 2, defaultName:$ws2, persistent:true, id:2
windowrulev2 = workspace name:$ws2, class:^(zen)$

# Workspace 3: Mail
workspace = 3, defaultName:$ws3, persistent:true, id:3
windowrulev2 = workspace name:$ws3, class:^(net.thunderbird.Thunderbird)$
</code></pre><p>Realistically, most people will use 5-8 different apps on a daily basis and the rest will be more of an ad-hoc usage. Creating rules for those 5-8 apps takes just a few minutes.</p>
<p>Paired up with <a href="https://github.com/Alexays/Waybar" target="_blank" rel="noopener">waybar</a> as a system bar and <a href="https://github.com/adi1090x/rofi" target="_blank" rel="noopener">rofi</a> as an app launcher, my setup is complete.<br>
<img alt="linux-hyprland" loading="lazy" src="/../images/linux-hyprland.png?lightbox=1920"></p>
<h2 id="i-could-achieve-the-same-just-using-gnomekdefancyzonesxyz-workspaces">&ldquo;I could achieve the same just using Gnome/KDE/FancyZones/XYZ workspaces&rdquo;</h2>
<p>Technically, you can get really close - and I actually urge you to first test workspaces and tiling in Gnome, Cosmic or some other more familiar desktop environment to get a feel for it. However, I still believe that the moment you spin up multiple windows on the same workspace and start alt-tabbing between them, the moment one window gets occluded to another, you&rsquo;re basically back to square one. If you&rsquo;re more disciplined than me, maybe you&rsquo;ll arrange them in a way to avoid that, but that to me sounds like doing the tiling manually. Or maybe your usage patterns are just very different, which is fine - use whatever suits you. All I&rsquo;m saying is: give tiling a try.</p>
<h2 id="how-do-i-get-things-done-with-only-one-or-two-apps-at-a-time">&ldquo;How do I get things done with only one or two apps at a time?&rdquo;</h2>
<p>I&rsquo;m tempted to flip the question and ask: How do you get things done with 3+ apps opened at the same time? Humans are <a href="https://pubmed.ncbi.nlm.nih.gov/19706386/" target="_blank" rel="noopener">proven</a> to be bad at multitasking (yes, even women). And I don&rsquo;t blame you for thinking otherwise, I was convinced that I could multitask without any cognitive penalties for many years, not considering the mental toll and switching costs of constantly moving my focus from my mailbox to multiple chat apps and collaborations tools and many opened browser tabs. This was further exacerbated by the common dual-monitor setup, which I considered the peak productivity booster for a long time.</p>
<p>At some point I bought myself a 27&quot; QHD monitor for my home setup (my desk wouldn&rsquo;t nicely fit two FHD monitors) and I definitely prefer it to the dual FHD screen setup I have at work: not only because I don&rsquo;t have to stare at the gap/bezels in the middle, but also because I am rarely interested in what&rsquo;s going on the other screen: most of what happens there is just a distraction, or does not provide any real benefit most of the time. And the times when it becomes a distraction tend to outweigh occasional benefits of the larger screen estate. If I need to, I can still lay out 2 windows side by side on a 1440p screen (even three depending on the app or website layout), so for cases where you are closely comparing two documents or following instructions from one app to perform in another, I can still quickly glance back and forth.</p>
<p>At the same time, I recognize that everyone&rsquo;s brain works a little differently; we have varied preferences, and a lot of people will be using computers in different ways and for different tasks than I do. But for a mixture of coding, data analysis, communication, management and research, I personally vastly prefer just a single larger screen and more of a laser focus on the thing that I am doing at the time.</p>
<h2 id="if-only-things-were-this-easy">If only things were this easy</h2>
<p>Then, of course, you have to deal with the reality of everyday life. The company I work at only provides Windows and Mac devices, so for roughly 8 hours a day, every working day, I have to deal with the utter chaos of window management in Windows. Yes, it really feels like utter chaos once you are used to tiling windows in pre-configured workspaces.</p>
<p>So thus began my journey to unify my experiences across operating systems. Of course, Hyprland does not run on Windows, but there are a few options you have. One of the most popular ones is <a href="https://github.com/LGUG2Z/komorebi" target="_blank" rel="noopener">Komorebi</a>, which is open-source, highly configurable and quite powerful. However, since I&rsquo;m looking for something to use on my work computer, the commercial usage clause of the Komorebi license would be triggered, and I&rsquo;d have to pay up. And I would happily buy the license if it was a one-time fee or a low yearly fee, but a $10 monthly subscription model is not acceptable to me from a principial standpoint. Back to square one.</p>
<p>Luckily, there is an alternative to Komorebi that is gaining a lot of traction: <a href="https://github.com/glzr-io/glazewm" target="_blank" rel="noopener">GlazeWM</a>. It&rsquo;s a tiling window manager which is also open-source and highly configurable, and distributed under the GPL v3 license. Hooray! GlazeWM is most definitely a spiritual kin to Hyprland: Tiling window management with a ton of options, configurable workspaces, workspace-assignment rules, customizable keyboard shortcuts etc. After tinkering with the config and pairing GlazeWM with <a href="https://github.com/glzr-io/zebar" target="_blank" rel="noopener">Zebar</a>, <a href="https://github.com/Flow-Launcher/Flow.Launcher" target="_blank" rel="noopener">Flow launcher</a> and <a href="https://github.com/lukeyou05/tacky-borders" target="_blank" rel="noopener">Tacky Borders</a>, I was able to get almost and identical experience to my Hyprland + waybar + rofi setup on Linux.</p>
<p>Example of configuration of a workspace and its rules for GlazeWM:</p>
<pre tabindex="0"><code>    - name: &#34;2&#34;
      display_name: &#34;2|🌐&#34;
      keep_alive: true
</code></pre><pre tabindex="0"><code>    - commands: [&#34;move --workspace 2&#34;, &#34;focus --workspace 2&#34;]
      match:
         # Move browsers to workspace 4.
         - window_process: { regex: &#34;zen&#34; }
         - window_title: { regex: &#34;Zen Browser&#34;}
</code></pre><p><img alt="win-glazewm" loading="lazy" src="/../images/win-glazewm.png?lightbox=1920"></p>
<h2 id="portability-as-a-side-effect">Portability as a side effect</h2>
<p>One of the side effects of setting up GlazeWM- and Hyprland-basert setups is that it is very easy to re-create them: all of the sotware involved is heavily config-file centric, so all it takes to spin this up on a new Windows machine is a couple of winget commands and a few config files copied to the right location. On linux, I was able to create an install script and back up my config with stow and git, so the configuration changes between my personal desktop and notebook are easily synced. The value of such a setup is hard to overstate: it may not come up very often, but when you do need to get your new or reinstalled machine up and running, the time you save not setting things up manually is invaluable.</p>
<h2 id="this-is-just-a-fad">&ldquo;This is just a fad&rdquo;</h2>
<p>Maybe it is! But the truth is, I experimented with workspace-based setups back in early 2000s on my SuSE Linux and later Gentoo machines with <a href="https://ice-wm.org" target="_blank" rel="noopener">IceWM</a> (side note: any other fans of <a href="https://gkrellm.srcbox.net/" target="_blank" rel="noopener">GKrellM</a>?). I&rsquo;m not sure if the idea of tiling window management existed back then, but the notion of multiple workspaces has been a part of the linux desktop experience for decades at this point. And maybe in a few years, the desktop management paradigm will be completely different, but right now I feel I have found the setup that suits me the best.</p>
<h2 id="not-quite-paradise-but-close-enough">Not quite paradise but close enough</h2>
<p>Even though I love my setup, but there are a few things that I still need to figure out or that are small annoyances:</p>
<ul>
<li>Fibbonaci sequence pattern tiling effect is not officially supported by GlazeWM (it places new windows in one direction - either vertically or horizontally). There are <a href="https://github.com/burgr033/GlazeWM-autotiling-python/tree/main" target="_blank" rel="noopener">simple scripts</a> that take care of that and I do use one such script, but I hope this gets implemented as a core feature.</li>
<li>Some pop-ups and overlays are not perfectly handled in GlazeWM. This is quite rare but Microsoft Teams is perhaps the biggest offender: its overlays and widgets that pop-up when sharing screens can sometimes cause jumpy behaviour, steal focus and can be generally a little confusing.</li>
<li>Windows taskbar will unhide itself with some blinking notifications and it can be difficult to make it go away again.</li>
<li>Zebar supports system notification tray since version 3.1.0, but I wasn&rsquo;t able to get it working yet. I have very little use for notification tray icons, and for the rare occasions that I need them, I can use the windows taskbar, but having them in Zebar would make things a little nicer and tidier.</li>
<li>My workspace layout and Waybar/Zebar configurations are not perfectly aligned between my personal and home setup. This is something I may address in the future, but maybe some separation of the contexts between home and work is actually a good thing. I haven&rsquo;t found any adverse effects of switching between the computers - I guess I built the muscle memory for each context separately and can operate both without confusion.</li>
</ul>
<h3 id="footnote-support-open-source-software">Footnote: Support open-source software</h3>
<p>I am a big proponent of the ideas and principles of open-source software (OSS), but a lot of the modern software rests on the shoulders of a small number individuals who have regular jobs and do the OSS development in spare time. In order for the community to thrive, we should do more to support the developers and maintainers of the projects we benefit from. I have not found an easy way to support GlazeWM, but Hyprland does have a <a href="https://hypr.land/support/" target="_blank" rel="noopener">Support Hyprland</a> page up. The beauty of OSS is that you can test the software for as long as you want, and donate only once you are sure you will benefit from it. Even a few dollars go a long way!</p>
<h3 id="edit-you-might-like-omarchy">EDIT: You might like Omarchy?</h3>
<p>If this all sounds intriguing to you and you are (or are considering) using Arch linux, <a href="https://omarchy.org/" target="_blank" rel="noopener">Omarchy</a> from <a href="https://dhh.dk/" target="_blank" rel="noopener">DHH</a> is definitely worth checking out.</p>
]]></content:encoded></item></channel></rss>