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.
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).
IMO, tiled Quake-style overlay terminals (guake, yakuake, iTerm hotkey window) over floating windows offer the best of both worlds.
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.
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'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.
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!
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.
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 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
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.
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.
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.
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'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.
When I do, I either keep the fullscreen browser on a dedicated desktop or nudge the split point until I'm happy.
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.
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.