Hacker News new | past | comments | ask | show | jobs | submit login
Linux: We need tiling desktop environments (linuxblog.io)
183 points by ashitlerferad 22 days ago | hide | past | favorite | 231 comments



I think tiling is great for terminals, but not for the whole desktop (I don't want my web browser or video player to be resized because I open a new program).

So I use a "normal" floating environment (xfce, but could be another one), and I use Terminator in full screen enabled on a specific shortcut, so that I have tiled terminals.


> I don't want my web browser or video player to be resized because I open a new program

I suspect most tiling WM users don't either. I suspect most/all such WMs provide an option for this.

I can speak only for Awesome WM. You can configure it so that certain applications don't tile. So if you want your media player to always be in floating mode, simply add that entry to your config.

Alternatively, because you have multiple virtual workspaces, you can designate one or more of them to be in floating mode. Then every application in that workspace will be floating (i.e. you don't need to manually add them to your config).

You can with a keystroke switch a given workspace into floating vs tiling mode.

You can, with a keystroke, switch a given application into floating mode - even if the workspace is in tiling mode.

With Awesome, your virtual workspaces are not really workspaces, but "work configuration tags". So I can have Firefox in workspace 1, and xterm in workspace 2. In each one, they are maximized. Then if I ever need them in the same workspace, I can add both of them to workspace 3. So now:

Firefox is in both workspace 1 and workspace 3. xterm is in both workspace 2 and workspace 3.

When I'm in workspace 1, I see only Firefox. When I'm in workspace 2, I see only xterm. When I'm in workspace 3, I see both (tiled).

There are plenty of options. For me, it's the rare exception when I don't want a window tiled. And with a quick keystroke I switch it to floating mode.

(For media players, I've configured them to always run full screen, so it doesn't matter how many other applications are tiled in that workspace).


The solution is as simple as using workspaces. On 1 I have my browser, on 2 I have my terminal and dev environment, and I just keep placing things down the line.


Yes but what do you do when you briefly need to look at your browser and your terminal at the same time? Say when you are following instructions.


Again using parent's example of AwesomeWM: You'll temporary move one of the "windows" to the same "screen" as the other one (via "tagging"), resetting everything once you're done. Usually this is like 2 or 3 shortcuts all together.

AwesomeWM uses a tag system for windows, so you assign windows to one or more tags, then you can freely view one or many tags at the same time, compared to the traditional "workspaces" approach that for example Gnome and macOS has.


Use a keyboard shortcut to switch to a tiling layout? Or if you're psychotic, like I am, activate your Quake-style semi-transparent terminal that overlays the desktop, allowing you to (barely) read the superimposed instructions in the browser window below.

IMO, tiled Quake-style overlay terminals (guake, yakuake, iTerm hotkey window) over floating windows offer the best of both worlds.


And then there's me with 12 terminals opened across 7 tags for running random ls command. I also have a nice collection of 10-12 firefox windows with dozens of tabs. My tendency to open many many windows has sky-rocketed, thanks awesome !


> what do you do when you briefly need to look at your browser and your terminal at the same time?

I'm surprised anyone would want a non-tiled window for this. I'm always annoyed at having to manually drag the windows to a corner each when following instructions on systems not my own.


Open a scratch pad or move the browser to the first workspace temporarily. Rarely will I ever have more than one or two windows open per workspace. It's not intuitive when you aren't used to it, but it feels really good after you have configured things to work to your liking. Maybe I'll blog about it so I can describe it better.


> Open a scratch pad or move the browser to the first workspace temporarily.

Both are more painful than a simple keystroke. And you can immediately go back to the same window configuration you were at after you've done the copying.

> Rarely will I ever have more than one or two windows open per workspace.

Same here. I have some workflows where I need 3 windows. The times I need more occur once every so many months.

Reading all the comments on this submission, I don't understand why people are associating tiling WMs with "many windows on the same virtual desktop". Tiling WMs also have virtual desktops. I personally like that I don't have to manually maximize anything any more. What I'm really grateful for is not having to manually move/resize/switch windows around when one is overlapping the other. It's very painful when I have to use a system that isn't a tiling WM.


I realize I was really vague in my original comment, I currently use Hyprland, I also have River and Sway that I play around in for fun. I love it.


> I suspect most tiling WM users don't either.

Personally, I do want all windows to tile. Your comment has left me wondering what the preference is across tiling desktop users.

I don't think I _ever_ use floating windows for anything. Except pop-ups from applications that don't properly configure their pop-ups as such. My secret storage shows an overlay prompt to disclose permissions too. But that's also kind of a pop-up.


> > I don't want my web browser or video player to be resized because I open a new program

> I suspect most tiling WM users don't either. I suspect most/all such WMs provide an option for this.

Well, here I am, opening terminal on the same tag I have a firefox window to run command and read docs. I should learn to stick window to multiple tags at once.


I was actually referring to the video player, not the browser. Do most people watch videos tiled?


Is that similar to how DWM does it? I heard some people complain that tricks like these are not compatible with some free desktop standard. I am not familiar with it though, which is why I am asking.


The description is good for how I use DWM, yes.


> You can with a keystroke switch a given workspace into floating vs tiling mode.

Yup. I use the Awesome WM on Linux too and it's exactly what I do, since forever.

I've got for example one of the workspace in floating mode and it's using rules for app placement: only Emacs visible in that workspace? In the middle. Emacs+browser visible in that workspace? Browser on the right of Emacs. Emacs+browser+up to four xterms, Emacs and browser don't change size, but the xterms do.

I'm using a 38" monitor since 2017 and I noticed that the bigger the monitor, the more there'll be times when you need actual rules saying exactly how things should be laid out.

But I'm still using tiling modes in most workspaces.

As a bonus I do "funny things" when switching between workspaces.

For example I've got 13 workspaces or so: by default Awesome WM only gives you 10 btw but I added a few others, in addition to shortcut+0-9, which I access with shortcut+a/b/c/d [the shortcut key you actually use for that is ofc configurable too]). And out of all these workspaces, there's only one which is allowed to use the CPU at full speed: all my other workspace put the CPU governor automatically on "powersave" mode.

And it's only in my "dev" workspace that the CPU can ramp up to its full speed.

Now I'm toying with something else: per-user firewalling rules (I'm using several user accounts and I already have got rules for each user) but also per-workspace firewalling rules. For example when I switch away from the workspace with the throwaway user account that's used for surfing, the firewall shuts off Internet access for that user (even if the browser is still opened: so as soon as I get back to that workspace, the net works again for that user).

Because if you think of it: why should a non-visible browser even be able to emit/receive any networking trafic? Every single proper webapp (all the Google suite, my broker's webapps, my banks, etc.) all do handle network disconnect just fine. Arguably a webapp that cannot deal with the network going off is not much of a webapp.

So when I switch to a workspace that doesn't contain a visible browser: the browser(s) do believe the Internet just got cut off.

If I've got a browser that really needs Internet access even when it's not visible (for example because I'm downloading something huge), I can send it, using a shortcut, to a workspace which allows web traffic. Awesome WM has got shortcuts for everything.

It's really sweet.

And as it's Linux: it's rock stable solid. It may take some time to set up properly but once it's done, it's done and shall keep working.

The "CPU governor changing depending on which workspace I'm on" is working since years. The "firewalling rules changing depending on which workspace I'm on" is a recent addition.

P.S: as a bonus, upon starting, I've got my Awesome WM configured to "pre populate" all the virtual desktops with the apps I know I'll use (say I'll always have my browser linked to my professional email on workspace 1, while workspace 12 shall always be the "throwaway browser" that's reset everytime I reboot the system).


This is a great example of the power of Awesome WM. Although I've used it for well over a decade, I never spent time customizing it (but did spend a lot of time fantasizing about customizing it :-) )

Using workspaces to toggle the network is brilliant!


I've never been able to make tiling-first environments work for me (even if they have a floating mode). Things that aren't terminals or text editors tend to not tile well, particularly on smaller screens, and using them entails a level of window micromanagement that I don't engage in with floating-first environments.

The ability to overlap is also actually pretty valuable for me. Often I don't need to see a whole window, just the pertinent portion, and sometimes window edges peeking out from behind my browser window act like post-it note style reminders.

It's nice to be able to snap windows into grid positions on occasion (preferably without aero snap, the animations for that erroneously trigger way too often on multi monitor setups) but it's easy enough to bolt that onto a floating WM.


> The ability to overlap is also actually pretty valuable for me. Often I don't need to see a whole window, just the pertinent portion, and sometimes window edges peeking out from behind my browser window act like post-it note style reminders.

I have occasionally thought about a system where you can zoom and scroll a view on a window, but without telling the program that you're doing it. So for example, you could crop into say firefox and only show the actual page (completely cutting out toolbars and such) without it resizing itself. This is mostly of interest on smaller screens, but it'd still give you efficiency gains on a bigger screen.


Firefox has two forms of zooming, one of which resemble what you're describing.

1. Zooming with Ctrl++ or Ctrl+- will "tell the page" that it's being zoomed and it will reflow into the new viewport size.

2. Zooming with two-finger pinch (requires a touchpad) will zoom in as if magnifying the page. Content on the page will overflow to the right instead of reflowing.

Supporting an equivalent on regular desktop windows could be pretty useful.


That would be a useful feature, so long as there's some associated UI that makes it obvious that the feature is active along with an easy way to toggle it off. Seems like it could be one of those features that users accidentally trigger without realizing it and then feel "trapped" not knowing how to make it stop.


Check out scrolling window managers. Niri, paperwm etc.

The windows are almost always full height and you just scroll to next or previous windows in the Workspace. It reduces the spatial navigation to just one axis and works pretty well on ultrawides.


Might give them a try when I get the chance, but I'm skeptical that those will be much better than tiling for my usage, particularly as someone who prefers a centered main monitor and angled secondary monitor over ultrawides.


Paper wms still tile. As in you can tile vertically as well. The difference is new windows open to the side full height, instead of trying to cram into a potentially already crammed layout. It’s really powerful when you want to open a pdf or an image or something related to the stuff you are working on in a tiled workspace but don’t want to resize everything.


I just Alt+Tab instead and keep most windows centered.


The issue with alt tab and the main reason why I personally eventually moved into tiling managers is the reliability.

Alt tab often requires two things: 1) Figuring out how many clicks to away your desired window is, as they change 2) executing those multiple key presses correctly

When you compare this situation with a wm where you place or permanently bind certain windows to a number (eg messaging apps are always CMD + 0 for me) then you can see how you can grow to prefer the certainty, there's no more fiddling for the window you're looking for.

Windows actually sort of had this feature with windows + numbers as that focused the window by order on the bottom bar, but lately with window groupings and things like that it breaks for common use cases such as multiple browser windows.


> messaging apps are always CMD + 0 for me

How is this related to tiling managers if you can do exactly the same thing without them in your generic shortcut utility?

There is also a downside of this certainty: you always need to keep in mind the two recent apps you're working with (for some uncommon apps you wouldn't even have a predefined CMD+0) and then your CMD+0 wouldn't help if you have multiple messenger windows and need to switch between two


