Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.

Inbox
ReportR-4484GitHub issuePublicReceived

Universal clipboard (Super+C/V) doesn't work in Ghostty quick terminal

Reported by KristianHolme · filed Jul 6, 2026Closed upstream on 2026-07-06 by its own reporter KristianHolme, as a duplicate of #6181 (R-4483). GitHub close reason: duplicate.

Received and recorded verbatim. Nothing has been checked yet.

At a glance

1 · What is claimed?
Only the report text below — no validator has restated it as checkable claims yet.
2 · What does it affect?
Not yet mapped to any requirement or component.
3 · Is it reproducible?
No validation has been run yet.
4 · What remains unclear?
  • Not validated yet: no claims, no reproducer.
5 · What happens next?
Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.

Original report

Universal clipboard (Super+C/V) doesn't work in Ghostty quick terminalrevision 1 · captured 2026-10-04 11:56 UTC via poll

System details

Omarchy 3.8.2, Hyprland 0.55.4

What's wrong?

Description written by Cursor:

Summary

Omarchy's universal clipboard bindings use sendshortcut … activewindow, but Ghostty's quick terminal is a wl-layer-shell surface (namespace: quickterminal), not a Hyprland window. When the quick terminal is open, activewindow still points at the app underneath, so Super+C/V/X go to the wrong target.

Reproduction

1. Enable Ghostty quick terminal (~/.config/ghostty/config):

keybind = global:super+ctrl+enter=toggle_quick_terminal
quick-terminal-position = center
quick-terminal-size = 70%, 40%
gtk-quick-terminal-namespace = quickterminal

2. Bind toggle in Hyprland (match hyprctl globalshortcuts after Ghostty restart):

bindd = SUPER CTRL, RETURN, Quick terminal, global, com.mitchellh.ghostty:CTRL+LOGO+Return

3. Restart Ghostty, then reload Hyprland.

4. Reproduce:

  1. Open any non-terminal app (browser, etc.)
  2. Toggle quick terminal (Super+Ctrl+Enter)
  3. Select text in the quick terminal → Super+C
  4. Super+V in the quick terminal (or another app)

Expected: copy/paste works in the quick terminal.

Actual: Super+C/V affect the window underneath (or do nothing useful in the quick terminal). Regular Ghostty windows work fine.

Verify: With quick terminal open, hyprctl activewindow shows the background app, while hyprctl layers shows a quickterminal layer.

Cause

# default/hypr/bindings/clipboard.conf
bindd = SUPER, C, Universal copy, sendshortcut, CTRL, Insert, activewindow

activewindow never targets layer surfaces. Hyprland's sendshortcut also has no layer filter (#11800).

Possible fix

When the quickterminal layer is visible, dispatch Ghostty global shortcuts instead:

# ghostty config
keybind = global:super+c=copy_to_clipboard
keybind = global:super+v=paste_from_clipboard

Route via a small helper (e.g. omarchy-hyprland-universal-clipboard) that detects the layer and calls hyprctl dispatch global com.mitchellh.ghostty:LOGO+c / LOGO+v; otherwise keep current sendshortcut … activewindow behavior.

Notes

  • Ghostty + Hyprland only (quick terminal is not a generic terminal feature)
  • Cut (Super+X) has no Ghostty global action; may need a pid fallback
  • No impact when quick terminal isn't open
View raw text
### System details

Omarchy 3.8.2, Hyprland 0.55.4

### What's wrong?

Description written by Cursor:
### Summary

Omarchy's universal clipboard bindings use `sendshortcut … activewindow`, but Ghostty's quick terminal is a **wl-layer-shell surface** (`namespace: quickterminal`), not a Hyprland window. When the quick terminal is open, `activewindow` still points at the app underneath, so Super+C/V/X go to the wrong target.

### Reproduction

**1. Enable Ghostty quick terminal** (`~/.config/ghostty/config`):

```ini
keybind = global:super+ctrl+enter=toggle_quick_terminal
quick-terminal-position = center
quick-terminal-size = 70%, 40%
gtk-quick-terminal-namespace = quickterminal
```

**2. Bind toggle in Hyprland** (match `hyprctl globalshortcuts` after Ghostty restart):

```ini
bindd = SUPER CTRL, RETURN, Quick terminal, global, com.mitchellh.ghostty:CTRL+LOGO+Return
```

**3. Restart Ghostty**, then reload Hyprland.

**4. Reproduce:**

1. Open any non-terminal app (browser, etc.)
2. Toggle quick terminal (Super+Ctrl+Enter)
3. Select text in the quick terminal → Super+C
4. Super+V in the quick terminal (or another app)

**Expected:** copy/paste works in the quick terminal.

**Actual:** Super+C/V affect the window underneath (or do nothing useful in the quick terminal). Regular Ghostty windows work fine.

**Verify:** With quick terminal open, `hyprctl activewindow` shows the background app, while `hyprctl layers` shows a `quickterminal` layer.

### Cause

```ini
# default/hypr/bindings/clipboard.conf
bindd = SUPER, C, Universal copy, sendshortcut, CTRL, Insert, activewindow
```

`activewindow` never targets layer surfaces. Hyprland's `sendshortcut` also has no layer filter ([#11800](https://github.com/hyprwm/Hyprland/discussions/11800)).

### Possible fix

When the `quickterminal` layer is visible, dispatch Ghostty global shortcuts instead:

```ini
# ghostty config
keybind = global:super+c=copy_to_clipboard
keybind = global:super+v=paste_from_clipboard
```

Route via a small helper (e.g. `omarchy-hyprland-universal-clipboard`) that detects the layer and calls `hyprctl dispatch global com.mitchellh.ghostty:LOGO+c` / `LOGO+v`; otherwise keep current `sendshortcut … activewindow` behavior.

### Notes

- Ghostty + Hyprland only (quick terminal is not a generic terminal feature)
- Cut (Super+X) has no Ghostty global action; may need a pid fallback
- No impact when quick terminal isn't open

Validation

Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.

Linked

Not linked to any known issue, other report or change yet.

Decision

Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.

No decision has been recorded yet.