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-262GitHub issuePublicDecided· Out of scope

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

Decided: Out of scope — decided by agents · verified 3 days ago.

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

Clipboard history: valid UTF-8 text is restored with a binary MIME type and cannot be pastedrevision 1 · captured 2026-09-28 21:23 UTC via poll

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.

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:

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 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