It is not specific to tiling managers I suppose, but it does beat alt tab.


I use both. The main point was having windows centered and switching them in place, without having them in any fixed arrangement.


I experienced some of these issues. For me, what eventually clicked is either simple automated tiling (xmonad with fullscreen and split horizontal/vertical) or Emacs-like manual tiling (StumpWM). I don't have a huge screen, so more than two windows is a stretch. Both of these WMs are decent at floating layouts.

Besides, I find the simple tiling offered by the stock GNOME Display Manager, which is similar to the way I use xmonad, good enough. Given that GNOME has great support for floating windows, that is perhaps an option you should look into.


Conversely I do like my web browser and video player to resize when I open something else, so that I can still see the entirety of the video or whatever when I pull up another document or page. The biggest problem in my experience is that many web pages are bad about resizing and lose your scroll position when resized


> lose your scroll position when resized

That’s more a browser implementation issue in my view. It’s a hard problem though in the general case, they’d have to identify the “main” content to synchronize on. Or, barring that, maybe they could determine the position that maximizes the total area of elements that remain in view.


> I don't want my web browser or video player to be resized because I open a new program

That's the reason why tiling wm users use multiple virtual desktops. In fact, switching between virtual desktops will behave like change maximized windows, unless the virtual desktop has more than one windows (those are the cases that you want it to do that).


But I never maximize my web browsers, either


Virtual desktop and tabbed windows (i3 and sway). My current setup is

  1. Emacs
  2. Firefox
  3. Terminals
  4. File Manager (gui)
  6. Music (terminal)
  7. Videos (mainly courses)
  9. GUI utilities
  10. Password Managers
5 and 8 are for projects and scratch layouts.


> 3. Terminals

Since you use Emacs, why not use Eat or vterm?

https://codeberg.org/akib/emacs-eat

https://github.com/akermu/emacs-libvterm

> 4. File Manager (gui)

Why not use Dired?

(More than 90% of the time, I only run Emacs, Firefox and nothing else, which is why tiling is useless for me.)


Launching a terminal in sway is so easy ($mod+enter) that I haven't bothered to replicate the same thing in Emacs. As for the gui things, it's mostly for moving stuff between smb shares (I was tagging music files). Dired is great, but sometimes, I idled in mouse mode.


Why not EXWM to have free tiling instead of using i3 like a set of FF tabs... That's was my path years ago, I've tried a bit i3 concluding it's rigid tiling model it's essentially useless and I've in the end use tabs/split screen and rarely stacks. Then EXWM, at first very hard to start as a WM (I was also new to Emacs, former hardcore vimmer) but thereafter... I can't even use floating WMs nowadays... Though I do not user eat/vterm/eshell simply because for casual terminal usage (living in Emacs makes me use the terminal much, much less) it's not that comfy.

Dired on contrary is super good also to rename files en masse, to filter them and so on.


> 1. Emacs 2. Firefox 3. Terminals

Funny, in awesome my layout is 1. Browser (FF and Dolphin), 2. Terminal, 3. Editor (Emacs). Continuing on from there my layout differs a bit more with 4. Documents (Okular and LibreOffice), 5. GUI (for when I want to try resizing a GUI program to see if its design is properly responsive), 6. Multimedia, 7. Miscellaneous.


I have a similar setup. Do you have this set up to launch the applications at boot? AFAIK Sway has no provision to store the layout between reboots, which is actually a feature.


> Do you have this set up to launch the applications at boot?

No. The only thing I almost always want at boot is the browser, but I usually wait for my first query to launch it (If I wanted something that badly, I'd use my tablet). Whatever prompt me to turn to my computer is what I want first, and I don't want other stuff to slow it down.

> AFAIK Sway has no provision to store the layout between reboots.

I think you can script it out if you really need to.


> I think you can script it out if you really need to.

That’s my understanding as well but I don’t bother. It’s so easy to just fire off keyboard commands that I end up with the same layout naturally.


> I don't want my web browser or video player to be resized because I open a new program

I've been using niri (a tiling WM) recently. This is their very first design principle: https://github.com/YaLTeR/niri/wiki/Design-Principles Maybe other PaperWM-inspired WMs are similar. niri is the first I've used.

If your windows within a workspace are wider than your screen, you can scroll through them. You also have different workspaces like normal. I'll normally have 1 workspace with a bunch of terminals, and another for browsers and other apps (often another terminal I want to use at the same time as browsing, e.g. if I'm looking things up online).


> I don't want my web browser or video player to be resized because I open a new program

You use tiling only if you intend to use tiling. Else you switch to another workspace or whatever.

This is not so different from a normal desktop environment, except you hit, say, Meta+3 to find your web browser instead of hitting Alt+Tab over and over, accidentally missing your web browser, and doing it over and over again.


I agree. In my opinion, PaperWM and Niri solve this really, really well in my opinion. They don't resize anything-- just arrange everything on an infinite horizontal plane, and you move left / right through your windows.


Paperwm is amazing. I don’t know how I can go back to alt tab now that I can navigate windows with arrow keys or hjkl, floating window managers seem Barbaric.


Theres also papersway which is a paperwm plugin for sway which works quite nicely


