From 1d527c4e47514540541abf57aa1adb6a14ae5b54 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sun, 18 Oct 2026 11:42:52 +0200 Subject: Initial commit: rofi-scripts, the scripts behind the rofi menus Power menu, launcher, screenshot picker, SSH host cards, pass browser, emoji picker, Firefox profile picker, notification actions and an sd-server model picker. install.sh symlinks them into ~/bin; their layouts come from unified-desktop-theme. Co-Authored-By: Claude Opus 5.5 --- AGENTS.md | 63 +++++++++ CLAUDE.md | 6 + LICENSE | 338 ++++++++++++++++++++++++++++++++++++++++++++ README.md | 55 ++++++++ bin/blackpearl-emoji.sh | 19 +++ bin/blackpearl-sshmenu.sh | 40 ++++++ bin/firefox-profile | 48 +++++++ bin/notify-actions.sh | 41 ++++++ bin/qar-scrotmenu.sh | 34 +++++ bin/rofipass | 351 ++++++++++++++++++++++++++++++++++++++++++++++ bin/sd-webui | 86 ++++++++++++ bin/udt-launcher.sh | 22 +++ bin/udt-powermenu.sh | 96 +++++++++++++ install.sh | 25 ++++ 14 files changed, 1224 insertions(+) create mode 100644 AGENTS.md create mode 100644 CLAUDE.md create mode 100644 LICENSE create mode 100644 README.md create mode 100755 bin/blackpearl-emoji.sh create mode 100755 bin/blackpearl-sshmenu.sh create mode 100755 bin/firefox-profile create mode 100755 bin/notify-actions.sh create mode 100755 bin/qar-scrotmenu.sh create mode 100755 bin/rofipass create mode 100755 bin/sd-webui create mode 100755 bin/udt-launcher.sh create mode 100755 bin/udt-powermenu.sh create mode 100755 install.sh diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..4b44a10 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,63 @@ +# AGENTS.md + +Guidance for AI coding agents working in this repository. + +## What this is + +`rofi-scripts`: the shell scripts that open rofi menus on a Hyprland desktop. +Plain bash or POSIX sh, one file per menu under `bin/`, no build step. Runtime +deps are rofi 2.0 plus whatever each menu drives (pass, grimblast, notifyctl, +sd-server, firefox). + +`./install.sh` symlinks every file in `bin/` into `~/bin/`, so edits are live +on the next launch. The names are the ones hypr-theme's keybindings call +(`udt-powermenu.sh`, `qar-scrotmenu.sh`, `blackpearl-sshmenu.sh`, ...), so a +rename here must be matched there. + +## The themes live elsewhere + +Every script points rofi at a layout under `~/.config/rofi/udt/`, which the +sibling `unified-desktop-theme` repo installs. This repo holds no `.rasi`. +A layout change (header, card grid, banner) belongs there; here only the +per-menu bits passed on the command line: `-p` title, `-mesg`, +`-theme-str` overrides, keybindings. + +Menus on the searchable layouts (`list.rasi`, `grid.rasi`, `ssh.rasi`) show a +wallpaper banner with the `-p` text as a title plate above the search bar. +The house style for that title is a Nerd Font glyph, two spaces, a word and a +colon: `'󰌋 Pass:'`. Pick glyphs from the `U+F0xxx` range; `ClearlyU` claims +much of the older Private Use Area and draws a blank instead. +`fc-match ":charset=f030b" family` says which font wins. + +## Gotchas + +- **One quoted string per `-theme-str`.** rofi 2.0's lexer reads from the + first `"` to the last, so `textbox { font: "A"; } entry { placeholder: "B"; }` + in one argument silently swallows the second block. Pass two `-theme-str`. +- **Glyph-only elements need `children: [ element-text ]`** in their layout, + or the hidden icon slot pushes the glyph off centre. +- Do not judge a menu by exit code: rofi exits non-zero on Escape. + +## Conventions + +- New menu: one file in `bin/`, license header, then `./install.sh`. +- Placeholders only in code, docs and commits: no hostnames, account names or + home paths. A gitleaks hook enforces it. + +## Testing + +No test suite. `bash -n bin/