So Ive been using linux for a long time and mostly with gnome. I know about window managers and how using them will reduce the memory usage by system a lot because they are less bloated etc. I want to try a window manager on my nixos machine - this will be my first time trying one, I have good knowledge in programming so technical stuff wont bother me that much. Which window manager do you suggest? Customization is my priority.
If you’re not into tiling, but still want several of the advantages of sway, it offers a couple of additional modes, stacked and tabbed. I really loved tabbed setting some things to be floating. It’s like it sounds, it offers a horizontal tab with all windows within per workspace, maximized below the tabs… Stacked is similar but it stacks the tabs vertically. If you’d tell me before a tiling compositor has such functionality I wouldn’t have believed it. I like it better than stacking compositors, :)
Suckles DWM is amazing. No bloat at all. There is only 1 config file, and you edit it with pure C like a gigachad. Like all suckles software, it strictly obeys the Unix philosophy, and it has been the cause of the most lightweight set ups that are also cool hacker-looking
Awesome WM is what I currently used with Debian. Works great. It was the first one I used.
I used Hyprland back when I used Arch. Runs really well.
Qtile, Openbox are other ones I’ve enjoyed as with.
- main thing to keep in mind is that a window manager is normally just one component of a desktop environment – full desktop environments like Gnome go to great lengths to assemble a whole fleet of apps to work together to make a cohesive experience
- if you’re going to forego the full desktop environment, then expect to have to fill in on the various missing pieces to suit your needs (file manager, terminal, text editor, clipboard manager, bar/panel/dock)
- if you just want lighter weight but maintain a cohesive experience, then Xfce or LXQt
- otherwise, there are a LOT of choices (both for X11 and for Wayland)
- tiling window managers
- i3 on X or Sway on Wayland are probably the most popular
- special mention: Regolith – pairs Sway on the front end with Gnome components underneath
- dwm for the full do-it-yourself experience
- awesome if you like Lua, xmonad if you like Haskell, exwm if you live in Emacs, Qtile if you like Python
- i3 on X or Sway on Wayland are probably the most popular
- stacking window managers
- Openbox for the old school feel, LabWC as the Wayland successor
- IceWM and JWM for a minimal experience (both show up regularly on Raspberry Pi)
- Motif for the retro enthusiast
and linear window managers: niri.
Niri is very promising on a ultrawide. Not so good on a 3:2 laptop. I maintain a config to experiment with it but it’s a big commitment to change not just your desktop environment but your whole workflow and then to have different environments on devices with different screen aspect ratios.
Niri is still in alpha though, right? Last time I tried it, it was buggy as all hell… Cool concept though.
I actually really love icewm. I’m still gonna install i3 on every system (for a default experience, when I configure I usually switch over to something else), but I’ll always keep icewm as a backup. Also the default wm on openSUSE which makes me happy
I know about window managers and how using them will reduce the memory usage by system a lot because they are less bloated etc.
Ehhhh… I think it’s more “not using a curated general-purpose DE”, rather than “using a WM”. All graphical systems include a WM, and a DE in some senses is more of a concept or category than a concrete thing. The choice is whether it’s one you cobble a DE together yourself, or use a pre-configured, curated one.
Many people use stand-alone WMs and then create their own DE, but quite a few of us put the WM of our choice within existing DE because we want the WM but have no interest in re-inventing all those DE wheels (and/or have >4Gb memory so the “bloat” is not an issue). In my case it’s i3 on Gnome via gnome-flashback.
Curated DEs do tend to use more resources - typically mostly memory - partly because they tend to be comprehensive for diverse users. Rolling your own minimal DE for your personal needs can often be lighter weight. If you have a very constrained system then it can be beneficial, though that circumstance is more and more unusual these days when 8Gb of memory is often considered “minimal”.
The main reasons for making your own DE is to do things exactly the way you want, at the expense of having to do it. Beware though, there will be various helpful features of DEs you may not realize you appreciate until you have realize you don’t have them. E.g. what happens when you plug in a USB drive? Nothing, by default - a DE usually manages that. SSHing into servers a lot - a credentials agent is nice - better add one of those…
A lot of rolling your own DE is months or years of “oh yeah, that is a useful thing to have; I need to find tools and configure them to do that”. Conversely, dropping your WM of choice into another DE is often a case of “huh, that happens automagically; nice!”.
Wayland: SwayWM, River (the most customizable wm I’ve ever used).
X11: DWM (configured via C, a little bit of effort if you’re not a minimalist), xmonad (via Haskell, on par with River).
My recommendation for getting started is Sway, but the others are definitely more customizable, as they use PLs for configuration. BSPWM and i3 are also good for X11, and a good middle ground between DWM’s nerdery and xmonad’s Haskell barrier. Wayland offers a much better experience if you’re not using Nvidia though. Some will recommend hyprland, but I really don’t like (IMHO). There are also some controversies around it’s leadership…
One thing that has kept me on dwm for so long is that my patched configuration no longer needs any more changes and I take it with me wherever I go. it was challenging but rewarding.
Never an upgrade needed.
I eventually want to go to Wayland. River seems nice!
Also might want to give https://codeberg.org/dwl/dwl a shot for dwm in Wayland
Not really helpful if you are on another distro but gentoo has a
savedconfig
flag for the package that lets you store a permanent header file for the DWM variables in with the package manager config files. It integrates really nicely.
I3/Sway seems to be popular, but I was disapointed when I tried them. I prefer Bspwm because windows are always spawned with a good height/width ratio. Computers are useful because of the automation capability, so it make no sense to use a WM without any automation.
How’s the stability of bspwm for you? It used to be my go-to but I think multiple monitors would make it crash when I used it years ago.
I never encountered bugs, but I don’t use multiple monitors.
gotta go with this one :D
I’m a happy i3 user, but that actually looks pretty enticing. Might give that a go the next time I’m trying something new.
Disclaimer: If you want to explore window managers then go ham! Linux is all about exploration.
Now, If you think the grass might be greener on a different desktop manager then stick with gnome. By no means am I saying Gnome is the best, but its more of a situation where it will devolve into the quirks you know vs the quirks you don’t know situation.
Personal Antidote, I started with Gnome and used Gnome for years. Got curious and started jumping around I tried KDE, I3W, XFCE, Pure X, Etc. There were things I liked about each one of them but the quirks of each deviating from my expectations coming from gnome was too much and I ended up sticking with gnome.
That being said, out of necessity due to system constraints I run XFCE when I need a light weight DE. A close second in that realm is LXDE But I don’t like its default aesthetic nor do I feel like customizing it since I do most of my computing in a terminal.
Sway
If you’ve been using gnome, you’ve already been using a window manager.
Unless you’re on a very limited RAM budget, I wouldn’t bother messing with it too much, unless you feel like breaking things.
Enlightenment all of the features, gorgeous, and lightweight.
I’m a big fan of both i3 and enlightenment.
I would say sway for Wayland support. Better yet, Hyprland is an awesome one and well supported in Nix. Maybe disable animation to reduce memory usage
System76 I think does it on gnome now. I don’t use it but I’ve seen some components of it.
I have to put in a plug for herbstluftwm.
It really depends on whether you like the keyboard and tiling widow managers, or if you like dragging windows around and resizing them. Tiling widow managers are popular, but they’re definitely a taste.
hlwm and bspwm are a - “configurationless” breed - I think river on Wayland is the same. This has become my one requirement for a window manager. Every configuration is done through a command line client call, and it’s game changing. The “configuration” is just a specific shell script hlwm runs when it starts up, and it’s full of whatever client calls needed to configure the system. Every call in that script can be run outside the script; it’s literally a just shell script. I run all sorts of things in that script: launching “desktoppy” programs like kanata, setx, autostart programs that start on a specific screen; one script lays out one screen in a complex 2x1 layout where each pane is tabbed and contains three terminals each, and then launches terminals that connect to various remote computers - that’s my “remote server” screen, and it’s all set up when I log in.
However - definitely for tiling enthusiasts. I used i3 for a decade before I found bspwm, which converted me to configurationless WMs, and I ended up with hlwm. It’s honestly what’s preventing me from giving Wayland a serious go, although river might do the trick.
See tabbed mode on sway. Not all tiling compositors are about just tiling, :)
Hm? Both bspwm and herbstluftwm have tabbed layouts. It’s been so long since I’ve used i3, but it has them too, right? Sway’s a mostly config-compatible, mostly client compatible i3 clone for Wayland, so I’d expect it to have tabs, too. As well as floating windows, which every tabbing WM I’ve used also supports.
I think I missed your point. What are you saying? Did I say something that made you think I thought tiling WMs could only do tiling?
What I’m opinionated about is configuration files. Technically, even a desktop could be configuration-less, although I’ve never seen one. I have become insistent that my WM have no configuration that isn’t set through a client call. Sway still uses a config file like i3; mostly the same config file, unless it’s drifted significantly. That was Sway’s whole killer feature: i3 users could switch from X11 to Wayland with only minor configuration file changes.
Tiling widow managers are popular, but they’re definitely a taste.
Oh, I refered to that in your post. To me all WMs/compositors are a matter of taste, including stacking ones (on wayland from the stacking ones I only like labwc though it’s xml config is not what I would prefer). And you already clarified, but it gave me the impression that it was implicit that tiling was a matter of taste, when those WMs/compositors also offer tabbed/stacked mode, which to me it’s not tiling at all, and offers something really appealing not so easily to achieve on any stacking WM/compositor.
Regarding config, well yes, if one is looking for no config at all, and still get the WM/compositor to be useful and also to one’s liking, then that’s hard to find. But the config files once achieving what one likes and is productive with, then one barely looks at it again, and they are usually portable (usually not only across PCs, also across distros).
But I got your point, sort of “plug and play” as they said before, just install it and without any config be productive with it… I can’t imagine that. I heard river is pretty close to dwm, but I can’t tell much about it. The river idea of dynamic tiling, which seems to be the default doesn’t really appeal to me, so I would need to do tabbed mode any ways, which doesn’t seem to be the default, so at least for me it wouldn’t be that configless… But maybe it would be to dynamic tiling people.
River is sooooo good when it doesn’t break (it’s stable, you just need to get it working in the beginning). The guile config is beautiful, always reminds me of xmonad.