Tiling window manager users: how exactly do you use yours?
Do you have advanced keybindings for bringing up frequently used programs?
Are there less common layouts you use frequently?
Do you use any advanced or fancy features?
I read this as “tilting window manager” and was about to get so upset. That diagonal monitor meme has infected my brain
this one? =]
that’s so much more in depth than the lemmy post I saw 😭
I have a very unusual workflow. In addition to not stacking windows, I don’t minimize them either. Instead, I spread them out over many workspaces. Per workspace, I usually only have 1 or 2 windows, but I ‘group’ workspaces to keep semantically related windows together.
And I do that, by having all workspaces in a column and just placing windows in neighboring workspaces + leaving workspaces empty between the groupings. I also have a minimap for my workspaces in my panel, to just keep track of all of this.I like this workflow a lot, because it maps semantics to location. It feels like a desk where you just place related documents next to each other and might place some documents more in the middle, others in a faraway corner.
This is in contrast to the traditional Windows workflow or the workflow that many tiling folks use, where the first workspace is for web browsing etc…
Those use groupings based on the kind of task you do in them (often effectively being tabs in an application), like web browsing. They don’t group by the topic, e.g. you might frantically research ants and use a separate browser window, separate text editor etc., all grouped up for ants.Now, traditional use of workspaces does allow this grouping by topics, by just assigning each workspace a topic. But personally, I found that too static.
Like, yeah, I have some larger, completely distinct topics, but often I’ll just quickly research bees and that’s kind of ant-related, but doesn’t need to be fully mixed with that either. I’d rather just place it to the side of the ant stuff.That’s pretty much what I do as well. It was an absolute game-changer for me when I discovered tiling WMs some ~7 years ago, because it meant super consistent keyboard shortcuts for getting to exactly what I wanted to interact with. I know where individual apps/tasks go, so I put them there. And then when I need to switch to them, it’s as straightforward as Super+[workspace].
Also helps a ton that i3wm’s workspaces only take up a single monitor at a time, which makes it excellent for jumping between monitors.
None of this is set in stone, but I usually follow a relatively consistent pattern:
Center Monitor
- 1: Primary/“serious tasks” web browser
- 4: Any remote or virtualized desktop I might have open at the time
- 6: Image/video editors. Also sometimes just misc usage.
- 8: Development web browser next to neovim
- 9: Steam/games
- 10: Misc. Often a DBMS or file manager
- 11: Misc. Often where I put any secondary tasks or second projects I need to reference
- 12: Misc. Often where I’ll stick any long-running tasks that I just need to check on every now and again.
Left monitor
- 2: Music/comms/task list
Right monitor
- 3: Always only a terminal.
- 5: Text editor to use as a
- 7: Secondary/“wasting time” web browser
There is two of us. Sidenote: my workspaces are all named after the topic they represent. E.g. dots, htmxpoc…
I don’t do that (again, too static for me), but I have larger meta-workspaces still, which group 20 workspaces each into very big, very distinct topics like “Orga” and “Work”.
I do this too, but additionally group these outputs strategically on my 4 displays. I never thought of it like a desk with papers on it but that’s very much what it is. And also how I organize papers on the few occasions that I do that.
I mostly work in qtile in a fullscreen layout or a diagonal split between two windows. My hotkeys are super+d for rofi in dmenu mode and super+q for a shutdown menu also in rofi.
I use mod+enter or mod+~ (the key is called grave) to open rofi
mod+q closes the program while mod+shift+q opens rofi-power-menu which is what I use to reset, shutdown, logout, etc
mod+d is part of my navigation keys, that way I can move focus or programs around with just the left hand:
mod+esdf to move focus
mod+shift+esdf to move the window
mod+control+esdf to resize the window
I don’t do anything interesting. I’ve got the ten workspaces, and win+p to start stuff.
The only interesting thing is win+PrintScrn, which takes a screenshot to /tmp, and then opens it in pinta to crop.
Actually I also have win+z bound to turning off the laptop screen. That’s all I can remember
i3 here, mine is very different from the usual, I made it to use the left hand as much as possible:
How I launch commonly used programs:
bindsym $mod+F1 exec --no-startup-id pgrep librewolf && i3-msg "[class=LibreWolf] focus" && dunstify -r 34 -t 1500 "LibreWolf" || librewolf | dunstify -r 34 -t 2000 "Launching non-XDG Compliant Software: LibreWolf" bindsym $mod+Shift+F1 exec --no-startup-id librewolf | dunstify -r 35 -t 1000 "New LibreWolf Window" bindsym $mod+F2 exec --no-startup-id thunar bindsym $mod+F3 exec --no-startup-id pgrep deadbeef && i3-msg "[class=Deadbeef] focus" && dunstify -r 36 -t 1500 "DeaDBeef" || deadbeef | dunstify -r 36 -t 2000 "Launching DeaDBeef" bindsym $mod+F4 exec --no-startup-id pgrep ferdium && i3-msg "[class=Ferdium] focus" && dunstify -r 37 -t 1500 "Ferdium" || ferdium | dunstify -r 37 -t 2000 "Launching Ferdium" bindsym $mod+F5 exec --no-startup-id pgrep freetube && i3-msg "[class=FreeTube] focus" && dunstify -r 38 -t 1500 "FreeTube" || freetube | dunstify -r 38 -t 2000 "Launching Freetube" bindsym $mod+F6 exec --no-startup-id pgrep steam && i3-msg "[class=steam] focus" && dunstify -r 39 -t 1500 "Steam" || exec steam | dunstify -r 39 -t 2000 "Launching Ruthless non-XDG Compliant Software: Steam" "(Also fucks your screensaver lol)" bindsym $mod+F7 exec --no-startup-id pgrep yuzu && i3-msg "[class=yuzu] focus" && dunstify -r 40 -t 1500 "yuzu" || gamemoderun yuzu | dunstify -r 40 -t 2000 "Launching yuzu"
If the program is already opened and I press the key it will focus on it instead of opening another window, to open another window for the browser I need to press Shift. (And yes I have some beef against programs that don’t follow xdg base directory specs lol)
For navigation keys, I use esdf instead of wasd, I can also use the arrow keys:
bindsym $mod+Shift+r layout toggle splitv tabbed splith bindsym $mod+r layout toggle splith tabbed splitv bindsym $mod+q kill bindsym $mod+z split toggle bindsym $mod+g fullscreen toggle bindsym $mod+Shift+space floating toggle, resize set 710 400, move position center bindsym $mod+Mod1+space floating toggle bindsym $mod+space focus mode_toggle bindsym $mod+Shift+x move scratchpad, exec --no-startup-id dunstify -r 33 -t 1500 "Window Moved to Scratchpad" bindsym $mod+x scratchpad show, exec --no-startup-id dunstify -r 33 -t 1500 "Scratchpad Show" bindsym $mod+Left focus left bindsym $mod+Down focus down bindsym $mod+Up focus up bindsym $mod+Right focus right bindsym $mod+a exec --no-startup-id ~/.local/bin/scripts/togglefocus.sh bindsym $mod+s focus left bindsym $mod+d focus down bindsym $mod+e focus up bindsym $mod+f focus right bindsym $mod+Ctrl+Left resize shrink width 100 px or 15 ppt bindsym $mod+Ctrl+Down resize shrink height 100 px or 15 ppt bindsym $mod+Ctrl+Up resize grow height 100 px or 15 ppt bindsym $mod+Ctrl+Right resize grow width 100 px or 15 ppt bindsym $mod+Ctrl+s resize shrink width 100 px or 15 ppt bindsym $mod+Ctrl+d resize shrink height 100 px or 15 ppt bindsym $mod+Ctrl+e resize grow height 100 px or 15 ppt bindsym $mod+Ctrl+f resize grow width 100 px or 15 ppt
I had to use an script for mod+a because i3 can’t use the same keybind to focus parent and focus child (I use it like select all thing).
The default config of i3 has a resize mode, I got rid of all of that, it is much better to use mod+control to resize lol.
I also have the mouse side buttons to control media playback as well as making the window float with middleclick:
bindsym --whole-window $mod+button2 floating toggle, resize set 710 400, move position center bindsym --whole-window $mod+button9 exec --no-startup-id playerctl next bindsym --whole-window $mod+button8 exec --no-startup-id playerctl previous bindsym --whole-window $mod+Shift+button8 exec --no-startup-id playerctl play-pause && sleep 0.2 && playerctl metadata --format '{{ status }}: {{ title }} by {{ artist }}' | xargs -0 -I {} dunstify -r 11 -t 2000 "Playback" "{}"
edit: lemmy can’t display && when I paste it as code lol
I use hyprland My browser and daemons are autostart and I’ve some keybinds
App launch
Mod + e file manager (thunar) Mod + d app launcher (fuzzel) Mod + return terminal emulator (foot) Mod + b btop Mod + c cava
Window control
Mod + q close window Mod + space toggle float mode Mod + f toggle fullscreens mode
Former Xmonad user here.
I had two 5 screens and two columns. One screen was for terminal emulators, one was for writing code and software development, one was for my web browser, 2 others were for miscelaneous things, but most often were for working with files a GUI file browser like Nautilus or Thunar, or for reading PDF files in Evince, or reading PowerPoint or Excel documents in LibreOffice.
On each screen the tiles were always in 2 columns. The left for doing work, writing code, prose, drawing graphics and charts, interacting with the CLI, and so on. On the right was documentation: manual pages, PDF files, HTML documents, sometimes the MPV video player window when watching a tutorial that I was able to download from YouTube.
The right column usually had no more than 3 windows open, they started to get too narrow to be useful if more than that were open. I would occasionally horizontally split the left column as well, usually when going back and forth between two documents I was editing.
However…
I did not use this workflow once I started using Tmux, and then I continued not using this workflow when I switched to Emacs. The reason is of course because Tmux and Emacs both provide their own tiling windowing system that operate within a single application window. So my main workflow was always in a single maximized terminal window, or a single maximized Emacs window, or a single maximized GIMP window. Only occasionally would I un-maximize these windows, but then to keep it from getting too small, I would set it in “floating window” mode. Also my web browser, PDF reader, GIMP, LibreOffice, all worked better in full-screen (maximized window) mode. Even Thunar (GUI file browser) has multiple tabs, and a multi-column mode which was useful for the very few times I ever needed a GUI file browser.
At one point, I actually changed my tiling window manager configuration to always open windows maximized, except for Thnuar (GUI file browser) which would open in floating mode, not tiling mode. At that point I finally realized that I don’t really using a tiling window manager at all, it is just there managing windows the same as a non-tiling window manager would do.
I switched back to the Xfce default window manager, and quit worrying about window managers all together.
Gnome + pop shell extension. Normal i3 tiling keybinds. All the following bindings include super. w for tabbed layout, f1 for calculator, f2 for Firefox, f3 for nautilus, f4 for settings, f5 for package manager. D for search which I can use like dmenu but much better. Shift+s for screenshot. Shift+q to quit application. I program with in the terminal so I need tiling for keyboard-only use. when I first used i3 I underrated tabbing. It solved nearly all of my problems with tiling.
I have mod+c for the calculator:
bindsym $mod+c exec --no-startup-id pgrep mate-calc && killall mate-calc || mate-calc
mod+c opens it and if I press mod+c again it will close it instead. Same trick with mod+b for pavucontrol.
edit: lemmy can’t display && when I paste it as code lol
So, I use keybindings for my browser, terminal, file manager, run launcher, Screenshots (latest addition), music player, and a few other things, but almost everything else is for window management such as changing layouts (which I never use), Promoting a Window to master, moving a window up and down the stack, closing the focused window, switching between workspaces and moving windows between workspaces.
For me, the most used features of a tiling window manager are keybindings, workspaces and then tiling, in that order. I usually keep my windows either maximised or as 2 windows next to each other. I sometimes use 3 windows in a workspace, albeit rarely, and I pretty much never use 4 windows in the same workspace.
In terms of workspaces, I use my 9th (last) workspace for my music player, and the other workspaces for other things depending on what I’m doing. I know some people have a workspace for web browsing, a workspace for programming etc. but I have a pretty dynamic range of things I use my device for, so I don’t have the workspaces marked for a specific use.
For example, in the last few days, I found myself following the updates for a game I play so discord was opened on workspace 8. I needed 3 vscodium windows and 2 workspaces with a total of 5 terminals between them. That’s 5 workspaces total. I also had a workspace with 2-3 browsers where I would change between them when needed (meaning I would have 1 maximised and then maximise another when needed, hiding the others under it), with discord on the 8th workspace, and cmus, my music player on the 9th. I think only 1 workspace was free at that time. So safe to say, I use my workspaces a lot.
In terms of my layout, I have used, currently use, and will continue to use a tiling (master and stack) layout where the new window is spawned at the bottom of the stack (rather than at the top, or after the currently focused window), with the master window on the left, and the ratio between the master and the stack being 0.5 (meaning the master window takes half, the stack splits the other half). That way, I can have, for example, my browser on the left, a terminal on the right, and if I temporarily need a file manager for something, it will open at the bottom of the stack, under the terminal, regardless of where my mouse is (I use dynamic tiling), with minimal changes to the layout of other windows (My browser is still on the left, my terminal is still on the right, and as my terminal remains on the top right, it means that there is no need for me to readjust to a different window layout because I spawned a new window for a few seconds.
So yes, that’s the workflow I use and have used for a while. As I’m on Hyprland, I decided I might as well use the animations available, and I think I’m running the default in terms of animations and rounded corners. One of the things that sold me on Hyprland were the rounded corners, with the animations just being a nice benefit. I have ran Hyprland both with and without them, and it really doesn’t change anything for me. In fact, they are so unimportant to me that I had to check if I had them activated right now to see if I use them, and yet when I do occasionally notice them, I enjoy the fluidity that they create. I have also recently decided to “upgrade” my setup a bit and I changed the “Brightness:”, “Mem:”, “CPU:” and other text indicators, to icons, and habe mande the bar rounded and floating, and it looks so much better. While I was at it, I wanted to changed the Wayland icon, which was a bit blurry, to an Arch icon, and prepared a config with a NixOS icon, as I plan on switching to NixOS full time eventually.
If there is anything else you are interested in or have questions about, feel free to ask.
simplicity, there is a comfort from not having to position windows for mutitasking
AwesomeWM:
- 3 tags (term, web and files)
- A different layout for every tag (CornerSE, Maximize and Fair, in that order)
Super+/
for a hotkey listSuper+P
for rofi-show run
Super+C
for a scratchpad withprofanity
Super+V
for a scratchpad withcmus
Super+X
for a scratchpad with notesSuper+~
for a quake term- Most of the default Awesome keybindings
In the files tag I run terms and Thunar, in the web tag qutebrowser and everything else in the term tag.
I just use Super+p to run commands. Awesome and custom keybidings are to easily move between tags, windows and monitors, not to launch programs. I use nvim for coding and this combined with awesome means I can do a lot without touching my mouse. At work I use Cinnamon and IntelliJ tools and it’s just less ergonomic. Not a huge difference but I definitely prefer my home setup. In general all Linux WM I used over the years were easy to configure and get good experience. The worst environment I had to ever use was OS X. I just hated all their weir solutions like the launch bar and the common menu bar on top. On Linux I never had any issues.
All i need is https://github.com/paperwm/PaperWM it’s a tiling feature for GNOME
Advanced keybindings are Meta+1,2,3,…, to launch the pinned apps
I had to remap some important keys
- Meta+Space for a scratch window (floating window), disabled other scratch commands
- Meta+Tab - cycle through windows
- Meta+Shift+Tab - cycle through windows left (like tabs in a browser just with Meta)
I’m also a PaperWM fan. For switching I mostly use spatial window-switching controls: Meta+ left/right to switch windows, page up/page down to switch workspaces. Plus I use Gnome overview’s search-driven app finder, and Advanced Alt-Tab Switcher but only for its fuzzy search feature to switch to specific windows within an app.
PaperWM has an option to hide windows in a “scratch” layer. I put chat and music programs there, and summon them with AATS.
I have an ultrawide monitor, and I put a terminal and editor side-by-side in a ¼-¾ ratio. I set browser windows to ½ width. Those ratios let me see important parts of a browser window next to the editor if I slide the terminal out of view to partially expose a browser on the other side. Or I can move the terminal next to the browser and see both fully.
i use bismuth / polonium on KDE. both are very bare bone, but it’s nice to have a full plasma desktop + tiling.
let me know if you happen to know a better combination
Using i3, I have a screen shot utility bound, a gif maker bound, and also I have a smart light which i turn on and off via an HTTP request, also bound in i3.