Linux: We need tiling desktop environments
linuxblog.io
linuxblog.io
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 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).
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.
IMO, tiled Quake-style overlay terminals (guake, yakuake, iTerm hotkey window) over floating windows offer the best of both worlds.
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.
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.
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 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.
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).
Using workspaces to toggle the network is brilliant!
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.
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.
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.
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.
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.
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
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.
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.
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).
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.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.)
Dired on contrary is super good also to rename files en masse, to filter them and so on.
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.
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.
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'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).
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.
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.
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.
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
Plus thumbs at the corners, for some displays.
When I do, I either keep the fullscreen browser on a dedicated desktop or nudge the split point until I'm happy.
I fail to see how resize is worse than not being able to see it.
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.
Tmux is great for remote/shared usage though (and it survives ssh disconnection).
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_...
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.
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.
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.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.
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...
Sticky corners plus keyboard-driven tiling inside IDE (emacs), web browser (zen) can go a long way even without a formal tiling WM.
And I do heavily use tiles/panels in programs like Terminator and iTerm2 because it's helpful in a terminal context.
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...
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.
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 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.
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!
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).
But we do need some a shift away from this awful low density design paradigm
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
[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).
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.
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".
Hammerspoon (via Spacehammer) seemed too slow for me.
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.
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.
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.
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.
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.
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!)
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.
Nah, it's not. That's just wishful thinking by Wayland acolytes.
X11 is not deprecated yet but probably won’t get many new features (e.g. HDR).
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
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.
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.
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?
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.
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)
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.
* 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.
It takes longer to undo it than to start fresh.
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.
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.
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
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.)
I think the UI should adapt to the user inputs instead of trying to dictate to the user how to work.
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).
Example:
Hit Ctrl-F10, type part of the title of a window, use the arrow-keys to pick the one you want.
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.
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.
It was different enough to be a thing we playfully argued about often.
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.
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.
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).
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 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.
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 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
All the alternatives I tried have huge technical barriers to entry.
* 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...
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.
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?
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.
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.
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
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
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'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.
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?
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.
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 ?
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'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.
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
https://blogs.gnome.org/tbernard/2023/07/26/rethinking-windo...
(hn link: https://news.ycombinator.com/item?id=36880235)
whatever happened to it
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.
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
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
I really, really can't recommend PowerToys enough.
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)
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.
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.
* 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
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.
? I heard there are some.
_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?
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.
man fvwm2rc