Skip Navigation
161 comments
  • desktop 1 for what i should do, desktop 2 for the rest. when the door opens switch to desktop 1 lightning fast

  • Desktop 1: Browser

    Desktop 2: Discord

    Right monitor (set to show on all desktops): Youtube/Steam

  • Tier 1: Linux virtual consoles. Switch among these with Alt-F1 through Alt-F8. Control-Alt instead of Alt if in Wayland. I have seven with a text terminal and Wayland on the eighth. This tier supports showing only one virtual console at once.

    Tier 2: Inside the Wayland virtual terminal, Sway managing virtual desktops. I use nonstandard keybindings here: Super-1 and -2 to cycle left and right, and Super-Q n to go to the n-th desktop. Beyond the first ten desktops, I can use Super-R to rename a desktop to a "named" desktop. For cycling purposes, these come after the first ten. This tier supports showing only one desktop at once.

    Tier 3: Inside a Sway virtual desktop, windows managed by Sway. This tier supports splitting, showing multiple windows at once. I use nonstandard emacs-style keybindings, Super-F/B/N/P to move among those. These are often running a virtual terminal program, foot. I don't use a multiplexing terminal with multiple "tabs", because I favor a more minimalist setup with fewer tiers.

    Tier 4: Inside a Sway-managed window, mosh. This tier isn't always present; I only use this tier if I'm using a remote system. Mosh has its own concept of sessions. These can be used in conjunction with Tmux's sessions --- mosh's system is designed to smooth over connectivity issues. Lose network connectivity and mosh will display a message. Hibernate a laptop for a month with a mosh connection open to another machine, open the lid, and mosh will transparently re-establish its connections as if there had been no interruption. I mostly use mosh to reduce perceived latency, but the connectivity stuff is neat. Not much interaction with this tier, short of force-exiting with Control- . and this tier only supports showing one session in a terminal at once.

    Tier 5: Inside a mosh session, tmux sessions. Tmux has its own set of sessions, which one can attach to with tmux attach. This tier only supports showing one session at once.

    Tier 6: Inside a tmux session, tmux windows. I use a nonstandard prefix key for tmux (and GNU screen) to reduce friction with emacs --- Control-O. I use emacs-style keybindings to cycle among windows --- Control-O Control-N/Control-P. This tier does support splitting to show multiple tmux windows at once, though I don't use that functionality.

    Tier 7: Inside a tmux window, I run a bash shell process. Bash supports job control. Control-Z to suspend the current job and return to bash, jobs to list jobs, fg %n to activate the nth job.

    Tier 8: Inside a bash job, I might be running emacs, and that has emacs frames. If you're using graphical emacs, each frame corresponds to a window in your windowing environment. In terminal emacs, each is basically another invisible layer that you can switch among. C-x 5 2 to create a new frame, C-x 5 o to cycle, C-x 5 0 to destroy. This tier does not support showing multiple frames at once.

    Tier 9: Emacs buffers. Each "buffer" might be a text file, a email client with mu4e, an LLM chat session with ellama, a "spreadsheet" with an org-mode table, whatever. One can show multiple emacs windows and assign a buffer to each emacs window (emacs has its own concept of windows, which kinda correspond to "panes" in most programs). Emacs has many systems for switching among these, but I mostly use one of two fairly vanilla add-on packages, either C-x b for ido-switch-buffer to switch among buffers using tab-completing names, or C-x C-b to use ibuffer, which provides menu-based selection.

    Tier 10: Usually not something I use in conjunction with emacs, but if one is running a bash instance in an emacs shell-mode buffer (M-x shell), then bash's job control comes into the picture. Emacs shell-mode requires one to prefix each bash control key sequence with C-c, so C-c C-z to suspend the current job, and return to shell, jobs to list current jobs, and fg %n to activate the n-th job. Can only show one job at once.

    EDIT: You could maybe make an argument that there's another tier between Tier 7 and Tier 8, because I use an emacs feature called desktop.el that persists an emacs session, including its frames and windows and open buffers and all across invocations of emacs for a given project. But I rarely use this, so it's not normally in the stack. If it's there, you can only have one active at once, no "split desktop.el" functionality.

    EDIT2: I take it back. I had workspace renaming set up in i3, but never pulled that configuration over when I switched to sway. So just the basic 10 workspaces.

    • Crank that knob up to 11: Using multiple computers simultaneously to manage all your shit—with some having special hardware dedicated to the task!

  • I am one of the people that never uses them, and I think I finally realized why: ADHD.

    I usually turn them off, and if there's a part of the GUI dedicated to them, I disable that too. I thought it was to save screen space, but honestly I think it's more so that I won't lose windows to virtual desktops I forgot existed.

    I think the tendency to forget things and to occasionally space out and forget what I'm doing has led me to value persistent visual artifacts of whatever I'm doing. That means a visible taskbar with the clock, system tray icons, and application icons, plus terminal windows even if they are idle. Somehow, scanning back and forth across 4 monitors -- even if virtual desktop people reading this can do it much faster their way -- just works better for me.

    This touches on something that's actually much deeper that I have been doing for myself:

    Sometimes if you do things in a way that plays nicely with your personal neurospice cocktail rather than the more efficient way you "know" that you "should" be doing them, it just makes your life better and that is the whole damn point for why we are working on the computer in the first place.

    I can absolutely see myself buzzing around virtual desktops with keyboard commands. I have experimented with desktop setups in the past. I remember for a while in college I was running some kind of 3D desktop program where I had a virtual space where I could move windows and icons around. You could hang images floating in the air like paintings. And this is on 25 year old hardware! I think my GPU was a Geforce 2 GTS. Giga-texel shader baby!

    1. where I put all the shit I'm currently working on and totally forget about it.
  • At work I tend to have like 3 workspaces just for stuff I need to be doing. Different projects. My second monitor tends to be reserved for the documentation etc that I need for that project. Then there are multiple workspaces with terminals for ssh, screenshares, and other terminal hackeroni. And one for messages etc.

    I prefer to use i3 or away for this but unfortunately not every workplace lets you have that

  • I have 3 screens:

    1. Main screen for whatever i'm doing incl Browser
    2. Gaming screen wiith Steam and Heroic Launcher
    3. Comms - Signal, emaiil, discord, everything KDE Connect
    4. random shit not fitting anywere
    5. Piracy town: qbittorent, jdownloader, Browser with MANY sources

    The second one has many many status widgets, Dolphin, fSearch and a Firefox window that's my media player, always in the background without any title bars or borders running the deezer webpage as WPA

    The third one is connected with a 10m HDMI cable and is not running often, is just used to watch movies :-)

  • Lordy.

    I've always used virtual desktops, but my life changed when I realized I could chain tags in herbstluftwm. Now I have music player, visualize, & todos always on monitor 1. Then I have Meta-[1-5] bound to switch monitors 2 & 3 in sync between virtual workspaces:

    1: programming, web on 2, editor on 3 2: remote, terminals into VPSes and LAN computers, and gotop 3: communications, IM chats on 2, email, Matrix, irc, discourse, SMS bridge on 3 4; random, Factorio or movie on 3, and often Vial on 2, because. 5: more random, usually Darktable, Gimp, Inkscape or some combination depending.

    I don't have 6-9 bound, because 4 or 5 are usually free for whatever.

  • I typically keep three virtual desktops, one "main" one with what I'm working on, a second one with communications, like email and slack and whatnot, and another as basically blank space to put stuff that I need open but doesn't have anywhere to go.

  • not sure if a virtual desktop is the same thing as workspaces in Gnome, but what I do is I only really open one window in one workspace. The first window I open since system startup goes into the first workspace, etc. Usually the first one is the browser (Librewolf).

161 comments