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.
Clipboard history: valid UTF-8 text is restored with a binary MIME type and cannot be pasted
Reported by Wolfengo · filed Sep 20, 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?
- AreaOutside the audited area· Decided by agents · verified
- 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?
- Decided by agents and verified by a second, independent agent — see the decision.
Original report
System details
- Omarchy:
4.0.4-1(installed package andomarchy version) - Hyprland:
0.56.2-2 - Quickshell:
0.3.1-1 - wl-clipboard:
1:2.3.0-1 - file:
5.48-1 - xdg-utils:
1.2.1-2 - CPU: Intel Core i5-1335U; GPU: Intel Iris Xe (Raptor Lake-P)
What's wrong?
Some valid UTF-8 text entries remain visible in clipboard history (Super+Ctrl+V), but selecting them with Enter or Shift+Enter makes them unavailable to text paste consumers.
The text is copied, but bin/omarchy-clipboard-paste-text lets wl-copy infer its MIME type. For the synthetic example below, that inference returns application/x-dtsz instead of a text type. wl-paste --type text then exits with status 1.
This depends on the content, not the age of the history entry.
Minimal reproducer
Run in Bash in a Wayland session. These commands replace the current clipboard. The sample contains two leading ASCII spaces followed by the Russian word for “test” and a newline; it contains no private clipboard data.
sample=$' Тест\n'
# Reproduce through the stock text helper without synthetic key presses:
omarchy clipboard paste text --copy-only "$sample"
wl-paste --list-types
# application/x-dtsz
wl-paste --no-newline --type text >/dev/null
echo "$?"
# 1The MIME inference can also be reproduced without touching the clipboard:
printf ' Тест\n' | file --mime-type -b -
# application/x-dtszTo exercise clipboard history on an unmodified installation:
- Seed the sample explicitly as text:
printf ' Тест\n' | wl-copy --type 'text/plain;charset=utf-8'.
2. Open Super+Ctrl+V, select that entry, and press Shift+Enter.
3. Check wl-paste --list-types and try wl-paste --type text.
Expected: restoring a known text entry preserves a usable text MIME type and the original bytes.
Cause and suggested fix
Both text-copy paths in bin/omarchy-clipboard-paste-text invoke bare wl-copy. The history path already checks that the selected entry has type == "text", so its content should not be reclassified as binary.
Specify the text type in both places:
- jq -j --argjson index "$history_index" '.[$index].text' "$history_path" | wl-copy
+ jq -j --argjson index "$history_index" '.[$index].text' "$history_path" | wl-copy --type "text/plain;charset=utf-8"
...
- printf '%s' "$text" | wl-copy
+ printf '%s' "$text" | wl-copy --type "text/plain;charset=utf-8"Verification
On the real Wayland session, the stock helper with the synthetic sample advertised only application/x-dtsz; text read exited 1. With the explicit MIME type, text read exited 0 and returned the exact sample bytes, including spaces and newline.
The same fix was applied in a user-owned clipboard plugin and verified through its history-copy action with byte-for-byte comparison. The original clipboard contents were restored after the synthetic test.
The current upstream quattro helper was checked and still contains both untyped wl-copy calls. No private clipboard text or history dump is included in this report.
View raw text
### System details - Omarchy: `4.0.4-1` (installed package and `omarchy version`) - Hyprland: `0.56.2-2` - Quickshell: `0.3.1-1` - wl-clipboard: `1:2.3.0-1` - file: `5.48-1` - xdg-utils: `1.2.1-2` - CPU: Intel Core i5-1335U; GPU: Intel Iris Xe (Raptor Lake-P) ### What's wrong? Some valid UTF-8 text entries remain visible in clipboard history (`Super+Ctrl+V`), but selecting them with Enter or Shift+Enter makes them unavailable to text paste consumers. The text is copied, but `bin/omarchy-clipboard-paste-text` lets `wl-copy` infer its MIME type. For the synthetic example below, that inference returns `application/x-dtsz` instead of a text type. `wl-paste --type text` then exits with status 1. This depends on the content, not the age of the history entry. ### Minimal reproducer Run in Bash in a Wayland session. These commands replace the current clipboard. The sample contains two leading ASCII spaces followed by the Russian word for “test” and a newline; it contains no private clipboard data. ```bash sample=$' Тест\n' # Reproduce through the stock text helper without synthetic key presses: omarchy clipboard paste text --copy-only "$sample" wl-paste --list-types # application/x-dtsz wl-paste --no-newline --type text >/dev/null echo "$?" # 1 ``` The MIME inference can also be reproduced without touching the clipboard: ```bash printf ' Тест\n' | file --mime-type -b - # application/x-dtsz ``` To exercise clipboard history on an unmodified installation: 1. Seed the sample explicitly as text: `printf ' Тест\n' | wl-copy --type 'text/plain;charset=utf-8'`. 2. Open `Super+Ctrl+V`, select that entry, and press Shift+Enter. 3. Check `wl-paste --list-types` and try `wl-paste --type text`. Expected: restoring a known text entry preserves a usable text MIME type and the original bytes. ### Cause and suggested fix Both text-copy paths in [bin/omarchy-clipboard-paste-text](https://github.com/omacom/omarchy/blob/quattro/bin/omarchy-clipboard-paste-text) invoke bare `wl-copy`. The history path already checks that the selected entry has `type == "text"`, so its content should not be reclassified as binary. Specify the text type in both places: ```diff - jq -j --argjson index "$history_index" '.[$index].text' "$history_path" | wl-copy + jq -j --argjson index "$history_index" '.[$index].text' "$history_path" | wl-copy --type "text/plain;charset=utf-8" ... - printf '%s' "$text" | wl-copy + printf '%s' "$text" | wl-copy --type "text/plain;charset=utf-8" ``` ### Verification On the real Wayland session, the stock helper with the synthetic sample advertised only `application/x-dtsz`; text read exited 1. With the explicit MIME type, text read exited 0 and returned the exact sample bytes, including spaces and newline. The same fix was applied in a user-owned clipboard plugin and verified through its history-copy action with byte-for-byte comparison. The original clipboard contents were restored after the synthetic test. The current upstream `quattro` helper was checked and still contains both untyped `wl-copy` calls. No private clipboard text or history dump is included in this report.
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.
- Out of scopeDecided by agents · verified · 2026-10-09 16:50 UTC