A custom Quickshell bar for the niri Wayland compositor
  • QML 80.5%
  • Python 19.4%
  • Shell 0.1%
Find a file
2026-07-22 19:55:52 +02:00
.claude Initial commit: Quickshell bar with notification system 2026-03-12 00:28:29 +01:00
bar chore: add new plugins and utility scripts 2026-03-22 12:44:36 +01:00
CatppuccinWorkspaces chore: add new plugins and utility scripts 2026-03-22 12:44:36 +01:00
CopyQClipboard chore: add new plugins and utility scripts 2026-03-22 12:44:36 +01:00
Cowork Harden local DMS plugin deployment 2026-07-22 19:55:52 +02:00
HyprlandWorkspaces Fix special workspace order (F1-F4) and distinct scratchpad icons 2026-03-31 15:06:18 +02:00
QuickAI Harden local DMS plugin deployment 2026-07-22 19:55:52 +02:00
QuickJump Add QuickJump plugin and hide gaming/sozial workspaces 2026-03-13 00:40:32 +01:00
scripts Harden local DMS plugin deployment 2026-07-22 19:55:52 +02:00
tests Harden local DMS plugin deployment 2026-07-22 19:55:52 +02:00
.gitignore Add Quick AI launcher plugin 2026-07-22 15:33:33 +02:00
agent.md Initial commit: Quickshell bar with notification system 2026-03-12 00:28:29 +01:00
AGENTS.md Harden local DMS plugin deployment 2026-07-22 19:55:52 +02:00
CLAUDE.md Initial commit: Quickshell bar with notification system 2026-03-12 00:28:29 +01:00
lefthook.yml Harden local DMS plugin deployment 2026-07-22 19:55:52 +02:00
plugins.json Harden local DMS plugin deployment 2026-07-22 19:55:52 +02:00
README.md Harden local DMS plugin deployment 2026-07-22 19:55:52 +02:00
shell.qml chore: add new plugins and utility scripts 2026-03-22 12:44:36 +01:00

beasty-dms-plugins

Personal DMS plugins for niri.

Plugins

  • QuickJump — bar buttons to focus running apps (Discord, WhatsApp, Fastmail, Steam, 1Password)
  • Cowork — launcher picker for opening ~/cowork with Codex, Claude, or Pi
  • CatppuccinWorkspaces — Catppuccin Mocha workspace indicator
  • CopyQClipboard — clipboard history via CopyQ (disabled)
  • Quick AI — type ? for quick questions, translation, and input or clipboard summaries

Quick AI setup

Quick AI uses the installed Codex CLI and its existing ChatGPT login; it does not need an API key. It requires DMS 1.5 or newer.

codex login status
dms ipc call plugin-scan scan
dms ipc call plugins enable quickAi

The ? launcher menu always shows four actions: Quick Ask, Quick Translate, Summarize Input, and Summarize Clipboard. Ask remains the default; press ↓ to choose another action. Ask, Translate, and Summarize Input require text after ?, while Summarize Clipboard works with an empty ?. The popup is a read-only formatted result, includes a Copy button, and closes with Escape.

All actions use Terra with low reasoning and standard speed rather than Codex Fast mode. Quick Ask allows web search when freshness matters; translation and summaries have no web access. Quick Translate automatically translates English ↔ German. Summaries stay in the source language and preserve important facts, dates, decisions, and action items.

Selecting Summarize Clipboard sends the current plain-text clipboard contents to Terra. Questions and clipboard contents are sent to Codex over stdin so they do not appear in the process argument list.

The DMS built-in Settings Search normally owns ?; move its trigger to ds before using Quick AI.

Local deployment

The tracked plugins.json inventory defines the plugins deployed from this repository. Deployments are copied into a stable directory under ~/.local/share/dms-plugins; DMS never points directly at a disposable development worktree.

Use the guarded deployment command instead of manually changing plugin symlinks or running dms restart:

python3 scripts/deploy_plugins.py

It validates every inventory entry and referenced component, rejects untracked plugin files and disposable worktrees, updates all plugin links atomically, restarts DMS, and verifies that every expected plugin ID is discovered. Diagnose the repository and live deployment without changing anything using:

python3 scripts/plugin_doctor.py

Offline verification (no model calls):

python3 -m unittest discover -s tests -v
QT_QPA_PLATFORM=offscreen /usr/lib/qt6/bin/qmltestrunner -input tests/tst_quick_ai_launcher.qml
qmllint -I /usr/share/quickshell/dms QuickAI/*.qml
python3 scripts/validate_plugin.py QuickAI/plugin.json
python3 scripts/plugin_doctor.py --repo-only

License

MIT