
A Tiling Desktop Environment - wezm
https://bitcannon.net/post/pro-desktop/
======
wyclif
I've never understood why macOS has never included the functionality of, say,
Divvy or chunkwm. I'd like to easily be able to tile my desktop via a keyboard
command. Also, I've never quite understood what macOS people have against
snapping the edges of windows to each other or the edge of the screen.
Sometimes I want to divide the workspace into 3 or 4 windows and maximise my
use of screen real estate. It's trivial to do this on a Linux distro (i3,
awesome, dwm, ratpoison, etc.) but you have to do some tweaking on macOS, why?

[EDIT: best explanation of why I've heard: it's because the macOS design
philosophy is that Apple knows best what size a window is supposed to be,
while Linux and BSD are aligned with user-centric custom settings]

~~~
opencl
Even Windows has had a basic level of built-in window tiling functionality for
a decade now. You can resize windows to half or a quarter of the screen either
with keyboard shortcuts or dragging the window to a side or corner. It works
pretty well.

~~~
smhenderson
Tiling and cascading Windows was available in Win 3.0. And it was available to
MDI apps all that time as well so a lot longer than a decade.

~~~
furgooswft13
Tiling was all that was available in Win 1.0! Absolute best tiling WM for your
286.

~~~
dspillett
Wasn't tiling the only option in Windows 1.x, other than full screen?

~~~
tinus_hn
Well it didn’t support overlapping windows so those are the only remaining
options.

------
nickjj
I use i3 on a Linux laptop, I really enjoy it.

Too bad nothing exists like that on Windows. Snapping or splitting 2 windows
side by side (the Windows 10 snap feature) isn't enough.

On the bright side most of the other features that you would use along side a
tiling wm can be used in Windows, and it's very good.

\- AHK to manage global hotkeys and remapping keys

\- Keypirinha to launch apps / folder paths with fuzzy search

\- DexPot to have multiple virtual desktops that supports moving windows
across them (same key binds as i3)

I made a video about 6 months ago showing some of these tools in use at:
[https://nickjanetakis.com/blog/a-linux-dev-environment-on-
wi...](https://nickjanetakis.com/blog/a-linux-dev-environment-on-windows-with-
wsl-docker-tmux-and-vscode)

Although I changed a couple of things since then, such as I use Vim instead of
VSCode, but I still use the above tools every day. They are really solid.

~~~
vegardlarsen
Full disclosure: I am the author of MaxTo.

