# Screenshot shortcut not working
Print Screen does nothing, the picker never appears, or screen recording fails silently on Omarchy 4.x. How to find which part of the capture chain broke.
> **Short answer:** Run the command by hand first: omarchy capture screenshot. If that works, your keybinding is the problem. If it prints jq errors, use omarchy capture screenshot region as a workaround. If the screen looks frozen and clicks are dead, switch to a TTY and run pkill -x slurp, then pkill -x hyprpicker. No Print Screen key? Super + Ctrl + C opens the same capture menu.
- Applies to Omarchy: 3.x and later
- Status: workaround
- Last verified: 2026-09-16
- Canonical: https://omarchylinux.org/fix/screenshot-shortcut-not-working/
_Unofficial community page. Not affiliated with 37signals or the Omacom Foundation. Omarchy is a registered trademark of 37signals LLC._

"Nothing happens when I press Print Screen" covers at least six different faults on Omarchy. The capture chain has a lot of moving parts: a Hyprland keybinding, a freeze layer, a region picker, `grim`, the clipboard, and a notification from the Quickshell bar. Work through it from the outside in.

Checked on 4.0.4 with the shipped scripts from the v4.0.4 tree, and against v3.8.4 for the 3.x differences.

## The fix

### 1. Run the command by hand

Open a terminal and run the command the key is bound to:

```bash
omarchy capture screenshot
```

This is the single most useful step. If the picker comes up here, your keybinding is broken and the capture stack is fine. If it fails here too, the binding is irrelevant.

### 2. Confirm the key is actually bound

On 4.x, press `Super + K` for the keybindings overlay, or print them:

```bash
omarchy menu keybindings --print
```

The defaults ship in `default/hypr/bindings/utilities.lua` as `o.bind("PRINT", "Screenshot", "omarchy-capture-screenshot")`. Your own overrides belong in `~/.config/hypr/bindings.lua`.

On 3.x the shipped default was `bindd = , PRINT, Screenshot, exec, omarchy-capture-screenshot` in `default/hypr/bindings/utilities.conf`, with your overrides in `~/.config/hypr/bindings.conf`. If you copied a binding from an older guide that calls `omarchy-cmd-screenshot`, that name is gone. A 3.5.1 report still used the old name and a 3.6.0 report already binds `omarchy-capture-screenshot`, so the rename happened around 3.6 and an old binding silently runs a command that does not exist. See [custom keybindings lost after Quattro](/fix/custom-keybindings-lost-after-quattro/).

### 3. If you get jq errors and no picker

```
jq: error (at <stdin>:107): string ("null") cannot be parsed as a number
```

