What's your workflow?

I just wanted to say how much I’ve been liking Hyprland, even after trying Niri, which is good stuff right out of the box but missing the special workspaces.

Anyhow, I just wanted to share my the big lines of my own workflow and discover how YOU are using it too. Curiously enough I’ve not found a thread of people talking about it here, probably skill issue on my end.


So here I go :

I have 2 monitors, and have given each 6 dedicated numerical workspaces (could be extended to 9 each, but so far 6 has been fine).

I installed Hyprscrolling, cause the infinite horizontal scrolling is awesome. I did set it so that a column always takes the whole screen, and I keep one app per column. Aka, only maximized apps.

I don’t use a bar, kept the vanilla hyprlauncher as it does all I’m asking for.
Deactivated the animations.
Installed Gammastep (night light automation).
Created a dirt simple TUI app to pick the audio output I want (speakers or headphones).
Configured the tablet ( color me impressed how well the tablet itself can be configured, can’t say for the buttons on it though as I just don’t care about em)

as for the bindings (all using SUPER) :

  • one to switch the focus to the other monitor - use all the time -
  • I and K for navigating from workspace to workspace on the current monitor. - use all the time -
  • J and L for navigating from window to window on the current workspace. - use all the time -
  • N for moving the current window to the workspace (ws) on the other monitor. - rarely -
  • M starts the “move” mode. - sometimes, mostly when restoring web session -
  • G starts the “goto” mode. - sometimes -
  • for both this mode, 12 keys are used for workspaces, WERSDF for the ws on the left screen, UIOJKL for the ws on the right screen
  • 4 bindings for special ws that also launch specific apps, like one special ws for a password manager, another for a todolist, these kind of utilities you may need at a moment’s notice. - often -

Had I not have Gnome already installed, I would have taken care of getting or creating a dashboard for managing wifi connections, but well… it’s not a priority maybe later.

So 98% of the time, I have neovim on the left monitor, and the web browser on the right monitor. Firefox with the extension “vimium C” makes Firefox pretty good actually.

To me, this feels pretty natural, simple and intuitive. Love it.

I’ve often wondered about other’s workflow as well, I’ll try to describe mine

I use a single 34” monitor. So, Everything takes place on the single monitor. I do not reserve workspaces.

My preferred layout is Master. After years of using dynamic tilers such as DWM, Awesome, LeftWM I find it hard to use anything else.

I do use Waybar. I like having a system tray, clock weather, media information and workspace indicators.

I have a special workspace set up that runs a foot terminal. Works as a quick dropdown terminal from any workspace.

I left the default animations in place. Just a little bit of fun for the workspaces.

For plugins I am using hyprEasyMotion, dynamic-cursors. I have hyprexpo installed but have found that I never use it.

I do not use the hyprland bindings. Instead I use GitHub - houmain/keymapper: A cross-platform context-aware key remapper.. It gives me more capabilities for keybindings then does hyprland. This is similar to how bspwm handled keys. I allow keymapper to call hyprctl dispatch for the keys controlling hyprland. In addition I can remap keys at an application level.

I use Rofi for my menu needs.

I try to keep things simple and geared toward my needs. As a result I haven’t tried any of the quick shell dotfiles.

1 Like

Huh ! houmain/keymapper looks pretty cool, I didn’t know it ! The fact it offers some functionnalities that are usually done at keyboard firmware level is pretty nice.

How well does it play with all the different apps and games ? I mean it reminds me a bit autohotkey, and I remember some apps grabbing input before the hook of autohotkey takes place. Does it suffers from similar limitations in some instances ?

I made a custom xkb layout so there’s little chance I use it, but it covers a lot more stuff… I sure bookmarked it :slight_smile:

I’m not sure how well keymapper works for games (I don’t game). I do know that it grabs the keys at a super user level and passes them down to another server at the user level to get the translation then does the actual keypress at the super user level so it may be grabbing before any of the apps have a chance to look at the key.

ok, I guess I’ll see for myself whenever I use it :slight_smile:

First of all, Hypland would be basically unusable for me if not for the existence of split-monitor-workspaces, hopefully this will become a first-party feature at some point (pls vaxry).

generic

very basic config, mostly based around the hypr* ecosystem. basic waybar

at work