Have you looked at MaxTo? [https://maxto.net](https://maxto.net)

It does not work in the exact same manner as i3wm does; it lets you decide on
a set of regions that windows are maximized into (the regions can be a non-
uniform grid). This lets you focus on one task at a time. It has great support
for hotkeys. At the moment I believe MaxTo is the closest you'll get to i3 on
Windows.

~~~
nickjj
Yep. It was one of the first apps I tried in this category. I know a lot of
people prefer having pre-defined layouts but I'm not a fan of that. I'm often
always moving windows around slightly in size and really lean on the wm or
tool auto-adjusting things on the fly.

------
git-pull
Like the author, I've spent years in tiling WM's (xmonad, awesome, dwm, i3).
Right now I'm hanging around big DE's like kde, gnome, windows 10, osx +
magnet.

Windows 10 snapping keyboard keys are top tier. Not automated tiling, but save
so much time. Also the GUI is beautiful on whatever screen you plug it into
(including 4k). On Linux DE's right now? Mint or gnome will show options to
scale up 200%, 300%, 400%(!) Even 200% is far to much.

Tiling WM+HDPI doesn't quite exist. Most use gtkrc, xresources, and the WM
config to play with sizes. But that doesn't translate across different
monitors. So it's a flawed system.

Let's assume HDPI+linux and tiling WM's were ironed out: In practice tiling
WM's aren't as good because once you get into a terminal window, it's not as
easy as it looks to copy from terminals <-> "gui" applications. It's possible,
but the time spent ironing it out may not be worth the trade off for some. For
instance I can't rely on copying from a vim inside of tmux, I do :!leafpad %
to open a file and copy from that.

As for HDPI and tiling WM's, swaywm is an i3 for wayland that appears to
support it: [https://swaywm.org/](https://swaywm.org/)

If you're okay with just HDPI and basic snapping:
[https://system76.com/pop](https://system76.com/pop) or gnome 3.32 (that'd be
ubuntu 19.04 or debian experimental at the moment I believe). Gnome 3.32 has
fractional scaling. That'll scale by 125%, 150%, 175% (probably what you want)

Gnome's snapping isn't a smooth as Window 10's. Windows 10 is really good and
half-sizing vertically. IMO: It'd be ideal if gnome 3 behaved the same as
windows snap did by default. Extensions can help, but if you rely on them,
they're limited and often behind of the latest gnome version (or two or three,
or become abandoned entirely [1]), and don't wire-in to keybindings as well.

[1] [https://extensions.gnome.org/extension/723/pixel-
saver/](https://extensions.gnome.org/extension/723/pixel-saver/)

~~~
jeromescuggs
being able to divvy up a desktop into 4 quarter panel windows on win10 with
near zero effort absolutely changed my life, i think of how much time i've
wasted clicking back and forth between two windows stacked on eachother, or
having to manually move/size windows to be next to eachother... i dunno. i
held out as long as i could before caving to a 10 upgrade out of necessity,
and it's a shame that windows has built such a stigma like that because (once
you go in and rip out all the junk) it's clear microsoft has decided to
embrace alot of conventions paved by linux/unix/gnu/whatever - little things
like recognizing shift+ins as a 'paste' command - and has really improved
desktop management overall.

~~~
michaelhoffman
Shift+Insert has been a paste shortcut in Windows since at least Windows 3,
maybe earlier. As far as I'm aware this convention was introduced by IBM's
Common User Access standard around 1987.

[https://en.wikipedia.org/wiki/IBM_Common_User_Access](https://en.wikipedia.org/wiki/IBM_Common_User_Access)

------
tluyben2
I use i3 for battery friendly-ness; it gives me many hours (sometimes double
if only doing dev) more on my Ubuntu machine. Vim as IDE (bunch of extensions,
like OmniSharp for .NET Core dev) and so on. I have different systems for
testing and trying things on like a Macbook, Windows 10 machine with VS etc,
but nothing is quite as productive as my Linux setup and that is mostly
because of i3/vim. You have to practice the keyboard shortcuts, but that does
not take a lot of time.

I give other environments a go once in a while but this wins so far.

One point to make; I do personally not like large and/or external screens. I
like small laptops and I move around a lot during the day.

~~~
mjlee
Which laptop are you using for Ubuntu? Are you happy with it?

~~~
tluyben2
X220 with 9-cell battery, ssd from a broken macbook pro and 16 gb from the
same macbook pro. Yes, it is the best laptop I have ever owned (and I owned
many). I have several (bought for almost nothing from a company sale) for
replacement; if I break one, I am up and running in 10 minutes again. I think
I paid less than $250 for 5 pristine ones + 2 new 9 cell batteries new in box.

It is surprisingly fast for it’s age with i3. Besides ML or iOS compiling
(which I just do remotely) stuff I do all my dev on it.

Edit: also, if you hate this screen resolution, you or someone on the webs,
can put in a much higher res screen in. There is so much you can replace in
these things and the keyboard is such a pleasure compared to modern keyboards.
Imho ofcourse.

~~~
panpanna
Lenovo X220 was the best laptop ever produced. But after 8 years non-stop use
they often need fan and thermal paste replaced.

~~~
tluyben2
Spare parts and complete replacements are quite easy and cheap to pick up.
Luckily many of there were made :)

------
furgooswft13
I'm just here to shamelessly shill for Notion (not-ion), though it is probably
the furthest tiling WM from this guy's wants (ease of setting up shiny
things). I swear there are still dozens of active users.

It's tiling is like i3 except it uses manual layouts instead of dynamic. So
when you create yet another xterm window it does not rearrange all the other
tiles on your screen, it just creates a new tab in the current frame. If you
want a new horizontal or vertical split, you create it explicitly. I open
shells like browser tabs, so if the default was to somehow find screen space
for each one, I'd be looking at hundreds of 2x2 sized xterms. Honestly if I
could get i3 to behave like this I'd probably switch (and I've tried...I
realize you can set a pane into tab mode, but I find it's still too easy to
totally mess up your layout if you are not careful in i3. Anyone got tips?).