>I think tiling is great for terminals, but not for the whole desktop (I don't want my web browser or video player to be resized because I open a new program).

This, I can't imagine anyone wanting that sort of tiling. Anytime I have a use case for tiling in my own job it ends up being impossible to get things tiled the way I want and also have the things I don't want tiled setup correctly on my other screen.


Most tiling managers are in fact hybrid and allow floating windows. That is at least the case with sway and i3.


I'm not aware of any that don't include a floating option.


Years of XMonad use here. Really, it's not the interference you are imagining.

Much of the time I have a web browser using a whole portrait-aligned monitor, but sometimes I feel like having it 2-up in a landscape monitor.

The win of nice clean window separation, without giving up significant percentage of my display space to window decoration, is -profound-.

I have one pixel borders around my shells, and I have it because I fiddled with zero and decided I liked one better. How many pixels do you lose to decoration, so you can mouse over them cleanly? That's a major win.


> The win of nice clean window separation, without giving up significant percentage of my display space to window decoration, is -profound-.

What does this have to do with a tiling window manager? I'd expect the app decides how to display window decoration, not the window manager. In fact I can confirm that right now since Chrome has different window decoration than say TextEdit. Also, scrollbars, macOS has them invisible by default so they don't take any space.

As for 2-up. Both Windows and Mac have shortcuts for that case


You're incorrect: there might be some decoration provided by the app, but there's a layer outside of that which is configured by the window manager. That's the title bar, and the little icons by which you maximize/ minimize/ "Iconify"... do people still do that?..

Plus thumbs at the corners, for some displays.


That's something that's different between X11 and Wayland - in Wayland, windows are responsible for their own decoration (I presume Xwayland handles decoration for X11 windows running through Wayland). This makes it quite a bit harder to hide all decorations on Wayland - various UI toolkits have ways that the end-user can tell them to hide bits, but they all operate differently and don't cover everything.


Same experience with XMonad here. With modern responsive web UIs, I rarely find issue with resizing getting in my way.

When I do, I either keep the fullscreen browser on a dedicated desktop or nudge the split point until I'm happy.


You act as if that's the only option! You can have tabbed or "stacked" layouts or use virtual desktops. I've been using exclusively tiling managers for a few years now and it's great.


I recently discovered scrolling windows managers (using Karousel on KDE) and it has become my preferred workflow


Yes and no. It's a reason why I use my own wm. I have a floating desktop and 9 tiling ones. By most of my browsing is on a tiling desktop that is usually single window but where I do want it to split if I open another window


I don’t want my browser or video player covered up because I open a new program.

I fail to see how resize is worse than not being able to see it.


As a tiling window manager user, I am really frustrated with mainstream web browsers. They are an ergonomic disaster for me, forcing me to use the mouse and waste so much precious screen real estate with gray space and redundant tabs. I want to disable tabs and just use windows managed by my window manager. That's what window managers are for! Separation of concerns is a pretty good notion in my book. Emacs can have a server and multiple "frames", so why can't Firefox or Chrome? Someone please tell me this is possible and I just missed it.


With all due respect, I think that this is just the inevitable cost of swimming upstream. GUIs are designed, through and through, to be used with a mouse. Someone who wants to navigate purely with a keyboard just isn't part of the thought process when designing the UI of your browser.


I’m with you and I remember a brief time when Windows ?!? had the nerve to try this with Microsoft Edge (Windows 8-ish). I love workspaces and generally don’t like applications to have internal tabs.


You can reduce Firefox or its forks to just the page viewport with no UI. Turn off tab bar and toggle the setting to always opens windows for links.


I used to think this way, but having used popOs's tiling in gnome I gotta say it's the best of all worlds. I really like being able to have code split with documentation or an ebook. I know you can technically use the manual split L/R but having it autosplit is nice. I feel like it really supercharges my research workflow.

If I don't want something to split, I can either turn off tiling and revert back to default gnome behavior (rare), add an exclusion for something I never want tiled, or most often I just send that app to a new virtual desktop.


This is what I thought as well before I moved to a tiling WM. But it turned out to be a non-issue for me. Just switch workplaces if you don't want to resize.


That's kind of funny because I use a tiling window manager (hyprland) because I don't want those things resized. things resize in a predictable way so you just hover the mouse over the tile you are ok with resizing on you and that's all that changes (then you can hold your mod key and drag what opened wherever you want or hit your mod key combo to make it floating and it will float instead of tile. My video player tile is tabbed so I can drag as much stuff in there as I want and it will never resize, just add tabs that I can tab through).The tiling lets me very quickly create the desktop layout I want every time and it's always exactly how I want it or easy to fix, so for me that's great.


this. the uis for different apps have different needs - ex. keeping a video editor wide and narrow. and its not uncommon to want more apps open than would fit into their own tiles or having to move to another desktop workspace. i just wish there was a compositor or window manager for wayland that supported working this way, none really do. without a tiling wm, apps in gnome want to open right in the center of the screen, and don't remember their positions, its comically bad


qtile is very flexible, I'd be surprised if it's not configurable to get you to where you want.


I use tmux (window tabs, vertical or horizontal pane splits) and opt-in tiling shortcuts for the desktop to quickly move apps to corner, top, bottom etc. Works for me.


I used tmux before Terminator for my local usage, but the fact that a mouse selection covers all panes at once makes it really annoying.

Tmux is great for remote/shared usage though (and it survives ssh disconnection).


Can't tmux's built-in mouse support¹ handle this? Just add

  set -g option mouse on
to your `tmux.conf` and tmux will do mouse selections for you and won't cross pane boundaries.

You can use something like tmux-yank² to get your tmux selections onto your OS/DE clipboard if you're not using a nice/modern terminal emulator with OSC 52 support and you don't want to manually plug in `xsel` or `pbcopy` or whatever. (See the tmux docs on clipboard integration³ if you're not sure whether/how your terminal supports the standard.)

--

1: https://www.man7.org/linux/man-pages/man1/tmux.1.html#MOUSE_...

2: https://github.com/tmux-plugins/tmux-yank

3: https://github.com/tmux/tmux/wiki/Clipboard


Yes it can! It's hard to get precisely the behaviour you want across tmux and vim. I'm 99% there with my config. Selecting any text copies it to the clipboard (with options that work for Xorg or Wayland) and handling panels properly.

The only remaining annoyance for me, and one which I don't think is "fixable"... say your left pane is a terminal and you've got a few pages of output (cat something). The right pane has a file open on vim, where you're making notes. As you scroll through the long output you want to select a chunk of text and then paste it into vim, and then carry on scrolling as you hunt for the next clue. Except that the instant you select text, focus returns to the prompt at the bottom of the pane. You compete lose your scroll position. It's intensely annoying. The workaround is "don't do it that way", which is fine until you forget and end up shouting at your computer.


Does that reset/jump still happen when you're in copy-mode?

If not, maybe you can you rebind the scroll wheel to enter copy-mode if it's not already in it, and then scroll, and bind enter/return while in copy-mode to exit copy-mode.


Oddly enough I searched for a fix for this after posting. And amazingly I found one that works (as well as several that didn't, and one that require add-ons)

For anyone interested, this is in my .tmux.conf now

    unbind -T copy-mode-vi Enter
    bind-key -T copy-mode-vi Enter send -X copy-pipe "xclip -selection c -i" \; send -X clear-selection
    bind-key -T copy-mode-vi MouseDragEnd1Pane send -X copy-pipe "xclip -selection c -i" \; send -X clear-selection

You would have to switch the xclip for wl-copy if you're using Wayland, and some form of pbcopy command on Mac. No idea what windows folks do.


I agree that resizing the browser automatically isn't optimal, but I suck it up because tiling window managers don't require me to use the mouse and that's worth everything to me. If anybody made a more innovative/flexible keyboard-controlled alternative I'd be all over it.


You don't have to tile the browser or video player if you don't want. You can put those windows in a separate workspace or use a tabbed layout. This makes them behave like fullscreen apps. You can even make them literally fullscreen by removing borders and hiding the bar.


> I think tiling is great for terminals, but not for the whole desktop

Same, yet I use a tiling WM (Sway); how? Telling it I want tabbed workspaces!

The tiling is available. By default things behave as if 'maximized' - easy to pop out/move/whatever.


Terminator really is great, infinite scroll is what really sold it to me ~9 years ago and I've been a happy user ever since.


On Xmonad, I have 9 workspaces - I open other things in different spaces from my web browser.


EXWM user here, I have no issue with tiling mplayer or firefox, most of the time I simply use them full screen, if I open something aside flipping (mode-line-other-buffer) or anyway re-layouting my desktop is super-easy with proper keybindings to simple physical keys actions.

Meanwhile I fail to see any reason to waste time moving floating windows, playing overlapping. I use floats for instance for GIMP, they do work enough, but that's is, the float problem is more a GUI concept problem where the GUI dev have designed something not flexible enough in most cases.

You use a terminal, good, why you use menus on GUIs apps? It would not be much quicker the Ubuntu Unity HUD? Why having specific buttons instead of allowing typing/clicking text like in org-mode or Plan9 ACME editor? Why even menu bars instead of context menus? Do you really need to see let's say WYSIWYG office suite buttons all the time, wasting vertical screen space, for what? You want to make some text bold, you still have to select it, why having a B icons up there?

Why even have a damn desktop with icons concept since every time you use an app you cover the icons? Why not simply have an initial screen/page/you-name-it easy to write like an org-mode note, composed of active contents, like the said note, with anything you want, including even a reminder quickly written during the previous desktop session? Personally I have a single key bound to a function bringing me the current day note, I can directly type some text, click on the unread mail link witch is also a single key if I want, see/click some other stuff etc, why in modern desktops hyper-simple things like damn write down a simple note demand going through a menu, find a relevant app, launch it, type the few words, save them etc etc etc? Why it's so damn hard to link an email in a note, a local pdf, an "action" that do something on my desktop, a small sexp that let's say switch my current "web desktop" to "daily todo" windows layout etc?

The whole modern GUI concept down to the desktop is deeply flawed, born with the idea to make things easy for computer-illiterate imaging "the desktop" like a physical desk (try looking for General Magic systems) doing anything to mimics papers of that time, like "folders" (suspended folders, very popular when their visual concept was born) instead of directories (meaning list of files, because that's what they are) or even the concept of "single document file" where perhaps a note-app have no reason to store a file per note or even expose the user to the on-disk storage. Why even having a filesystem organized like a tree instead of a free graph? Yes, we need a starting point for the system, but the humans do not need it...


+1 for Terminator, my first install for 15+ years on Linux. Solid


Some people have issues with object permanence (if they don't see an object, they forget it exists).

Sticky corners plus keyboard-driven tiling inside IDE (emacs), web browser (zen) can go a long way even without a formal tiling WM.


Yeah I think window half/quarter screen snapping (with keyboard shortcuts, which XFCE has) fills all the benefit of a tiling wm I want, without the constraints and with the flexibility of a floating wm.

And I do heavily use tiles/panels in programs like Terminator and iTerm2 because it's helpful in a terminal context.


That's exactly how I have XFCE set up, with Super+Numpad keys bound to each half/quarter of the screen (Super+5 for maximize). Works great, and I can get all of the benefits of tiling without the limitations.


I use xmonad for well over a decade now. I tried others because ghc is a pretty big payload to maintain on a gentoo system but always came back to xmonad. I invested quite a big time in my config (I dont speak haskell, so it was sometimes pretty hard) but I would say my general config is quite minimal:

3 displays. 9 workspaces, named. Pretty basic tiled layouts. Named "scratchpads" (basicially popups with fixed client/programms; like a fullscreen popup with my terminal emulator with a tmux session a semi transparent pavucontrol and clipboard manager/copyq).

Important: one hotkey to send the actual client to fullscreen (I have no idea why this feature seems to be a hard one when testing other tiling WMs).

Hotkeys for switching displays.

This seems (for me?) pretty basic needs but I found thats not easily reproducible with other tiling wms.

Some time ago I introduced my GF to a thinkpad with my xmonad config and she was within a hour absolutely able to use a multi monitor setup comfortable with her keyboard. She really liked it.

My config for reference: https://gist.github.com/entropie/c8072585593b784bff9b8af95c1...


FWIW: Qtile is a plenty hackable tiling WM (Python) and comes with "xmonad" tiling modes: https://docs.qtile.org/en/latest/manual/ref/layouts.html#mon...

Worth a spin if the tiling mode is what's keeping you on XMonad and you'd actually rather not Haskell, otherwise.

Supports running under either Wayland or X11.


I had never issues with tiling modes on other WMs. Qtile seems to have a send client to fullscreen in the default config. Ill have a deeper look. Thank you.


XMonad mafia represent! :)

My config is koff more involved. I did a lateral from CTWM into XMonad quite a few years ago, so many of my keystrokes bring associated workspaces to their default locations.

I've got 44 workspaces, and 6 displays, many of them loosely grouped into "document" pairs for working on different projects, and "monitoring" pairs for different focuses of _looking at_ different things. The monitoring pairs are much less intensively used.


I would like to have a look at your config.

Feels good to see someone else who can't speak Haskell but struggles their way to a working xmonad config.

I really want to just move to wayland and get it over with, but the tiling wm options are slim. I want a dynamic tiling setup, so sway isn't it. I think hyperland can do something similar but I don't want the candy associated with it. I just need the smallest overhead to throw windows into tiles.


Love both i3wm and Sway WM. This is what computing should be.

Windows has surprisingly decent tiling functions out of the box, too, but you'd never realize it without some experimentation. Next time you're at a Windows box, try holding Win, maybe Shift as well, and mashing the arrow keys. A minute or two of experimentation might make your whole $DAYJOB workflow that much more enjoyable!


Rectangle (https://rectangleapp.com/) makes macOS window management good enough (for a non-tiling WM), by adding keyboard shortcuts and drag gestures.


And the new MacOS version also finally got Windows XP style tiling. (I still like Rectangle because I can do it from a longer distance..)


I tried that, but most apps just don't scale down well. Important UI elements just disappear, while less important elements maintain their size, unless the app has most of the screen. Those are apps like teams and outlook that I would expect most office users to keep open all the time on Windows (teams is really bad about assuming I want to see the avatar of whoever is speaking more than their slides). Edge did a little better, depending on the page I was looking at.


This is one of my pet peeves as a visually impaired person. Basically nothing scales right for me anymore. Apps and websites designed for desktops have such insane padding that when I scale them up, basic information is truncated.

By the time they're easily readable for me, 'progressive' websites go into mobile mode and do things like collapse their (non-resizeable) sidebars. Last week I tried to cut down on excess padding in a sidebar by resizing it and literally watched it go from 40% excess/wasted horizontal space to completely collapsed and hidden behind another click (and thus unusable with keyboard friendly addons like Pentadactyl).


User styling can fix some websites at a high cost of fiddling with the layout

But we do need some a shift away from this awful low density design paradigm


If you live in the US you may have an ADA case against whoever does the website. Many other countries have their own version of that with different rules.


I do keep Outlook and Teams open basically all the time, and full-screened, yes. Here I can only counsel that having multiple smaller monitors was a wiser investment dollar per dollar than one big monitor.


KDE also has extensive keyboard shortcuts for window management (among other things) but most of them are not set by default.


I want to love KDE, I really do, but I've grown to love gnome and os x's ability to have close, min, max buttons down in the toolbar for apps as that saves a significant amount of screen real estate. I tried out kde plasma for a while and just couldn't get past it.

Having said that, I did discover kde connect while using that, and I love that app! It's so nice for putting audio books on my phone and controlling playback


I hate the client-side decorations in gnome. I should note it moved my two most used buttons approximately 2000 pixels away from each other (they used to be quite close) in my most used Gnome app, so it might not be an entirely rational hate.

[edit]

I should also say that Gnome apps with CSDs work just fine in KDE with kwin and hide the title bar automatically as expected (I use Evolution, and Document Scanner regularly).


Something that isn't clear to me is why there has to be a hard divide between CSD and SSD. Is there anything in the Wayland spec that prevents UI frameworks from saying, "hey windowmanager/compositor, here's where control widgets go for this window", allowing WM-drawn controls to live on the same plane of existence as program-drawn controls? That along with some way for the WM/compositor to tell the UI framework if the user wants a discrete titlebar or if they're cool with the UI framework doing its own thing seems like it'd make everybody happy.


The main reason I know that GNOME doesn't implement xdg-decoration is to specifically not have to draw anything itself ontop of the surfaces of clients. It would then need to kinda synchronize the rendering of its stuff with the update loop of the application.

The only time I can remember when Mutter/gnome-shell draws over the client is when it stops updating over the wayland socket (freezes), so there isn't really an update loop it needs to synchronize to.


Nothing technical in the way. I don't see Gnome adding such a feature though.


KDE has this feature now, you just have to add the global menu applet to your task bar and it will do the Unity/Apple thing where the task bar is relevant to the selected application


Client Side Decorations are different than moving the menu bar.

Even using the global menu in KDE (which isn't that new BTW, I think it was in KDE3), you'll still have a "height = title bar + toolbar", where with CSD it's "height = toolbar".


I didn't know that! Tracks with my experience with playing around with KDE, like, a decade ago. So much user-configurable power lying just under the surface.


One thing I love about kwin is that the exposé feature lets you navigate the windows with the keyboard. macOS itself doesn’t have that feature.


It's the one thing I hack into macOS (I use BetterTouchTool for this but only because I already have a license from back when I wanted to mod my TouchBar), and would otherwise genuinely miss coming from any other operating system. I think even iPadOS has tiling shortcuts!


You can also get true tiling window management with Amethyst, or Hammerspoon if you love customizing things in Lua and starting from an absolutely empty configuration.


Just want to add that I'm having a pretty good experience with Amethyst. No file-based configuration, sadly, but it does all of the tiling and movements I need.

Hammerspoon (via Spacehammer) seemed too slow for me.


There is also rather new decent competitor for Sway: https://hyprland.org/


I've been using Awesome for about two years and started using Hyprland in parallel due to its very good multi monitor + multi resolution support and it's been great.

The only two issues I have with it is slightly increased power draw from ~7w to ~10w on idle and screen sharing does not work. I use very default configs so maintaing both is not an overhead.

Awesome offers very high dpi and battery life and Hyprland smooth animations and multi resolution support.


For those on macOS, yabai + skhd have been part of my workflow for years now. They are fantastic to bridge the gap I miss so much from i3.


I used it for years too but had issues with managed laptops and security settings, I've heard that aerospace is meant to work even then.

If anyone reading this wants to take a stab at tiling wm in Mac don't be deterred, there are good options available there too.


I switched to Aerospace from Yabai


I switched to Hammerspoon... seems to be good enough with enormous power if you know Lua.


I've exclusively used Awesomewm for the past 15ish years (with a brief attempt at Sway, but that's a story for another time). I don't understand what OP is talking about. Do they want more integration between the WM and the DE? If so, I don't understand why? AwesomeWM does everything I need it to do, without getting in my way.

Maybe I'm misunderstanding OP?

Edit: the comments on the blog post talk about integrations with things like volume management and network management, apparently that's (a|their) defintion of DE vs a WM. Those are not features I care about at all, so maybe I'm not the target audience here. AwesomeWM has plenty of widgets for volume or wifi or whatnot, but I mostly use a terminal.


There are a lot of little things that daemons like gsettingsd handles, like resolution changes if you add a monitor or change the size of the window you're using your VM in, that you have to do manually if you are not using a desktop environment

I got tired of doing that stuff manually ten years ago, myself. when I plug in a USB stick I just want it to mount, I don't need to wind up reading the mount man page. I have shit to do.


Yeah, many years ago I ran a crunchbang-style setup with openbox and tint2 and while the low resource usage and customizability was great, it was irritating having to find and set up daemons, tray items, etc (all of which seemingly coming with their own list of incapabilities/tradeoffs) for every little thing. I absolutely sympathize with minimizing bloat, but it feels like things like volume keys should fall within the scope of bare minimum out of the box functionality.


I think people who don't use a DE often don't know what they are missing out. (disclaimer, I don't use a DE either).

Most of the time it's just the QoL stuff. Like having it remember resolution and relative positioning of monitors, mouse/touchpad settings, or whatever. These sound insignificant but they do add up.


> Do they want more integration between the WM and the DE?

Yes. I haven't used a DE in well over a decade, but I assume it's for stuff like being able to drag and drop from one window to another, etc.

(Also a happy Awesome user for almost as long as you - although I still haven't learned Lua!)


I read the blog post as "everything's fine".

Tiling window managers are a niche, wanting to integrate them into a desktop environment is even more so, and the article mentions no less than 3 options for doing it.

For me, that's really good for a niche.

Personally, I am a lot more worried about the X11/Wayland situation, with the former being more or less deprecated, and the latter still having issues after all these years, and compositors and therefore window managers being a common point of issue.


> with the former being more or less deprecated

Nah, it's not. That's just wishful thinking by Wayland acolytes.


It is not wishful thinking from acolytes, it is development effort from the freedesktop group. Most of the effort it is now target wayland.

X11 is not deprecated yet but probably won’t get many new features (e.g. HDR).


XWayland isn't going anywhere any time soon and the main difference between XWayland and Xorg (the standalone X server) is the module that talks with the underlying hardware, which is only a small part of the otherwise shared codebase - and said module is basically using the same DRM API like pretty much every Wayland compositor and it isn't really that complicated to keep working (or even that big in size).

As for HDR i think the main reason you don't see it on X is because at this point there isn't much of an incentive for anyone who can both work with X11 and has the time to do so and has the necessary hardware. Personally i believe i could work on it, if i had an HDR monitor[0] but chances are even if i had an HDR monitor i'd only be using its HDR mode for games - and at that point it'd be easier to just switch to another virtual terminal and run the game via Gamescope (which already supports HDR).

I'd expect HDR to come to X11 much faster once mixed content between HDR and SDR starts becoming common on the Web as that'd require the X server to do the color space transformation for the (otherwise SDR) window regions that display HDR content (and probably need some update to use the atomic modeset API to seamlessly switch between HDR and SDR, something Xorg doesn't do now but again, without the need to mix HDR/SDR there isn't that much of an incentive).

[0] ok, i have one but it is one of those "barely HDR" HDR400 monitors, i only tried its HDR mode under Windows when i bought it, saw it looking quite meh and never tried it again since i bought it a few years ago


Hard disagree.

I'm a Sway user and tiling wm evangelist, I absolutely do not want a suite of preinstalled software to come baked into my wm/compositor. I'm happy to install the software that I need.

If someone wants to distribute a complete Linux desktop with a tiling wm as default, that would be interesting, but a generic DE with a tiling wm to me seems like a waste of time.


No one's saying that they should include a DE into Sway. Your precious WM will still be with you even if someone decides to make a new tiling DE.

I'm a Hyprland user and honestly, cobbling together a poor man's DE using half-baked amateur-ish GTK apps and copy-pasting Nerd Font icons no longer spark any joy for me. I'm basically ready to jump at the first sight of a viable alternative. I'm very optimistic about Cosmic DE in this regards.


> cobbling together a poor man's DE using half-baked amateur-ish GTK apps

Do you think that GNOME's web browser (Epiphany?) and KDE's web browser (Konqueror?) are better than Firefox and Chromium?

Do you think that GNOME Text Editor and KDE's text editor (Kate?) are better than Emacs?


By DE, I'm mostly talking about having a cohesive graphical shell, not the random apps that comes pre-installed (who cares about those?).

The login manager, lock screen, taskbar, notification daemon, launcher, OSD, workspace overview, etc. In WMs (or WM-like compositors), you either have to cobble all of this together yourself or just give up and convince yourself that you're a minimalist.

Doing this kind of stuff was fun for a while, but these days I'm starting to crave for something actually good and polished.


FWIW i do like and use Falkon (KDE's browser) often these days as it is based QtWebEngine (Chromium in Qt) but has a simple Qt-based interface. I still use Firefox as my main browser but when i need to open a completely separate browser (sometimes sites do like my Firefox configuration - or i just want to test out something) i've found Falkon to be the best alternative.

Also Kate is better than Emacs as far as i'm concerned because it doesn't have its own weird UX and doesn't take reading a tutorial to figure out how to have a sidebar with a file browser in it :-P (i've long figure out how that is done on Emacs and use it occasionally because of custom language support elisp i wrote ages ago and don't want to bother rewriting but these days 99% of my plain text editing needs are covered by Kate).

(also FWIW i'm not using KDE/Plasma as my DE, in fact i'm using Window Maker instead of a DE at all, i just like some of KDE's utilities)


I'm using KDE and I have neither Konqueror nor Kate installed. Those are very much optional, I don't consider them part of the DE.


I've recently installed (a maintained fork of) Krohnkite[0], a tiling WM for Plasma 6, and I'm happy with it so far after tweaking the key bindings.

Things I miss:

- a scratchpad;

- toggling back and forth between desktops/workspaces with super+number (e.g. super+3 goes to desktop 3, but if I'm already on 3 I want to go back to the previous desktop);

- I also miss a bit the "manual" tiling from i3/sway (where you can choose where the next split will be). Krohnkite is DWM-style with predefined layouts (two columns, spiral, monocle...).

Maybe some of this can be done on Plasma/Krohnkite too (for the third I doubt but it's low priority), I haven't really looked into that.

[0] https://github.com/anametologin/krohnkite/


I just switched from sway to KDE + Kröhnkite script for the exact same reasons. So far I like it, though it is slightly different.


Same, but if a DE fixed a few things I would be happy.

* Make it work with a graphical login * Make screen sharing work out the box without having to set env vars and faff with xdg-desktop-portal * xdg-desktop-portal generally, the -wlr version doesn’t implement some things which means you have to have a fallback * desktop notifications out of the box.


I tried a pre-defined i3 with manjaro and I absolutely hated the experience. Tiling wms are very opinionated, and having it pre-installed means the typical ~/.config files are put elsewhere, with someone else's opinions, color schemes, etc.

It takes longer to undo it than to start fresh.


I actually like using a DE over sway because it builds in a sane set of defaults for everything.

Like yeah I could spend hours of my life trying to configure sway and waybar to my liking while getting some wayland compatible version of redshift going, or, I could just use popOs's gnome and get on with my life.

I used to love to fiddle with all those things when I was younger, and I used to hang out on r/unixporn and appreciate all the cool WMs, but at some point I realized I just wanted a working desktop that got out of my way and let me code.


You really don't have to fiddle with the defaults after that initial /r/unixporn curve, I've started with i3 over a decade ago and I've changed over the years but the core features that are actually useful always are automatic window tiling, desktop / workspace navigation, window navigation, movements and resizing.


I like it how it is on Windows 11, with 6 zones (tl-l-bl and tr-r-br, where t=top, l=left, and top and bottom target that quarter of the monitor while the middle targets the entire height of that side) and maximize/unmaximize windows by dragging the title bar to the center top of the monitor.

Then, in addition to this, with Actual Window Manager, map two layouts (2|2, 3|3, so 4 "panes" or 6 panes) via shortcuts where the dragging of the title bar shows these panes as targets for the window to pull it in when pressing shift at the same time. And with Ctrl-Shift Z or X I select one of the two layouts.

The 2|2 and 3|3 layouts are useful if I want a grid of terminal windows on the monitor while Windows's native features are good to move windows around quickly.

The benefit of having multiple terminal windows in a grid vs one tiled terminal is that I can pin selected terminals to the foreground.

I wouldn't want a desktop environment to generate layouts automatically for me, unless it can see what I'm doing and ask me if it should switched to a layout it proposes to me through a preview image on the display.


Mnyeah, for me the Windows 10 tiling was just right. In Windows 11 it's way too fiddly. Like every time I tile a window say to the left half of the screen (WIN + <-) it brings up every other window as an option to tile to the right half even if I already have a window tiled there.

There's other fiddlyness but I can't be bothered now. I need to make a list so I can kvetch properly about it, with bullet points and all. And references.

But overall I'm sorry to say even Win 11 is still better at tiling windows than almost anything I've tried on Linux (I had Xmonad on a laptop way back when and that was actually quite good). Though of course there's always text mode with Midnight Commander so :P


IMHO, a better taxonomy for WMs (and DEs) is "keyboard-centric" vs "mouse-centric" vs "trackpad-centric" (and "touchscreen-centric", but we don't talk about those). Of course you can have all of them at once, but there will always be compromises.


I think it would help to be designed to be usable by the keyboard alone but also to be usable by the combination of keyboard and mouse, and to work well either way, and you can do both together if you want to do (they are not different modes so you do not need to switch the mode).

Microsoft Windows has some of that; you can push ALT+SPACE and use the menu for move and resize by the arrows, but you can also use the mouse to move/size windows. Microsoft is not the best way, but this specific example is one of the things that can be done.

I also think that multiple document interface and tabbed windows could also be implemented in the window manager, that would not need to be the features of specific programs such as a web browser. (Some additional commands for application programs to interact with the window manager would be helpful; a window was created by another one, and is a part of the same program as this one, and some application commands are not specific to this window (but sometimes the user might want to start a separate instance for some windows anyways), etc.)


When I touch the mouse I need to have access to UI that lets me manage my desktop with the pointer. When I am not using the mouse why clutter the screen with unnecessary UI? Same if the system detects that I am about to use my thumb to touch the screen.

I think the UI should adapt to the user inputs instead of trying to dictate to the user how to work.


I also think that such UI will be unnecessary, unless it displays something that you might want to see even if you are not touching it. Most commands can be entered by keyboard, including many commands for window management; some can use the keyboard and mouse together (e.g. to manually change the position and/or size of a window).

However, sometimes it may be helpful to display status indicators, e.g. if you have both tiled and floating windows, it can help to display an indicator for this. Also, an operating system design might involve capabilities, and the status of these capabilities (e.g. audio, network, automation, etc) might also be displayed as window indicators that the user can adjust (mute, redirect, etc).


KDE will let you configure keyboard shortcuts for darn-near every WM thing you might want to do. Only a fraction have default shortcuts, but they are still pretty useful.

Example:

Hit Ctrl-F10, type part of the title of a window, use the arrow-keys to pick the one you want.


For GNOME, the Tiling Shell extension works well for me. I've also used, and liked, gTile. Of course, with an extension there's always the danger that it will break between releases and/or the developer will get bored and stop maintaining it.

The nice thing about Tiling Shell is that it's not all-or-nothing tiling. It's tiling when I want it, otherwise just "normal".

COSMIC Desktop is promising, but has a lot of maturing to do.


For a while I used XMonad (as a window manager) together with Xfce (as a desktop environment). It had its rough edges, but I really liked the experience. I could easily fit my windows on the screen the way I wanted to, while still getting the integration of a well-designed desktop environment.

Alas, I had to drop this setup on moving to Wayland. And I can’t get it back easily, because Wayland compositors generally don’t allow for their window managers to be swapped out. I now use Sway WM, which is perfectly acceptable… but I still miss my tiling desktop environment.



Tiling wm’s are a niche within a niche (Linux on the desktop)… you can’t really expect much engineering resources to be devoted to them.


In real life, in the probably hundreds of developers and IT professionals I've worked with, I've met exactly one who was actually using a tiling window manager.

It was different enough to be a thing we playfully argued about often.


Good window management is a niche skill (on the user side). I often see "normies" waste so much time tabbing between windows or turning their heads between monitors or whatnot. When I want stuff side by side, I press a hotkey to arrange stuff side by side. My WM has a bunch of tags (virtual desktops on steroids), where each tag has its own purpose and a dedicated default layout (tiled for terminals, fullscreen for a browser, etc).

I feel like "tiled vs non-tiled" is a false dichotomy. It's tiled and floating and full screen and spiraling and horizontal split and vertical split, etc.

The right tool for the job.


Absolutely agree. Use what works, and we should always be grateful to have good options.

However there's a lot to most of the tiling window managers that never clicked for me. I've always assumed it's a personal problem. Perhaps I have spent an unreasonable amount of time thinking about "why not?"

I'm not good at remembering keyboard shortcuts. Ctrl+Z seems to be all I need.

I've tried sorting and categorizing apps into tags, but it makes me slower. If apps open on a virtual desktop that I couldn't see, I'd just lose it. If I can't see something it stops existing pretty quickly, which makes even too many virtual desktops a losing battle.

Inconsistent behaviour will always pull me out of whatever I'm doing. 4 apps tiled, 5th app opens in a floating window, now I'm distracted.

For now I use a single 4K monitor at 100% scaling with a couple of virtual desktops. Current task(s) and background apps.

I haven't spent much time managing windows since. Once the windows are open for the day, that's a solved problem. Memory is cheap. Windows mostly open where I left them last time.

There's a certain cognitive load to keeping all of that straight. The computer is supposed to do the thinking and apparently I can't.


Awesome is very appropriately named. (I presume you're using awesome because of the combo of tags and layouts is something I've only encountered there)

I actually have a configuration where I use it as window manager for KDE, to get most of the best of two worlds (awesome is my favourite window manager and KDE is a desktop environment I'm quite fond of).


> In real life, in the probably hundreds of developers and IT professionals I've worked with, I've met exactly one who was actually using a tiling window manager.

I've yet to have a job that actually allowed me to use the tiling WM of my choice (AwesomeWM). Most professional developers who love WMs simply cannot use it for work!


I don't think many of the folks you refer to with cut their teeth on anything but Windows or Mac windowing environments.

I started my serious interactions with graphical computing in a debate about twm vs. vtwm vs. tvtwm vs. ctwm and what-not in the late 80s, early 90s. How do I want my applications arranged? Spatially? or by topic? Do I want indicators like "You have mail!" to be glued to my viewport, or in a particular virtual or topical location? blah blah blah.

You can make a case that it was time wasted to think about those things. But the folks who grew in MS Windows feel to me like a crowd unaware that they're wearing manacles, "unable to imagine" why someone would want to take them off.

I don't know how to succinctly communicate how much mental effort is consumed just arranging displays, on the occasions I need to work in a more mainstream windowing environment. It's a mental tax, and you're just used to paying it.


> But the folks who grew in MS Windows feel to me like a crowd unaware that they're wearing manacles, "unable to imagine" why someone would want to take them off.

This is interesting to me. I am on the other side, and ISTM that the tiling WM folks are the camp you describe.

Windows (2.01) was the 3rd GUI I learned. First was classic MacOS (System 6 and early System 7.0), then Acorn RISC OS on my own home computer, then Windows.

Both MacOS and RISC OS have beautiful, very mouse-centric GUIs where you must use the mouse for most things. Windows was fascinating because it has rich, well-thought-out, rational and consistent keyboard controls, and they work everywhere. In all graphical apps, in the window manager itself, and on the command line.

-- Ctrl + a letter is a discrete action: do this thing now.

-- Alt + a letter opens a menu

-- Shift moves selects in a continuous range: shift+cursors selects text or files in a file manager. Shift+mouse selects multiple icons in a block in a file manager.

-- Ctrl + mouse selects discontinuously: pick disconnected icons.

-- These can be combined: shift-select a block, then press ctrl as well to add some discontinuous entries.

-- Ctrl + cursor keys moves a word at a time (discontinuous cursor movement).

-- Shift + ctrl selects a word at a time.

In the mid-'90s Linux made Unix affordable and I got to know it, and I switched to it early '00s.

But it lacks that overall cohesive keyboard UI. Some desktops implement most of Windows' keyboard UI (Xfce, LXDE, GNOME 2.x), some invent their own (KDE), many don't have one.

The shell and editors don't have any consistency. Each editor has its own set of keyboard controls, and some environments honour some of them -- but not many because the keyboard controls for an editor make little sense in a window manager. What does "insert mode" mean in a file manager?

They are keyboard-driven windowing environments built by people who live in terminals and only know the extremely limited keyboard controls of the most primitive extant shell environment, one that doesn't honour GUI keyboard UI because it predates it and so in which every app invents its own.

Whereas Windows co-evolved with IBM CUA and deeply embeds it.

The result is that all the Linux tiling WMs I've tried annoy me, because they don't respect the existing Windows-based keystrokes for manipulating windows. GNOME >=3 mostly doesn't either: keystrokes for menu manipulation make little sense when you've tried to eliminate menus from your UI.

Even the growing-in-trendiness MiracleWM because the developer doesn't use plain Ubuntu, he uses Kubuntu, and Kubuntu doesn't respect basic Ubuntu keystrokes like Ctrl+Alt+T for a terminal, so neither does MiracleWM.

They are multiple non-overlapping, non-cohesive, non-uniform keyboard UIs designed by and for people who never knew how to use a keyboard-driven whole-OS UI because they didn't know there was one. So they all built their own ones without knowing that there's 30+ years of prior art for this.

All these little half-thought-out attempts to build something that already existed but its creators didn't know about it.

To extend the prisoners-escaping-jail theme:

Each only extends the one prisoner cell that inmate knew before they got out, where the prison cell is an app -- often a text editor but sometimes it's one game.

One environment lets you navigate by only going left or straight. To go right, turn left three times! Simple!

One only lets you navigate in spirals, but you can adjust the size, and toggle clockwise or anticlockwise.

One is like Asteroids: you pivot your cursor and apply thrust.

One uses Doom/Quake-style WASD + mouse, because everyone knows that, right? It's the standard!

One expects you to plug in a joypad controller and use that.


I've met a handful, certainly a sizable portion of those who ran Linux on their work machines. Notably i3 and Sway I've spotted during demos from extremely talented engineers. Anecdotes to be sure.


> you can’t really expect much engineering resources to be devoted to them

I wouldn't say that, given that we have plenty of tiling WMs are most of them are well-maintened. Not to mention Linux distros that already provide one of them as options, such as Manjaro.

There's also Amethyst and Yabai for Mac, so, even if it is a niche there's demand for it


We had Moom on the front page yesterday. I would adopt it in a heartbeat on Linux if I could. It is easy to use, easy to understand, great even with a mouse and does not require you to remember yet another dozen of keyboard shortcuts (though you can if you want). Using the finer grid is a pleasure and it works great.

All the alternatives I tried have huge technical barriers to entry.


I agree to an extent. Very often people/users ask for things based on what they know because it's hard to imagine what they need. Solving that's really the essence of UX/product management. I don't think a tiling DE is what is needed. Based on my experience, there are some core issues to resolve here:

* The notion of a running apps area (dock, taskbar) seems to be essential for users.

* Users (myself and people I know) typically have one application maximized at a time. The exception would be when cross-app interaction is required (drag and drop) or when it really makes sense to have multiple apps visible at once (terminal + editor).

* When users have multiple apps open, there's typically a pattern to how they accomplish this.

* Virtual desktops are hard. You have to dedicate congition/memory to what is running on which desktop.

* Most users don't want to spend hours learning+editing config files to get something basic working (i.e. the article is definitely correct about having a DE vs WM here).

I consider something along the lines of this to solve all the above:

* Typical DE goodies.

* An infinite canvas, not virtual desktops.

* Presets for window placement, i.e. fancy zones[1] that can be placed anywhere on the infinite canvas.

* The camera (current view rectangle) can be translated and scaled/zoomed. Zooming would effectively be alt+tab.

* Camera position presets - these would be analogous to virtual desktops. They can be any shape or size, and can overlap. The idea here is that you could have one camera focusing on your editor fancy zone, and another focusing on the editor+terminal.

[1]: https://learn.microsoft.com/en-us/windows/powertoys/fancyzon...


We do have some tiling WM, not DE ok, but still enough. Casual users who want DEs are typically former Windows users who have no idea about tiling concept and current sorry state of GNU/Linux DEs it's definitively not good to teach anyone anything except instability, arrogance etc. Bold terms, I know, but the right terms IMVHO when we talk about Gnome or Kde DEs now.

Tiling is VERY good for a PROPER desktop, but actually we miss a proper desktop for the masses, we have Emacs/EXWM, but most X11-based apps can't be sane, proper desktop apps being simply widget based or WebVM-based apps. A proper desktop app is something easy to bend by the user, flexible, automatable, not a rigid tool where the user can't do much more than clicking around and have only cut/copy/paste IPCs and even very limited.


One feature of i3 and friends that I really relied on when I was using a laptop as my main computer was the tab mode. Being able to tab between windows on half of your screen while keeping your browser open in the other half was extremely useful.

I know BeOS had tabbed windows in the 90s in a floating window manager; it makes me wonder why this idea didn't catch on in the early 2000s.

Windows has started to add tabs to individual programs incrementally as part of their rewrites of core applications in the new GUI frameworks. Notepad got tabs and so did Explorer. So they see the utility.

Why hasn't tabbing been included as a core feature of the window manager outside of these niche tiling window managers for Linux?


You can do tabbed windows in XMonad.


Linux's biggest problem is the multitude of options in every space, all unique, none of them recognises existing systems that work well and none of them borrow the working solutions from the predecessors. Everyone has to offer some mind bending individual solution that are mostly useless. All of these are centered around the heavy gravity of egos that created them.

That's why gimp and krita is unusable compared to PS.

Watch in awe as the real peepz, who know what works and what not will sweep these fn abominations out of this space when the Linux Desktop's usage stats will climb above lets say 10%... and they will be cheeky enuff to ask money for it :D.


Fedora has a Sway spin that installs all of the usual applets like volume and network config. Sway can also be installed on any Fedora machine with one dnf command. I just don't have the problems described in the article.


Quicktile: https://github.com/ssokolow/quicktile

https://ssokolow.com/quicktile/

Nobody is mentioning it but it is such a great tiling manager, I use it all the time. Just select the window with alt-tab and then tile the windows with Ctrl+alt+numeric keyboards. It's quick and it doesn't need a mouse to tile windows. And it can integrate into any x11 windows manager.


Cool, thanks a lot. Was looking for something like that without the need of gnome. Works great with XFCE and there is even a maintained package in AUR for the archers.


PaperWM https://github.com/paperwm/PaperWM is very neat and I've been using it for a while


I'm a long time Ubuntu user but not exactly a power user. When I installed i3wm I really liked it but was very handicapped by losing the rest of Gnome. I didn't understand how much "windows manager" encompasses. Suddenly just finding an app and opening it was pain. I ended up getting rid of it because of the constant challenges of replacing this and that from Gnome, but I still miss the tiling desktop. Is there anything out there for those us who need more hand holding?


it's been a few years since I've done this, but I used to have the same problem as you and I found that if I ran MATE but replaced the default WM in it, Marco, with i3, I got to have my tiling WM inside a proper DE. It was really great! If you are interested there are a few guides you can find if you search. I'm certainly not the first or only person to do this.

I only stopped using it because I eventually got a very large screen and tiling doesn't fit my flow anymore, so I just use KDE now lol


IME, same approach works flawlessly in Xfce too (and from what I hear GNOME and KDE).


Wow, do you have any link with instructions explaining how to do that?


I work from my laptop and the smallish screen makes tiling unattractive/overkill. I much prefer a very quick way to change windows which most DEs make surprisingly more difficult than it should be.

I use Cinnamon because it's basic yet customizable enough (you can't remap changing windows in both directions in GNOME). I set up Super + J/K to change windows (and turned off animations for that). If using too much windows, I know Super + 1/2 will always be the navigator/terminal (order in pinned apps in the panel)ot

I use Ctrl + J/K to change terminal tabs so I can always switch between $TERMINAL_EDITOR and the shell/gdb/etc.

I use vim's buffers for the editor and Shift + J/K to move through tabs (I use fuzzy find option when there is many buffers)

I use vimium (Shift + J/K) in Firefox to go through tabs (although the Ctrl + L + % feature is great to move between tabs.)

It's consistent enought that I dont' forget about it and thus use it


I'm surprised there hasn't been any mention of my favorite rust based tiling windows manager - LeftWM (https://github.com/leftwm/leftwm?tab=readme-ov-file#why-go-l...)


Anyone else smell ChatGPT in this article?

This article is calling for something to happen that already is happening. I just came back to the linux desktop and I'm pleased to discover I can pretty build features I like into a normal desktop environment through GNOME extensions. It's unfortunately quite fragmented still at the moment, but looks very promising. I think once COSMIC lands and more people use it we'll see even more of this extensible desktop rather than the all-in elitist desktop approach. It's already there to be honest, but it's hidden in plain sight. And of course if you want to be a cool kid there's hyprland


I really like the direction of System76/Pop/COSMOS is going with this. You have free floating windows along with tiling and multi-application tab views. Add in app location pinning and you've pretty much got all the bases covered.

I'm not sure about their light/dark + accent color(s) though, I do hope they (re)generate the icon suite for the color though, at least for system directories and primary apps. I'm also slightly concerned with tray icons/apps, which hae a few different API/formats already.


The last versions of KDE Plasma 5 offered tiling windows as an option, and it could be configured to be used only with the keyboard, like a tiling WM. However it was not so polished (I was waiting it to be more usable) and I kept my KDE + XMonad configuration.

However, after Plasma 6 that option was missing, and I my KDE + XMonad setup doesn't work anymore (perhaps I need to adapt it but I didn't have time to do that so far). Also, Wayland doesn't help: using a desktop environment with other window manager only works on X11.

Does someone know what happened to tiling on Plasma 6?


They ditched the existing stuff which were handled by third party software and started implementing new tiling functionality from scratch. It's a good faith effort to embrace tiling natively but this change meant they caused all existing solutions to break without providing anywhere near the same functionality. Hopefully they or 3rd parties will fix this in the future.


I hope so. I liked my KDE + XMonad setup, but picom really made my PC slow. A 100% KDE solution would be perfect, as I'm not a XMonad power user


I just switched from sway to KDE + Kröhnkite. That might be an option.

According to the reddit comments I've seen, there aren't any plans to expand tiling functionality much beyond what it currently is in KDE.


Even if that's the case, the tiling "primitives" (I don't know if that's the right word) for 3rd parties to leverage is there.

By the way khronkite was forked a bunch of times to create things like Bismuth which isn't supported in plasma6 anymore. Are you sure khronkite itself works? Are you using kde5 ? Or this fork https://github.com/anametologin/krohnkite ?


Yeah, I'm using that fork. I also tried Polonium, but I had regular issues with it not resizing windows when other windows were moved/closed.


I don't think the built-in tiling in Plasma was ever meant to go mucher deeper than what's in Windows. You're still gonna need to use extensions if you want full tiling, I think.

There are two KWin scripts that can be used to add tiling functionality into Plasma 6, which are Kröhnkite and Polonium. Not sure which of the two is better. If you want to use a window manager separate from KWin, I believe i3 still works.


I have been wanting to look into tiling managers, but I was always putting it off because of tasks I had to do. I read this post, and it made me look into how to use the default tiling manager of my current distro (Using Kubuntu and Plasma). It literally is Cmd-T, pick a default layout (the upper right area has some default ones, too), and then whenever you want to tile, just shift drag the window and it will snap. Been using it all day and I love it. The article does not talk about this one, but man, glad it made me wonder about it.


I always think I should probably try out having multiple things in the screen at once, but... I usually forget that feature exists when I'm actually working...

I'm kind of amazed by a lot of programmers, it seems like they have multiple threads running in their mind at once, writing code while also optimizing their workflow and laying things out on the screen and keeping track of where different things are, all often while generating ideas for how tools could be better.


I mostly use full-screen windows (effectively no windows at all). I think that floating windows and tiles are made for those with large expensive 4K monitors, but not for smaller screens.


Most applications are designed for full screen on the common displays of their day. 1080p monitors are common enough that everybody still designs their apps for them and so you can use them less than full screen on a 4k monitor. Back when smaller monitors were common apps were designed for them and could be used tiled on 1080p monitors. If you can still find such an app it will work great tiled, but few projects allow for the idea that you might want to work on something else at the same time and so less than full screen is not something they allow UX to think about.


Same. I've used XMonad forever but 90% of the time I have single applications open full screen. I use XMonad's tabs feature heavily. So in one virtual desktop I have an editor and a few terminals which I tab between, then in another virtual desktop I do the same for web browsing, and another virtual desktop for comms.


That’s also what works best for me! A single monitor and only one window on fullscreen. When I need to switch applications, I navigate to another fullscreen window. Sometimes I like to joke that my brain is single threaded :-)


I work exclusively on the display of a 15-inch laptop, and I frequently have 2, less frequently 3, tiled windows.


I would settle for console windows having a border. I hate that on Ubuntu, when two console windows overlap, there's no visible boundary. That's just stupid.


increasingly it's not that I need or desire any more features, but shit simply doesnt work if I dont bootstrap my window manager with a service layer desktop environment. My xinitrc includes sillyness to get KDE, gnome, dbus, systray icons to all work juuust right.

If you use KDE+i3 as the WM, none of those problems exist.

So its more like, other apps expect certain things to work in a certain way so make sure you get all the ducks lined up and then youll be good to go



I think what most people, including tiling people, would actually want without realising it is Divvy (macOS)/gTile (gnome)/PowerToys (Windows).

A regular floating window manager but you can move any floating window into a tiled window based on a grid of potential locations.

It's hard to explain in words but look any of them up and it's the best no-compromise solution for everyone.


This.

I run PowerToys Fancyzones with the following options:

- Disable the shift modifier so that the zones highlight when dragging any window by default - Enable the second mouse button as a modifier (so you can disable snapping when using the mouse by tapping the right mouse button as you drag the window) - Enable the option to allow for win+arrow keys to move windows between configured zones vs the default snapping options

Using this config, plus leveraging the default config which allows you to merge zones by holding the middle mouse button is hands down one of the best workflows I've found. It's one of the biggest things holding me back from migrating to Linux full time (outside of some special development workloads that make it easier to run windows + wsl than Linux + a Windows VM).

I run a 40" 4k with two 30" vertically oriented side screens. My side monitors are split into 1/3rds. My main monitor is split into 6 zones. Three of the zones are simply quarters (approximately 1080p per window). The top left I have split into two zones, but using the middle mouse trick I can quickly merge them into a "normal" quarter zone.

I think mouse centric and keyboard centric WMs both kind of suck. What I like about my setup is that it works with either option and works well


Not so! I'm sure they're great for a bunch of usecases but they don't fit mine, which tbf is probably not very common.

I've got an ultrawide monitor, 32:9 aspect ratio, and I like to have three columns, with the middle one being basically 16:9, and the right being fairly narrow, so that the left can be somewhere perhaps slightly wider than 4:3.

Regular tiling positions aren't flexible enough for that


Powertoys FancyZones can do that.


Ah, but that's on windows, which rules it out for me


I can confirm for power toys on Windows, I find it essential for making use of multiple 4k screens.


It's honestly the best of the lot but slept on in these parts because of being Windows only. KDE started to clone this as a native feature but it seems to be abandoned. Story of linux I guess.

I really, really can't recommend PowerToys enough.


Shoutout to cortile at https://github.com/leukipp/cortile which is an app that you install on top of lxde, xfce, gnome etc and enables tiling features. Great alternative to a fulm blown i3wm when ypu are sharing the computer with less savy users


I use most of my apps "full screen" and tab rapidly between them. Very rarely, I use 2 windows side by side. Most of the times I use 2 screens. I do agree that tiling is better than floating, but I think full screen with good alt tab/virtual desktop is even better


It's true that we don't need more distros.

It's also true that we don't "more tiling."

We can use more Window Managers maybe. We sure as hell don't need more Desktop Environments.

What we've always needed is more modularity.

(and instead, we got Wayland, which in practice was mostly the opposite of that)


AFAICT, KDE does exactly what he's looking for; integrating tiling into a full featured desktop manager.


I was upset with the KDE project for some years because they dropped amaroK during the transition from KDE 3 to 4, but after seeing the new work in Plasma and moving on to other music players once amaroK 3 rotted. I really love the work they've done and I'm back to having KDE as my daily driver. Previously I used wmii, dwm, and xmonad on different systems.


The main applications that I use are a web browser, a terminal, and a text editor.

Both my terminal and my text editor support tiling natively, and I assume there are extensions for my web browser to do the same.

I'm not sure adding this complexity at the window manager level is really that useful.


I like tiling well enough. What surprises me is that I don't have an easy way to script different window setups. Would love to be able to press a function key and have it put specific windows on my various monitors, with overflow placed on a new desktop.


They exist. It’s the one and only reason I use Linux is I fell in love with i3 and now Sway.

They’re not just good for terminals. I do like me some tmux but I find tiling and stacking and all the glory of a titling window manager the best part of desktop Linux.


I would say those aren't really desktop environments. They provide the bare minimum for window management and compositing, but not much more. Desktop environments encompass much more than that, like managing file type associations, and protocol handling.


Some users might need that. And even expect it. I don’t need it. I know the tools to open the file types or XDG is configured with default apps.


There currently is no tiling window manager that does all of these things, and it's driving me crazy

* native tiling (not scripted on top like gnome or kde extensions)

* Wayland-based

* ability to disable xwayland scaling

* screen sharing + window sharing

* Good multimonitor support

* doesn't crash 3 times a day



These tiling environments are great when you can just drag corners with your mouse to change the size of regions. When that isn't a feature, I find it isn't very usable for me at least


"We need more desktop environments" - Nooo, absolutely not. You need one or maybe two good ones, and it can have tiling as a feature or at worst plugin. The fragmentation and lack of key features and stability testing as a result is already a major reason for people not to adopt Linux desktops. And even if we don't consolidate, there is already an idiotic amount of just different tiling desktop environments, let alone all desktop environments. What on earth do you want even more for? Just add features to existing ones, so that everybody benefits. Competition isn't really needed in open source, since you can just add all of the things to one shared solution. Imagine if everybody suggested making a brand new kernel for each combination of hardware, or the likes.


If only Gnome was amenable to features... They are a very opinionated group.



If your desktop environment requires me to click twice instead of once to switch or choose between two instances of chrome. Then I know you only care about the cool factor and is not going to be a great UX.

Stop asking me to use alt+tab and cycle through windows like a caveman or ask me to setup workspaces like its 1980.

"Stinky smelly nerds" seem to forget about large touch screen monitors and VR devices and that all icons can fit in one stretch of wide screens.


> Linux: We need tiling desktop environments

? I heard there are some.


sounds like a really niche requirement to make such a strong statement. if there are no more tiling desktop environments it is because there are not enough users for them to be in such demand.


Xmonad integrates nicely with xfce and MATE, at least. Probably KDE as well.


Need? Or is is simply a matter of some people just wanting them?


> but they sacrifice the full-featured nature of a desktop environment.

_For me_ it is not a sacrifice, it is conscious choice. I have everything on the tip of my finger and have all (or most) of my config done in a single file, I don't need a heavier DE for no benefit.

> increased control over their workspaces and the ability to customize their desktop...

Is it even achievable? I don't think you can't have the full-featured nature of gnome and the control of sway. They have antagonistic design. For example, on sway you set up your workflow by composing a lot of software together (with things like wofi, mako etc), while on gnome it is already a cohesive package with everything you need already in place (and trying to change that is uphill battle).

Also if the author allow me, the text is quite prolix, you say the same thing over and over again without providing any concrete example.

> there is a limited number of desktop environments that offer non-traditional (MS Windows-like) window management.

Like what? From those DE you have listed what are they missing? Why do you need more?


I like EXWM because it fits in with my continuing Emacs obsession lol


Objectively speaking, nothing comes close to StumpWM


What are the advantages of StumpWM over Awesome?


Because we're on HN I'd say that StumpWM being made in Common Lisp may be trotted out as the main advantage. Personally I'm quite fond of it having Emacs-like key chording (it's the keyboard equivalent of a cascading menu versus a flat menu). That said I'm so fond of awesome's tags and layouts that I can't bring myself to switch over (and programming those myself is way above my skill level).


> Because we're on HN I'd say that StumpWM being made in Common Lisp may be trotted out as the main advantage

It's not because it is in Common Lisp, it is because you can program it live without needing to restart the program to see the result. Some people call this 'hot-reloading' but Common Lisp implementations take this to an unreached level. Also it has sane defaults (well ... for Emacs users) but you can also mold it into whatever you like.


> Linux: We need tiling desktop environments

man fvwm2rc


Am I the only one who gets mildly annoyed by the plural in the title? Singular would be just fine - true, precise, without any vague implications.


I'm still on X because there is no sane way to run a tiling window manager in Wayland using proprietary Nvidia drivers. Sucks because Hyprland is pretty cool, but I am not willing to put up with whatever stupid bullshit is necessary to use it and have access to CUDA.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: