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.
omarchy-launch-spotify does nothing when quickshell.spotify is running
Reported by drithird · filed Sep 2, 2026Closed upstream on 2026-09-21 by bjarneo via an automated message, as a duplicate of #7154 (R-1757). GitHub close reason: completed.
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
Super+Shift+M / omarchy-launch-spotify does nothing when the
Quickshell "Omarchy Spotify" plugin is running
Describe the bug
omarchy launch spotify (and any binding that routes to it — the stockSUPER + SHIFT + M "Music" binding, and the quickshell.spotify plugin's
"Omarchy Music app" shortcut) does nothing when the quickshell.spotify
plugin's bar widget is active: the official Spotify client never launches,
and no window is focused.
What is expected
omarchy launch spotify should launch and focus the official Spotify
desktop client at /usr/bin/spotify, falling back to the installer when
Spotify is not installed.
Reproduction steps
- Install the quickshell.spotify plugin (`omarchy plugin clone
quickshell.spotify) and keep its BarWidget.qml` running — its window is
class=org.quickshell, title="Omarchy Spotify".
2. Ensure the official client is NOT running.
3. Press Super+Shift+M (stock "Music" binding) or run
omarchy launch spotify.
Nothing happens. No official Spotify window appears.
Root cause
/usr/share/omarchy/bin/omarchy-launch-spotify matches candidate windows by
class OR title (same pattern as omarchy-launch-or-focus):
WINDOW_ADDRESS=$(hyprctl clients -j | jq -r '.[]|select((.class|test("\\bspotify\\b";"i")) or (.title|test("\\bspotify\\b";"i")))|.address' | head -n1)The Quickshell player's window is `class=org.quickshell,
title="Omarchy Spotify"` — it matches on title — so the script believes a
Spotify window already exists and dispatches focuswindow address:... to a
hidden Quickshell layer surface. Hyprland cannot focus it, so the launch is
silently skipped and /usr/bin/spotify is never started.
Live window listing at reproduction time (official client closed):
class=[org.quickshell] title=[Omarchy Spotify] addr=0x5615735df2f0Suggested fix
Exclude Quickshell surfaces when matching, e.g. add a.class != "org.quickshell" guard to the jq filter inomarchy-launch-spotify (and consider the same in omarchy-launch-or-focus,
which shares the class-or-title heuristic):
WINDOW_ADDRESS=$(hyprctl clients -j | jq -r '.[]|select(.class != "org.quickshell")|select((.class|test("\\bspotify\\b";"i")) or (.title|test("\\bspotify\\b";"i")))|.address' | head -n1)System details
- Omarchy: 4.0.2-1 (Arch, id_like=arch)
- Hyprland: 0.56.2 (v0.56.2, efb5099378)
- quickshell: 0.3.1-1
- spotify: 1:1.2.96.518-2
- CPU: AMD Ryzen 9 3900X
- GPU: AMD Radeon RX 6950 XT (Navi 21)
View raw text
Super+Shift+M / `omarchy-launch-spotify` does nothing when the
Quickshell "Omarchy Spotify" plugin is running
## Describe the bug
`omarchy launch spotify` (and any binding that routes to it — the stock
`SUPER + SHIFT + M` "Music" binding, and the quickshell.spotify plugin's
"Omarchy Music app" shortcut) does nothing when the quickshell.spotify
plugin's bar widget is active: the official Spotify client never launches,
and no window is focused.
## What is expected
`omarchy launch spotify` should launch and focus the official Spotify
desktop client at `/usr/bin/spotify`, falling back to the installer when
Spotify is not installed.
## Reproduction steps
1. Install the quickshell.spotify plugin (`omarchy plugin clone
quickshell.spotify`) and keep its `BarWidget.qml` running — its window is
`class=org.quickshell, title="Omarchy Spotify"`.
2. Ensure the official client is NOT running.
3. Press `Super+Shift+M` (stock "Music" binding) or run
`omarchy launch spotify`.
Nothing happens. No official Spotify window appears.
## Root cause
`/usr/share/omarchy/bin/omarchy-launch-spotify` matches candidate windows by
**class OR title** (same pattern as `omarchy-launch-or-focus`):
```sh
WINDOW_ADDRESS=$(hyprctl clients -j | jq -r '.[]|select((.class|test("\\bspotify\\b";"i")) or (.title|test("\\bspotify\\b";"i")))|.address' | head -n1)
```
The Quickshell player's window is `class=org.quickshell,
title="Omarchy Spotify"` — it matches on **title** — so the script believes a
Spotify window already exists and dispatches `focuswindow address:...` to a
hidden Quickshell layer surface. Hyprland cannot focus it, so the launch is
silently skipped and `/usr/bin/spotify` is never started.
Live window listing at reproduction time (official client closed):
```
class=[org.quickshell] title=[Omarchy Spotify] addr=0x5615735df2f0
```
## Suggested fix
Exclude Quickshell surfaces when matching, e.g. add a
`.class != "org.quickshell"` guard to the jq filter in
`omarchy-launch-spotify` (and consider the same in `omarchy-launch-or-focus`,
which shares the class-or-title heuristic):
```sh
WINDOW_ADDRESS=$(hyprctl clients -j | jq -r '.[]|select(.class != "org.quickshell")|select((.class|test("\\bspotify\\b";"i")) or (.title|test("\\bspotify\\b";"i")))|.address' | head -n1)
```
## System details
- Omarchy: 4.0.2-1 (Arch, id_like=arch)
- Hyprland: 0.56.2 (v0.56.2, efb5099378)
- quickshell: 0.3.1-1
- spotify: 1:1.2.96.518-2
- CPU: AMD Ryzen 9 3900X
- GPU: AMD Radeon RX 6950 XT (Navi 21)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.