Which Tiling Window Managers do you like, and why?
feel free to list other window managers you've used.
I have been happy with bspwm, but considering trying something else. I love its simplicity and immense customizability. I like that it is shell scriptable, but it is not a deal breaker feature for me.
I like how the binary split model makes any custom partition possible.
I haven't used XMonad in a long time, but it was my go-to for a few years. It was solid. The main issue is that you configure it in Haskell, and I don't know Haskell.
Starting with i3 as my first, i tried a bunch of different ones. Xmonad and Qtile were the ones i liked the most but Qtile was buggy and Xmonad while working was super confusing to configure with haskell.
Also tried AwesomeWM, it felt a bit buggy to me in terms of window handling and DWM was just too complicated to patch and even with patches it was too basic
Ended up going back to i3, and then moved over to Sway.
Not sure if this counts as a tiling window manager, but I spend most of my time in emacs in full screen mode. I can create, delete, resize, and swap my windows.
I'm not sure my solution counts either - I just use quicktile with default KDE, because it has the tiling bits that I need and the config file was simple enough that I didn't have to spend a whole day setting it up. I need working memory for other things besides keyboard shortcuts.
Edit: Why? Because I love how easy it is to get working, it's a nice balance between features and simplicity for me, and IPC features are great for some QoL plugins. Its configuration file format is simple enough, I like lua with wezterm and neovim but I don't really see the point with a WM, I just need to see my windows when I want, the way I want, and to switch to others.
tdrop: the same as kitti3, but I moved to wezterm due to kitty's design choice and tdrop fits the bill, it's also wm agnostic.
i3-volume: integrates with dunst for me to pop up volume status when I change volume via keybinds.
autotiling: A must have in my opinion. I seldom have more than 2 windows on a monitor, since I have two monitors and utilize other workspace, but there are times when I temporarily have multiple windows open and too lazy to group them into stacks or tabs.
i3expo: I heard people have success with this as an alt-tabber with visualization. I just use dmenu and have scripts for window switching.
wmfocus: quite useful if you have multiple monitors and multiple windows on each, instead of doing Super + h a few times to move to the left most window, I just use wmfocus and hop to it immediately.
i3-extras: I just found this, perhaps it's of use.
Regarding your gripe #1, I don't quite understand? Do you mean you don't know the command of a program to type into your terminal to launch?
And gripe #2, if you mean i3lock, I'm okay with that, I like that i3 follows UNIX philosophy of doing one thing and doing it well, and because of that good i3lock forks exist! If it was baked into i3 then this might not be the case.
For i3-lock, I currently use i3lock-fancy-rapid, it's a weird name lol, but it is still dependent on the i3lock-color binary, which itself is a fork of i3lock.
Sway with autotiling and a few nifty scripts (launch or focus and such) and Waybar. The combination of having scratchpads, sensible autotiling along with titlebars and the wonderful world of wayland is supreme.
This is perhaps cheating, but after diving deep into the hardcore tiling mangers (ratpoison, wmii, xmonad), I grew softer and stayed in awesome for a while, but eventually I realised that since all I want from tiling anyway is the ability to quickly place two windows beside each other, I might as well go with a DM that does all the other stuff I want automatically (mounting, monitors, etc.), and since KDE is now good again, and coming along on the tiling side, that's the tiling WM I'm using.
I ran DWM 6.0.2 with (probably too many patches) for a long time, until I finally migrated to 6.4 and reduced the number of patches I was really using to about 6 or 7.
My first tiling WM was Awesome, but even though I'd heard about DWM before, it took Awesome to take the plunge.
i3 is what I've been using the past few years. I've tried others, but I always end back up with i3 as I've found nothing else to be as simple and efficient for my workflow, with 12 workspaces across 2 monitors.
Had the same problem, would like a middle ground between sway and Hyprland. Give me the option to be like Hyprland and some features and fancynes it has, but don't force me.
I've probed a few tiling wms:
dwm: never ending tinkering, a lot of frustration and despair with incombatible patches.
i3: manual tiling is not for me.
spectrewm: nice, but too less features.
xmonad: nice, but Haskell.
Awesome: at first it was not my favourite, but it comes with most of the features I need. Missing features can be added in a short time (awesome is build from C and Lua, awesome's plugins are pretty simple lua scripts). Awesome is full operable via the mouse or the keyboard - awesome is able to act as a stacking window manager; a very handy feature, when coming from a stacking window manager (I've used icewm for twenty years).
Summary: a very good tool to form a work environment that is adapted to your personal workflow.
I'm on Hyprland (wayland compositer, wl-roots based). Prior to the wayland transition I was on dwm. Hyprland offers a dynamic tiling layout just like dwm, which was my main selling point. The dev is very active and hyprland is gaining maturity rapidly (more than alternatives like dwl or river did at the time I checked it out). I also tried i3 and sway, but they don't quite cut it for me as they don't do dynamic tiling out of the box.
I've only tried i3 and it just works, so I stuck with it. After learning the hotkeys it never seems to get in the way (at least for my usage). Riced it a bit. Then some polybar sparkled in there. A wallpaper. What more can a guy want?
EXWM. I am a longtime Emacs user so merging the concepts of Emacs buffers and X windows is a huge benefit. Only one set of keybindings to worry about, all of my Emacs window management stuff works for X windows too. One less external dependency to worry about too. In a new environment (like when starting a new job etc) as long as I have my Emacs config I am good to go.
I'll have to give it a try again. I played with it a while back, but I was happy with GNOME at the time. What underlying version of emacs are you using? native comp?
EXWM is not particularly picky about Emacs versions or performance. I used to run with nativecomp but ended up turning it off since I value stability over performance. (nativecomp was pretty stable but I had some occasional issues)
The biggest caveat is that you must be very comfortable with whatever Emacs buffer/window management setup you use since you will be relying on that even more.
I use i3, but to say that I like it is a bit overstated. It's fine, does what I expect the very basic of a tiling window manager to do. I used Nimdow for a while and it's pretty good, the default bar is way better than i3 (supports ANSI colour coding, mouse presses, etc.), but I could never quite get to grips with the tiling algorithm.
I'm working on my own WM though, it's not tiling per-se, I choose to call in non-overlapping and I'm trying to solve my gripes with i3. Basically windows should not be forcefully expanded if they don't want to. Try open galculator under i3 and watch the horror. And when expanded the size should be split based on their initial sizes. So if I have Firefox open and want to do something in a quick terminal window the terminal won't get 1/2 of the screen. Firefox wanted more space than the terminal initially, so the terminal gets to take up a smaller share of the space.
I used StumpWM for many years. It was great for most of my workflow and, being written in Common Lisp, you can recompile parts of it while it's running (I didn't do this often but it was a cool feature).
I use Qtile. Mainly because it's written in python.
It's easy to customize, and gets the job done :-) Came from I3 before..
The only thing is that I haven't really found a way yet to have both floating and tiling modes.
I only really like tiling mode when I do work and need to stay focused
Currently, I am using DWL and it is pretty nice. After moving to Wayland, I tried to use Sway for a while, but it does not really fit into my workflow well. But to be honest, even DWL is missing some things I want, and I am not really a fan of that it is written and configured in C. I am planning on trying to write my own tiling window manager in Rust when I have some time.
I used DWM for a year or so (still do use it on my librebooted 2008 T400 gentoo thinkpad just to stay below 100MiB of memory after boot for the lols) and recently switched to sway.
My primary reason for sway was it being relatively simple and to try out wayland (which works with minor bugs in xwayland). Initial configuration took me about 1h and i wrote a small program in rust to populate the title-bar. Works like a charm and i like my stuff to be simple so i don't think i will look into different TWMs.
I've tried AwesomeWM but couldn't get anything going with it really.
I then moved on to Material Shell (yes that's a Gnome Extension) and it brought enough to really make me want to dig in more.
Now I'm slowly working on a Sway configuration on my Fedora 38 machine. Can't work in it yet, but unlike my attempt at AwesomeWM...I'm actually making progress on getting things setup. My 4 monitors were configured fairly easily, but now I need to figure out why dmenu isn't working to launch applications. Could be on my end since I'm using a Moonlander keyboard with a custom DVORAK profile.
I used suckless ecosystem for 5+ years, but I wanted to use Wayland so now I'm transitioning into Sway and holymoly how fast and easy it is. So simple to configure and written in C.
Sway, but used everything from ratpoison back in the day, awesomewm, i3, hyprland, openbox with manual tiling to Plasma.
Just keep coming back to sway, seems like the best for for me.
When I was using it, I LOVED Hyprland. It was my most flawless experience with Wayland on an Nvidia GPU. I switched off of it however, because I primarily game on my PC and a lot of games just didn't work and I did not want to have to figure out how to get them working all the time.
My heart still belongs to enlightenment/e17 but I've been using i3 for the past few years, and then hyprland for the last 4 months or so. It's working out well.
Ahhh, e17 - I've got memories of building it from either cvs or svn at the time as soon as it was announced by rasterman on Slashdot.
e17 was my daily driver for a long time. It looked very pretty, before compositing was even a thing on the desktop, all without sacrificing performance. The biggest downside was that it wrote its configs as binary blobs which frequently broke as new development releases came out.
Qtile has been great for me for a long time, but since recently I've tried Hyprland. Wayland works pretty decently nowadays, and Hyprland is a great example of that.
I really like dwm. It doesn't seem too popular so maybe the other ones are better but it was the first one I tried so the others feel weird to me. I like the idea behind suckless in general though.