`omarchy-capture-region` reads `.activeWorkspace.id` out of `hyprctl monitors -j`. On Hyprland builds where that field is gone, the id comes back as `null` and `tonumber` fails, so no rectangles are collected and the picker never opens. avillagran hit this on an aarch64 M2 machine running a non-release Hyprland 0.56.0 build ([#11903](https://github.com/omacom/omarchy/issues/11903), closed as not planned). The two modes that skip the workspace filter still work:

```bash
omarchy capture screenshot region       # freeform selection
omarchy capture screenshot fullscreen save
```

### 4. If the screen looks frozen and clicks do nothing

Switch to a TTY with `Ctrl + Alt + F2`, then:

```bash
pkill -x slurp
pkill -x hyprpicker
```

Go back with `Ctrl + Alt + F1`. Two separate reports produce this: the hyprpicker freeze layer grabbing keyboard focus so `slurp` never sees Escape ([#5468](https://github.com/omacom/omarchy/issues/5468)), and a stale hyprpicker overlay left behind after a killed run ([#5506](https://github.com/omacom/omarchy/issues/5506)). Pressing Print Screen again only runs `pkill slurp`, so it cannot clear the overlay.

### 5. If you have no Print Screen key

Press `Super + Ctrl + C`. That opens the capture menu, which has Screenshot, Screenrecord, Text, QR Code and Color in it, and it needs no Print key at all.

To add your own binding on 4.x, edit `~/.config/hypr/bindings.lua`:

```lua
o.bind("SUPER + ALT + GRAVE", "Screenshot", "omarchy-capture-screenshot")
```

MacBook users in [discussion #611](https://github.com/omacom/omarchy/discussions/611) found that friendly names like `LBRACKET` do not resolve. zailtz reported that the X keysym name works instead, for example `bracketleft`. Two other commenters found `GRAVE` worked where the bracket keys did not. That thread is written for the 3.x `bindings.conf` syntax, so translate its lines into `o.bind` calls on 4.x.

### 6. If a screenshot is taken but you never see it

The PNG is written to `~/Pictures` and copied to the clipboard before the notification is sent, and the notification call ends in `|| true` so a dead notification daemon cannot fail the capture. Check the folder first:

```bash
ls -t ~/Pictures | head
```

If the file is there but no toast appeared, the bar is your problem, not capture. See [Quickshell crashes or bar missing](/fix/quickshell-crashes-or-bar-missing/) and [notifications not showing](/fix/notifications-not-showing/).

### 7. If screen recording specifically does nothing

`Alt + Print Screen` stops a running recording or opens the Screenrecord menu, whose entries run `omarchy-capture-screenrecording`. Unlike the screenshot directory, the recording directory is not created for you:

```
Screen recording directory does not exist: /path
```

Then turn on logging and read the recorder's own stderr:

```bash
OMARCHY_SCREENRECORD_DEBUG=true omarchy capture screenrecording --fullscreen
cat /tmp/omarchy-screenrecord.log
```

On a hybrid-GPU laptop whose external monitor hangs off the discrete GPU, `gpu-screen-recorder` enumerates only one DRM card and never sees that connector, so it dies instantly with `gsr error: display "HDMI-A-1" not found` while the script still exits 0 ([#7184](https://github.com/omacom/omarchy/issues/7184)). The portal backend is GPU agnostic:

```bash
OMARCHY_SCREENRECORD_USE_PORTAL=true omarchy capture screenrecording
```

Note that per the same report, the `--fullscreen` branch is evaluated before the portal branch and ignores that variable, so drop `--fullscreen` when you enable it.

## Verify it worked

```bash
omarchy capture screenshot fullscreen save
```

That skips the picker entirely and prints the path it wrote. If you get a path and the file exists, `grim` and your output directory are fine and the fault is in the picker layer. Then try `omarchy capture screenshot` and confirm the screen freezes, a selection box follows the pointer, and `Return` captures the highlighted window.

Check the pieces are installed if anything is missing:

```bash
pacman -Q grim slurp hyprpicker wl-clipboard tensaku gpu-screen-recorder
```

## Why it happens

The Print Screen key does not take a screenshot by itself. It runs a shell script that does six things in order: kill any running `slurp` and exit (so a second press cancels), force `cursor:no_hardware_cursors` off, start `hyprpicker -r -z` as a screen freeze, run `slurp` fed the monitor and window rectangles from `hyprctl`, capture with `grim -g`, then copy with `wl-copy` and send a notification with a thumbnail and an edit action.

Every one of those steps has produced a bug report:

- The `hyprctl` JSON parsing breaks when Hyprland changes shape ([#11903](https://github.com/omacom/omarchy/issues/11903)).
- Pressing Print Screen has taken the whole compositor down with SIGABRT on Hyprland 0.56.2. jeffsidekick's stack blames the `hyprctl eval` that sets cursor mode; a follow-up analysis in the same thread resolves the faulting frame to an expired keybind handle inside Hyprland's Lua bindings, fixed upstream after 0.56.2, rather than the cursor call itself ([#8797](https://github.com/omacom/omarchy/issues/8797)).
- Forcing hardware cursors on makes the pointer vanish during selection on nouveau, exactly the hardware where Omarchy's own installer turns software cursors on, and on VMware's vmwgfx ([#8240](https://github.com/omacom/omarchy/issues/8240)).
- The freeze layer can swallow the input that would dismiss the picker ([#5468](https://github.com/omacom/omarchy/issues/5468)).
- A bare click snaps to the first containing rectangle, and monitors are listed before windows, so clicking a window gives you the whole monitor ([#8237](https://github.com/omacom/omarchy/issues/8237)).

So "the shortcut is broken" rarely means the key is unbound. Splitting the manual command from the binding tells you which half to chase in one step.

## If that did not work

- **The editor opens and will not close.** Press Escape. Tensaku saves and copies on Enter but stays open because the wrapper omits `--early-exit` ([#7845](https://github.com/omacom/omarchy/issues/7845)). On 3.x the editor was Satty; the reporter describes the change as a regression from it. Set `OMARCHY_SCREENSHOT_EDITOR` to something else if you prefer.
- **The stop-recording indicator is stuck on.** The bar can show the recording state at boot with no recorder running ([#10311](https://github.com/omacom/omarchy/issues/10311)), and stopping twice can post two toasts with a broken thumbnail ([#11508](https://github.com/omacom/omarchy/issues/11508)). Confirm with `pgrep -af gpu-screen-recorder` before believing the indicator.
- **The notification icon is a block of purple and black squares.** Cosmetic. The script sends no app icon ([#11506](https://github.com/omacom/omarchy/issues/11506)).
- **You want the file somewhere else.** `OMARCHY_SCREENSHOT_DIR` and `OMARCHY_SCREENRECORD_DIR` both work, and `omarchy capture screenshot smart copy` puts the shot on the clipboard only.

Most of these are single-reporter issues that are still open, and none of 4.0.1 through 4.0.4 carries a release note fixing any of them.

## Related

- [Omarchy manual: Screenshots & Recording](https://omarchy.org/manual/screenshots-recording/)
- [Custom keybindings lost after Quattro](/fix/custom-keybindings-lost-after-quattro/)
- [Quickshell crashes or bar missing](/fix/quickshell-crashes-or-bar-missing/)
- [Notifications not showing](/fix/notifications-not-showing/)
- [Clipboard history not working](/fix/clipboard-history-not-working/)
- [Screen sharing in Meet, Zoom and Teams](/switch/screen-sharing-meet-zoom-teams/)
- [Hyprland conf to Lua migration](/reference/hyprland-conf-to-lua-migration/)

## Sources

- [Omarchy Manual: Screenshots & Recording](https://omarchy.org/manual/screenshots-recording/)
- [Issue #11903: [4.0.2-2 ARM/M2 + Hyprland 0.56.0] omarchy capture screenshot fails: jq string ("null") cannot be parsed as a number](https://github.com/omacom/omarchy/issues/11903)
- [Issue #8797: omarchy-capture-screenshot kills the compositor: hyprctl eval of cursor:no_hardware_cursors faults in hl.config() (SIGABRT)](https://github.com/omacom/omarchy/issues/8797)
- [Issue #5468: omarchy-cmd-screenshot: hitting Print Screen occasionally locks input](https://github.com/omacom/omarchy/issues/5468)
- [Issue #5506: omarchy-capture-screenshot toggle leaves stale hyprpicker overlay after crash](https://github.com/omacom/omarchy/issues/5506)
- [Issue #8240: Screenshot picker runs with hardware cursors forced on, hiding the pointer on nouveau/vmwgfx while you select](https://github.com/omacom/omarchy/issues/8240)
- [Issue #8237: A bare click in the capture picker snaps to the whole monitor instead of the highlighted window](https://github.com/omacom/omarchy/issues/8237)
- [Issue #7845: Screenshot editor doesn't close on Enter (tensaku-edit missing --early-exit)](https://github.com/omacom/omarchy/issues/7845)
- [Issue #7184: Screen recording fails silently on the external monitor of a hybrid-GPU laptop, and --fullscreen ignores OMARCHY_SCREENRECORD_USE_PORTAL](https://github.com/omacom/omarchy/issues/7184)
- [Issue #10311: ScreenRecording bar indicator stuck 'active' after boot despite no gpu-screen-recorder process running](https://github.com/omacom/omarchy/issues/10311)
- [Discussion #611: Guide: Adapting Omarchy's Screenshot & Media Keys for MacBooks (or Keyboards without a Print Screen key)](https://github.com/omacom/omarchy/discussions/611)