Laptop connected to an ultrawide monitor.

  • Laptop screen handles misc stuff, mostly chat clients, music, and the ocasional windows vm, one workspace per app.
  • Ultrawide has a browser on the left, and one or more code editors on the right (tabbed, bound to ALT+TAB) on the first workspace. Additional workspaces are used ad-hoc, for remote desktop clients and other misc apps.
  • SUPR+` is bound to a special workspace. It always has at least one terminal + additional temporary apps like calculator, file browser, ftp client, notepad, etc.

Primarily using the touchpad for mouse movement and workspace switching or direct SUPER+number.

at home

PC, same config, two normal monitors, secondary monitor is on the right, handles the same misc functions as the laptop screen, and since the primary isn’t an ultrawide, it’s one app per workspace with splits only being temporary for stuff like file managers.

Using SUPER+scroll for workspace switching, or direct SUPER+number.

things I miss:

automatic workspace deletion and insertion. Aka if I have workspaces 1, 2, 3, 4, when I close all windows on 2 and leave it, 2 remains empty instead of 3 and 4 moving one to the left to fill the gap. This is partially avoided by using m+1 and workspace_swipe_use_r=false but it still looks ugly on the bar, is limited by the number of workspaces created per monitor in the plugin, and provides no easy way to create new workspaces in between existing ones without moving anything manually first.

Sure, this could be scripted, but on GNOME and even Windows 11, this “just workstm”. This, of course, relies on per-monitor workspaces being a first-class feature, otherwise it’s a hack on top of a hack. I much prefer moving windows between minitors then moving workspaces between monitors. The second is only good if your workspaces have a pre-defined purpose; mine don’t, only the first one does.

3 Likes

I’m a bit late to the party but here we go.

Preface for context: I switched to hypr* after spending a long time on a heavily customized version of XMonad (7-8yrs ish) so much of my workflow is relatively ingrained and how I use Hyprland might seem odd.

Disclosure: I created hyprdyn ( my custom ws/window utility ), I will not link it here. Keeping this focused on the why and how of my workflow.

Hardware / peripherals

  • 3 Monitors, all landscape in parallel.
  • Ortholinear keyboard semi-split layout. (mods in split, thumb-centric spacebar/return)
  • Swap between regular and trackball mouse.

General DE packages

  • hypr* ( idle, lock, paper, etc)
  • waybar
    • Only center monitor w/ all-outputs on for workspaces.
    • Left: [ Icon/boot-menu, window title ]
    • Center: [ workspaces, cpu, memory, systemd-failed-units ]
    • Right: [ mediactl, tray, volume, time/date ]
  • ulauncher
  • hyprdyn (custom workspace/window utility)
  • clipse for clipboard management

Workspaces

I prefer named workspaces ie. (home, work, dev, etc.) and consider them to be ephemeral more-so than pre-configured with the exception of the workspaces I generally want on startup. To add to it, I typically want to swap workspaces between monitors or the foreground/background. I have a dedicated special workspace for stuff like slack, music, weather etc. and treat it like a hud. Workspaces that aren’t in the foreground & w/o active windows, Hyprland automatically removes which works well enough for me treating them as ephemeral.

Coming from XMonad with a customized version of the DynamicWorkspaces action, Hyprland has all of the tools to replicate that functionality but the stumbling point for me was how to bind the type of functionality I was looking for. Simple bindings or scripts weren’t really working out for what I wanted and the only alternative I could find was a severely out of date python script that someone else with a similar situation had tried to piece together. So I built my own utility to auto-complete workspace names and handle the messy bits of patching together a few dispatchers to get complex workspace and window actions going.

My typical binding is meta+s to pull up the workspace util then n>tab>return, for example, to switch to or spawn my “news” workspace. Expanding on that, if I want to send a window to that workspace meta+shift+s on the active window. And finally, the complex action I generally want when the workspace doesn’t exist first, meta+shift+s on the active window then n>tab>shift+return to create the “news” workspace, send the window there and follow making the new workspace active on the current monitor. Regularly though, I’ll start something like a non-interactive ssh tunnel forwarding ports and send it to a new workspace like “tools” in the background with meta+shift+s. Renaming a ws is meta+r for me and meta+h to go to or re-create my default “home” workspace.

I’m looking forward to 0.54.x being more stable. Currently I’m primarily using only the dwindle layout but the new scrolling layout looks like it might be able to fill in the blank of my custom layout I used to call “carousel” on XMonad. Basically was just a lateral switcher between windows in the workspace.

Applications

  • Neovim :)
  • Zen browser
  • Nemo (file manager) but I rarely use it, mostly ranger in term
  • Alactritty + tmux: Start tmux in rc with exit in the parent shell so Alactritty exits with tmux.

Typically I’ll have one monitor with one or two browser windows (docs & whatever I’m working on) on the right. Alactritty + tmux up center for most of my needs. And one monitor left for tools, logs, database stuff etc.; this one usually I’ll be swapping between workspaces per relative domain of the tools I’m using.

Notable mentions

I use these daily but they aren’t the mainstays.

  • LibrePCB - Love it for quick custom SMD projects.
  • Show Me The Key - Great for situations when you’re screen sharing while using a TUI. (k9s, lazydocker)
  • Gradia - annotate screenshots with style

Overall look & feel

Generally lean towards the minimal side, left animations as-is from the default config I started with. Status bar takes up as little height as possible w/o being unreadable white on grey with a tiny bit of transparency. Minimal gaps and dark-ish window borders. The only eye-candy I customized was to add transparency to inactive windows to have a bit of a “focus” effect on the active window.


A bit of a dump of my thoughts on workspaces.. would love to know if the way I think about workspaces is truly odd. Spent so long using XMonad it hardwired workspace workflows for me.