Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA 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.
Emoji picker fails to insert/paste into Electron apps (e.g. GitHub Copilot Desktop)
Reported by nimatrueway · filed Sep 16, 2026 · open at source
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?
- 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. So far: in the audited area (menu) — decided by agents · verified. The outcome (valid, duplicate, not a bug, …) is not decided yet. See the decision.
Original report
Description
The emoji picker (omarchy menu emoji, class github window GitHub Copilot) fails to insert the selected emoji into GitHub Copilot Desktop (an Electron/Ozone-Wayland app). Manually pasting immediately afterward also fails, because nothing remains on the clipboard.
Root cause
/usr/share/omarchy/bin/omarchy-menu-emoji-insert copies the emoji to the clipboard via a short-lived wl-copy --foreground process, waits ~0.35s total, sends Shift+Insert via wtype, then kills the wl-copy process:
printf '%s' "$emoji" | wl-copy --type text/plain --sensitive --foreground &
copy_pid=$!
sleep 0.15
wtype -M shift -k Insert -m shift 2>/dev/null || true
sleep 0.2
kill "$copy_pid" 2>/dev/null || trueI confirmed with a manual test that wl-copy --foreground / wl-paste round-trip correctly at the compositor level (Hyprland), so the clipboard mechanism itself is sound. The problem is:
- After the emoji picker's exclusive-focus Wayland layer closes, focus needs to return to the previously focused window before the
wtypekeystroke can land. For Electron/Ozone-Wayland apps this focus restoration appears to take longer than the ~150ms the script allows. wtype's syntheticzwp_virtual_keyboard_manager_v1events do not appear to be reliably delivered to/consumed by Electron's Wayland input backend the way they are for native GTK/Qt (Quickshell) surfaces.- Because the script unconditionally kills the
wl-copyprocess ~350ms after starting, the clipboard entry is destroyed almost immediately — even if the automatic paste failed, there's no time window left for the user to manually press Ctrl+V as a fallback.
Steps to Reproduce
- Focus a GitHub Copilot Desktop window.
- Run
omarchy menu emoji(or trigger the emoji picker keybinding). - Select any emoji.
- Observe: no emoji is typed into the Copilot Desktop input field.
- Try manually pasting (Ctrl+V) immediately after — clipboard is already empty/reverted.
Expected Behavior
The emoji should be inserted into the focused Electron/Copilot Desktop input field, or at minimum remain on the clipboard long enough (or indefinitely, e.g. via wl-copy's normal persistent behavior) for the user to paste it manually if the automatic wtype paste doesn't land.
System Details
- Omarchy version: 4.0.4-1
- wl-clipboard: 2.3.0
- wtype: 0.4-2
- Compositor: Hyprland
- Affected app: GitHub Copilot Desktop (Wayland-native Electron app, not XWayland — confirmed via
hyprctl clients -j) - Debug log: /tmp/omarchy-debug.log (generated via
omarchy-debug --no-sudo --print)
Suggested Fix
Consider reusing the more robust logic already present in omarchy clipboard paste text --shift-insert (which appears to be the general-purpose clipboard-paste command) instead of the emoji-specific script's fixed short timers, or increase the kill delay / make it conditional so the clipboard entry survives long enough for a manual paste fallback.
View raw text
## Description The emoji picker (`omarchy menu emoji`, class `github` window `GitHub Copilot`) fails to insert the selected emoji into **GitHub Copilot Desktop** (an Electron/Ozone-Wayland app). Manually pasting immediately afterward also fails, because nothing remains on the clipboard. ## Root cause `/usr/share/omarchy/bin/omarchy-menu-emoji-insert` copies the emoji to the clipboard via a short-lived `wl-copy --foreground` process, waits ~0.35s total, sends `Shift+Insert` via `wtype`, then kills the `wl-copy` process: ```bash printf '%s' "$emoji" | wl-copy --type text/plain --sensitive --foreground & copy_pid=$! sleep 0.15 wtype -M shift -k Insert -m shift 2>/dev/null || true sleep 0.2 kill "$copy_pid" 2>/dev/null || true ``` I confirmed with a manual test that `wl-copy --foreground` / `wl-paste` round-trip correctly at the compositor level (Hyprland), so the clipboard mechanism itself is sound. The problem is: 1. After the emoji picker's exclusive-focus Wayland layer closes, focus needs to return to the previously focused window before the `wtype` keystroke can land. For Electron/Ozone-Wayland apps this focus restoration appears to take longer than the ~150ms the script allows. 2. `wtype`'s synthetic `zwp_virtual_keyboard_manager_v1` events do not appear to be reliably delivered to/consumed by Electron's Wayland input backend the way they are for native GTK/Qt (Quickshell) surfaces. 3. Because the script unconditionally kills the `wl-copy` process ~350ms after starting, the clipboard entry is destroyed almost immediately — even if the automatic paste failed, there's no time window left for the user to manually press Ctrl+V as a fallback. ## Steps to Reproduce 1. Focus a GitHub Copilot Desktop window. 2. Run `omarchy menu emoji` (or trigger the emoji picker keybinding). 3. Select any emoji. 4. Observe: no emoji is typed into the Copilot Desktop input field. 5. Try manually pasting (Ctrl+V) immediately after — clipboard is already empty/reverted. ## Expected Behavior The emoji should be inserted into the focused Electron/Copilot Desktop input field, or at minimum remain on the clipboard long enough (or indefinitely, e.g. via `wl-copy`'s normal persistent behavior) for the user to paste it manually if the automatic `wtype` paste doesn't land. ## System Details - Omarchy version: 4.0.4-1 - wl-clipboard: 2.3.0 - wtype: 0.4-2 - Compositor: Hyprland - Affected app: GitHub Copilot Desktop (Wayland-native Electron app, not XWayland — confirmed via `hyprctl clients -j`) - Debug log: /tmp/omarchy-debug.log (generated via `omarchy-debug --no-sudo --print`) ## Suggested Fix Consider reusing the more robust logic already present in `omarchy clipboard paste text --shift-insert` (which appears to be the general-purpose clipboard-paste command) instead of the emoji-specific script's fixed short timers, or increase the kill delay / make it conditional so the clipboard entry survives long enough for a manual paste fallback.
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
- Related PRpr/8573· confirmed
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.
- Decided by agents · verified: in the audited area (menu)
The outcome (valid, duplicate, not a bug, …) is not decided yet.