The desktop
W desktop = the Hyprland compositor with the Quickshell UI on top. Both are configured by W's theme; the tools you touch day to day are the ones below.
Windows and workspaces
Hyprland is a tiling compositor: windows tile automatically, and dragging a window's titlebar into another turns them into a resizable split. The basics:
- Move focus with Super+Arrow, move windows with Super+Shift+Arrow, switch or move windows between the first ten workspaces with Super+(Shift+)1..0.
- Window groups: Super+G groups two windows into a tabbed group (W styles the group's tab bar); Super+Tab cycles inside one.
- Super+F / Super+Shift+F fullscreen (real and fake-fullscreen), Super+M maximize, Super+Shift+Space float/untile, Super+Shift+C center a floating window, Super+P pin it above everything.
- Super+R resize mode, Super+S the scratchpad (a parked window you summon back on the current workspace).
- Per-app window rules (always float this app, open it centred at a fixed
size…) are drop-in files: W's own live in
/usr/share/w/hypr/rules.d/, yours go in~/.config/hypr/rules.d/<app>.luaand win over W's for the same app — a file that callshl.window_rule({ match = { class = "^(app)$" }, float = true }), thenhyprctl reload. - Open / Save dialogs float and open at one size (1000x640). Resize one once
and GTK apps keep that size everywhere. If every app's dialog suddenly opens
full-height, reset the saved size:
gsettings reset org.gtk.Settings.FileChooser window-size. - The full, rebindable list lives in Hub → Hotkeys.
The shell surfaces
- The bar at the top: workspaces, active window, tray, clock, and status blocks (updates, network, audio). Which blocks it shows — and on which monitor — is set in Hub → Appearance → Bar.
- The launcher (Super+D) starts apps and carries W actions (lock, screenshot, screen recording, calendar).
- The Hub (Super+Space) is the control center — see the other guides.
- Clipboard history (Super+V) searches what you copied; entries persist across reboots.
- Notifications appear in the top-right. A left click opens the source —
it switches to the app's workspace, focuses its window (restoring it from the
tray) and lets the app show the chat or tab; a right click dismisses one card,
a middle click dismisses them all. Hub → Notifications (and the
w-notifycommand) manage do-not-disturb and per-app muting. - Volume and brightness popups open from their keys; they show levels live like any desktop's OSD.
Sessions that come back
When W's session memory is on (default for new installs), logging out — or locking for longer than the configured interval — parks your windows and brings back the same layout at the next login, including files open in the terminal. Hub → System → Session chooses: always restore, always start fresh, or off. Super+O saves or applies a named, reusable layout.
Do-not-reopen apps (e.g. a password manager you want empty after every login)
are excluded in the session settings; see w-session for the details.
Window groups (tabbed windows) come back as groups, tabs in order. What is inside a window is each program's own memory: browser tabs return only if the browser restores them itself — in Firefox, Settings → Home and startup → "Open previous windows and tabs"; W does not switch that on for you.
Screenshots
Three keys, all of which land you in the same place — a frozen copy of the screen you can draw on straight away, with the toolbar next to your selection. Nothing else opens: copy, save or pin the result from that toolbar and it is gone again.
| Key | Captures |
|---|---|
| Super+I | the monitor you are on, already selected |
| Super+Shift+I | nothing yet — drag the area you want |
| Super+Ctrl+I | the focused window, already selected |
The editor's Save button asks where and under what name, opening on the
Screenshots folder inside your pictures folder. Two more keys skip the editor
entirely and write the file straight there, no questions asked:
| Key | Saves |
|---|---|
| Super+Alt+I | the focused monitor |
| Super+Ctrl+Alt+I | the focused window |
Files are named W-<date>_<time>.png. The annotation colours and font follow
your theme, and every key here is rebindable in Hub → Hotkeys — including
unbinding the two you do not want.
The editor is Flameshot. W also ships the older one, Satty, for the case where
Flameshot misbehaves on your hardware — pick it under Hub → Displays → Screen
capture → Editor (or w-screenshot set ANNOTATOR satty), and it opens from the
next capture on. Satty shows the shot at its real size, and a selected region opens
right over the spot you selected, with the toolbars around it. Whichever is set, w-screenshot carries the full set of modes for scripts and the CLI,
including the ones with no editor at all (--copy, --save).
A window shot taken without an editor (--copy, --save) or opened in Satty comes
out with transparent rounded corners, and — Hub → Displays → Screen capture → Add
window shadow, Yes by default — a soft shadow like on macOS
(w-screenshot set WINDOW_SHADOW no turns the shadow off). Flameshot saves its own
frame, so it gets neither; for the finished look use the instant window keybind or
pick Satty. A translucent window still shows what is behind it: what is captured is
the finished picture of the monitor, not the window's own surface.
Screen recording
Three more keys, on R for record. Each one is a switch rather than a button: press it to start, press it again to finish.
| Key | Records |
|---|---|
| Super+Ctrl+R | the monitor you are on |
| Super+Alt+R | an area you drag |
| Super+Ctrl+Alt+R | the focused window |
Files land in the Screencasts folder inside your videos folder, named
W-<date>_<time>.mp4. A notification confirms the start, and the one at the end
carries the finished path — click it to play the video. You can also stop a take from a terminal with
w-record stop, and ask what is going on with w-record status.
While a take is running, the bar shows a pulsing red dot and the time recorded so far, just left of the Do Not Disturb bell. Click it to stop; right-click it to open the recording settings. It disappears the moment the recording ends, so no dot means nothing is being recorded.
Sound is recorded by default — everything you can hear, the same mix that comes out of your speakers. Your microphone is not in it. One track holds one source, so the desktop and the microphone cannot both be on it.
Everything about the next take is set in Hub → Displays → Screen capture:
| Setting | Choices |
|---|---|
| Encoding | Auto (the graphics card when it can, else the processor), Processor, Graphics card |
| Sound | Desktop sound, Microphone, No sound |
| Format | MP4 (plays everywhere), MKV (survives a crash mid-take), WebM (for the web) |
| Frame rate | 15, 24, 30, 60 or 120 frames per second |
WebM is always encoded on the processor, so it and Graphics card exclude each other — the Hub offers only the combinations that work. A change applies from the next recording; one already running keeps what it started with. The same settings from a terminal:
w-record get # every setting and its current value
w-record set AUDIO mic # narrate instead of the desktop's sound
w-record set FRAMERATE 60
w-record set WINDOW_MASK yes # window recordings: black rounded corners, CPU encode
Two things worth knowing before a long take. Recording a window records the rectangle it occupies at the moment you start, so a window you then move or resize will not be followed — record the monitor if the layout is going to change. And there is no all-monitors mode: Wayland hands over one screen at a time, so a single file spanning every monitor is not something that can be made.