I also once used Awesome, and the constant reshuffling of the screen layout
drove me crazy. Did not really care for the fixed layouts either.

~~~
dividuum
One of the dozen users checking in. My favorite feature of ion/notion is the
alt-space scratch pad. I always have a bunch of ad-hoc terminals or other
programs open that I can easily reach from any desktop. So far I haven't seen
any other tiling wm that has something similar. I'm probably wrong though.

~~~
zem
i did that with xmonad - set up alt-` to either switch to desktop 10, or if i
was on desktop 10, to switch back to the previous desktop.

~~~
dividuum
That's certainly an interesting idea. Thanks!

~~~
pard68
I have a number of terminals mapped to hyper+[letter] in i3, five are empty
with just a shell. Two are Python repls, and the rest are actually various
outputs for programs I run where I want to see a log of whats happening

------
natecavanaugh
I feel like a shill with how often I recommend it, but Keyboard Maestro [0]
seems like it would handle almost everything, from window management to all
sorts of system automation. The kinds of things I can execute with a key
command is amazing. Sometimes, I'll just write a quick task, like realigning
titles across a set of Keynote slides or very specific text manipulation
operations. Seriously, best money I've ever spent on software (if I had to go
without any tool, from Sublime Text to Photoshop to Logic Pro X, KM would be
the one I couldn't live without, and other than Logic, I actually use the
others day to day for work, and I'd still give them up to keep KM).

[0] [http://keyboardmaestro.com](http://keyboardmaestro.com)

------
iforgotpassword
I started out as a kid with DOS, somehow skipping win 3.11 and then pretty
much everything from win 95 to XP. Then I started using Linux in parallel ca.
2003. Before that I only took a couple curious looks.

Started out with kde3, switched to gnome 2, and as those two evolved found
myself longing for simpler and snappier solutions. Windows was evolving
relatively slowly but even there you'd always lose one or two things every
time you upgraded. On Linux this was much more radical. Not just the desktop
but also the stuff under the hood.

Today I just prefer the minimal version of most things I use and do daily. i3
does the job for window management. Vim with as little plugins as possible for
scripting and coding (as long as it's not Java or c++ with qt). Since
eventually my favorite plugin will stop working as it's unmaintained, or the
file manager will get an overhaul and look different and have all its keyboard
shortcuts changed. The less stuff I depend on the better.

------
throwaway8879
My primary dev machine has been running KDE and i3wm for a while. I feel like
I get a complete GUI experience while having all the benefits of a tiling
window manager.

The author likes Gnome because of it's UI looking like Mac OS, and that's
understandable. KDE did look different when I first switched from Macs. But at
this point, the only things running in my dev machine is a whole lot of
terminals and maybe 1-3 browser instances. So KDE is almost hidden at all
tkmes.

~~~
gh02t
I primarily just use i3, but I used to be a KDE guy. I used it for a while
again just recently and I have to say, it's gotten _really_ good. They've made
it clean and tidy, while still being powerful and customizable.

~~~
mises
The thing that originally got me to switch to i3 was using a serious potato
for a few months. 2012 core i3 processor and 8g ram (upgraded) kind of potato.
Plenty usable with i3, but had trouble with windows or heavier full desktop
environments; i3 was great and snappy and I was able to use the computer just
fine.

~~~
KozmoNau7
I use KDE on a ThinkPad X220i, so around the same specs as your potato (with
an SSD, though). It absolutely flies, no slowdowns or issues at all.

------
n1vz3r
For those who want good sides of tiling DE but won't want to install tiling
WM, there is Openbox. If you aren't afraid of editing configuration XML, you
can assign hotkeys to place windows in quarters/halves of the display or to
jump them between displays. Also Openbox is very fast. It can be used in place
of XFCEs or KDEs own WM, so nothing stops you from having benefits of full-
fledged DE along with powerful WM. That being said, Openbox lacks shadows or
transparency (so separate compositor like xcompmgr or compton is needed) and
doesn't render rounded corners. I use XFCE + Openbox combo at my workplace for
5 years now.

------
flurdy
A tiling window manager is a must for me. But I (like the OP's article
mentions) prefer to use a standard desktop environment (Gnome or macOS) but
add tiling feature only.

So, on my macOS laptops, it is Amethyst all day
[https://github.com/ianyh/Amethyst](https://github.com/ianyh/Amethyst). Love
it.

But on my Linux desktops, I am stuck with Gnome and not gone for full VM
replacement with XMonad, i3 or Awesome.

I don't want issues with disk mounting, clipboards, multiple monitors, etc
just cause I want automated tiling and have to replace my whole desktop
environment to achieve it.

~~~
thomaslord
For what it's worth, I run i3 on my work laptop and I don't have any issues
with those things - the only config I've done for multiple monitors is
configuring one to be vertical and binding workspaces to particular monitors.

I didn't go for a clean install with no desktop environment, though. I started
off with a standard Ubuntu 18.10 install and then installed i3, so I can still
start a session with either i3 or gnome. Highly recommend this setup - it
makes everything pretty easy because you still have all of the default apps
and settings from Ubuntu. The only real config weirdness I had to deal with
was adding keybinds for volume/media keys, and the fact that the display
brightness keys on my laptop aren't bound (I always run on 100%, so it doesn't
bother me).

------
thecrumb
FYI Microsoft recently announced a new PowerToys for Win10 and are asking for
features people would like to see and there is some support behind tiling.
Vote if you are interested in seeing this in Windows.

[https://github.com/microsoft/PowerToys/issues?utf8=%E2%9C%93...](https://github.com/microsoft/PowerToys/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+i3)

------
Aelius
All you linux veterans may cringe at it, but maybe check out my dotfiles. I
have spent years cultivating a complete DE experience around dwm. It shouldn't
be too hard to drop in your wm of choice.

I have used it with HiDPI but only briefly, so that may still be imperfect.

[https://github.com/AeliusSaionji/dotfiles](https://github.com/AeliusSaionji/dotfiles)

~~~
jsilence
Thanks for sharing! Would be nice if you'd wrap it into some auto-ricing
script like LARBS.

~~~
Aelius
What is "ricing" in this context?

I do agree I need to come up with a better way to maintain and distribute
this, I'll look into LARBS.

------
abathologist
I installed the [i3 edition of
Manjaro]([https://manjaro.org/download/i3/](https://manjaro.org/download/i3/))
last weekend. I was up and running with a beautiful environment providing
_most_ of the listed utilities in an hour or so. I have been incredibly happy
with the setup.

The edition could still use some more love (e.g., I had to set up auto-
mounting and HiDPI compatible configs myself), but it is remarkably cohesive
and (relatively) easy to get going.

There is definitely room for improvement, but this is probably a good place to
look or inspiration, and contributing to advance this work might be a good use
of energy for those interested.

~~~
trufflepig
How does Manjaro compare to Ubuntu for the “new user seamless install of
everything” and “easy update for new users”

~~~
nsilvestri
Kubuntu -> Manjaro KDE was a transition I made when I was still distro-
hopping. I used Octopi as a pacman GUI which was super easy to use compared to
Kubuntu's. Now that I've learned how to use pacman, I've still never had
issues with a -Syu on either my Manjaro i3 or Arch systems, but I don't use
Octopi anymore.

------
enygmata
I've been using Awesome every day since 2009. The only things I change from
the default on a new install is the terminal, the default layout and hide
title bars.

The author mentions compositors, but if you don't require fancy things like
transparent windows or shadows, and you have a a well supported/behaved GPU
and monitor, you can probably do without them if all you care about is
tearfree video. Drivers like intel, ati, amdgpu and more recently modesetting
have a TearFree option that does just that. For some systems switching to a
DRI3/glamour setup is enough and as a last resort you can configure X11 and
mesa to force vsync.

------
peatmoss
Any more, what I feel I want is XFCE with Xmonad / DWM style tiling that I
don’t have to hack together.

I’m considering taking another look at KDE with the tiling KWin extension,
since KDE seems to be the center of mass for innovation in 90s style WIMP
interfaces.

EDIT: I’ll add that the GTK software world seems to be driving towards
hamburger-ization, which makes me wonder how much software of the future will
integrate cleanly with XFCE. I’m not sure that the Mint and XFCE people have
enough mass to keep fighting the good fight forever.

KDE is starting to seem like a pragmatic long-term bet.

------
jamespo
[https://github.com/timbertson/shellshape](https://github.com/timbertson/shellshape)
was a good tiling extension for Gnome. Sadly it's no longer under active
development & doesn't work on recent GNOME versions.

EDIT: but the author has developed the simpler
[https://github.com/timbertson/slinger](https://github.com/timbertson/slinger)

~~~
fulafel
How are these vs the gTile linked in the article?
([https://github.com/gTile/gTile](https://github.com/gTile/gTile))

------
csb6
I have been using [https://github.com/miromannino/miro-windows-
manager](https://github.com/miromannino/miro-windows-manager) for several
months now. It is a plugin for Hammersppoon on macOS that lets you resize and
organize windows using the keyboard.

It’s worked really well for my set-up (can make windows fullscreen, take up
1/2, 1/3, 1/4 of vertical or horizontal space of the screen).

~~~
fit2rule
I use miro-windows-manager and love it. I just wish I could take the scripts I
have written for Hammerspoon on MacOS and use them on my Linux workstation -
anyone know how this might be done?

------
tomcam
No interest in trying it. As an old-timer I find this funny. Windows 1 had a
superb tiling system. I disliked it. Reviewers complained for years. I wanted
independent windows and never looked back when they appeared in Windows 3 or
so.

As a guy who runs a company I can see a massive in benefit in a world with
only tiling window managers, which is that it reduces support and
accessibility issues when a window can never be completely hidden.

------
sam0x17
I so agree with this, though I have a slightly different take. As someone who
can't part with my GUIs, I'm nevertheless super jealous of all the i3 folks.

As such, what I want is basically i3 in a gnome window. That for me would be
the best of both worlds. I can do all my fancy i3 stuff but still have a
crisp, efficient UI to get settings/stuff done when it's about ease of use,
not speed.

~~~
jeromescuggs
i feel like i know where you're coming from here, this isn't exactly what
you're describing, but it's pretty dang close. really made the transition to
window tiling far less intimidating than i imagined.

[https://regolith-linux.org/](https://regolith-linux.org/)

~~~
sam0x17
This was pretty close, but ultimately was too i3-ish for me. I'm also
realizing that I could never be as productive with i3 as I am with a mouse or
trackpoint -- with a trackpoint I never have to change my hands out of root
typing position, whereas to hit any of the key combinations involving the
super key, I have to move my left hand to a whole different, scrunched
position. Don't know how you guys do it.

------
INTPenis
I know tiling DE followers have firm principles in my experience so please
don't take this the wrong way because everyone is different.

My personal experience is that I used a lot of tiling DE back when I had a
laptop with 256M RAM.

Lately my last three laptops have had 8G and more of RAM so I don't see the
point.

Mainly because I use vim+tmux as an IDE. So I'm already using keyboard
shortcuts extensively to quickly navigate through vim, vim tabs and tmux.

A tiling DE would add a third layer on top, that I don't feel I need.

Sure I'm a Linux veteran who has been using keyboard shortcuts for 20 years
but there are limits to how far I want to push this. And I feel that vim+tmux
is my limit. My DE is vanilla Gnome Desktop on Fedora and I'm loving it.
(obviously with animations disabled it feels as snappy as Sway or Awesome WM)

Edit: Just to expand; after hours of coding my brain can do vim+tmux keyboard
shortcuts without thinking. The short breaks within that time where I switch
to other windows would only disrupt my flow if I had to switch to a whole new
set of shortcuts.

~~~
alpaca128
In my case I don't need a third layer on top, I simply don't use(aka don't
need) tmux most of the time - I just run terminal buffers inside NeoVim
tabs/windows and can switch quickly between workspaces and windows via i3
shortcuts.

But if I was forced to use a DE I'd also go for Gnome - it's pretty polished
and provides switchable workspaces a bit like i3. It's just not near as
configurable as I'd like.

------
alskdj21
This was also my experience. I was using i3 for a year but things still
weren't working the way I wanted it. Stumbled upon i3-gnome
([https://github.com/csxr/i3-gnome](https://github.com/csxr/i3-gnome)) and
this maybe the current solution for this problem.

------
l0b0
As a fellow Awesome WM user my "solution" to this is two Git repos - one to
set up the system using Puppet, and one with user configuration such as
rc.lua. I've got to basically the same list as OP plus

* low power warnings from cbatticon and

* very basic colour management <[https://gitlab.com/victor-engmark/tilde/blob/6a890f649dd4810...](https://gitlab.com/victor-engmark/tilde/blob/6a890f649dd481028ba34ed9ddce75a3d44b5be3/.xprofile#L35-40>).

Building a proper DE around a decent tiling WM (or separating out the quality-
of-life parts of KDE/GNOME) would be fantastic.

~~~
jsilence
Yes, it would be nice if more tiling window manager power users would make
available their configs like Luke Smith is doing with LARBS
([https://larbs.xyz/](https://larbs.xyz/)).

------
madprops
I'm working on some sort of tiling wm but for the web. It's still pretty basic
in terms of browsers, but already nice if you want to use it to display
websites that don't change often. It's based on Electron. You can get it here
[https://github.com/Merkoba/Boneless](https://github.com/Merkoba/Boneless) \--
Also there's this video that shows a bit how it looks right now
[https://www.youtube.com/watch?v=Rg_3_YoVlk8](https://www.youtube.com/watch?v=Rg_3_YoVlk8)

------
iLemming
check out this project
[https://github.com/agzam/spacehammer](https://github.com/agzam/spacehammer).
I wish something like Hammerspoon existed for Linux.

------
noodlesUK
For me the right balance is installing i3 on a system with GNOME installed as
well. I get all the GNOME apps working well together, but my window manager
looks and works the way I want it to. The only issue is configuring some of
the GNOME apps (GNOME Online Accounts), where I have to convince Control
Center that it's running under GNOME. Spawning the polkit agent and some of
the other GNOME components works pretty well too. I just wish I could get the
nice GNOME toolbar rather than my polybar (which I like, but took far too long
to get working the way I wanted).

------
eclipseo76
If you're using KDE Plasma with KWin, try out
[https://github.com/lingtjien/Grid-Tiling-
Kwin](https://github.com/lingtjien/Grid-Tiling-Kwin)

------
ebg13
One of the features of Spectacle.app that I really like is its ability to
overload the same key macro to cycle through multiple variations of splits.
Like if you press the left-half macro multiple times, it cycles between left-
half, left-two-thirds, left-third. That way I don't need to assign or remember
nearly so many key combinations.

Can any of the other macOS window controllers do that? Spectacle hasn't been
maintained in years and the bug reports are piling up.

------
kgilmer
It's not mentioned here so I'll add it: gnome-flashback is the thing that you
can use to integrate your window manager of choice w/ the gnome shell. I
expect there to be integrations for other window managers, but if you're using
i3, then this is your bridge: [https://github.com/deuill/i3-gnome-
flashback](https://github.com/deuill/i3-gnome-flashback)

------
drjesusphd
I really like the Enlightenment desktop environment, but always fall off it
because I can't get the tiling working how I like. If the tiling is fixed to
be consistent with Awesome/i3/dwm, Enlightentment would certainly be what this
article calls for.

------
lightbulbjim
This echoes my experience. After over a decade of dwm I switched to Gnome a
few months ago and can’t see myself going back. I love the performance and
window management aspects of dwm but I really like the cohesive desktop I get
with Gnome.

------
rcarmo
I use Moom on the Mac, Openbox on Linux, and the default Windows 10 tiling
keys. Since I don’t like auto-tiling and prefer managing workspaces and tiles
interactively, this works well for me, with consistent key bindings across
platforms.

------
tarjei_huse
A simple and quick solution to getting most of the items on the checklist
working is to install i3-gnome:

[https://github.com/csxr/i3-gnome](https://github.com/csxr/i3-gnome)

------
emersion
Regarding the HiDPI issue with dunst: you can try sway, Wayland works way
better than xorg with HiDPI displays.

Disclaimer: I'm a sway dev.

------
astazangasta
>I want a desktop environment like GNOME but with more control over window
management and more keyboard control.

So... KDE?

~~~
wezm
You read the whole section on KDE right?

~~~
wyclif
I don't know for sure, but he may have scrolled down only far enough to see
the Comments section and thought that was the end of the post.

~~~
klez
To be fair, I thought that was the end of the article too. If it wasn't for
your comment I wouldn't have read it.

Maybe it's a mobile-only problem, but it was a weird placement choice
nonetheless.

