diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-18 11:28:14 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-18 11:28:14 +0200 |
| commit | 140e0f906a9e8566b26267d84eb0aa1a7e2f0d94 (patch) | |
| tree | 3ed4b858789baf9a23530ec932e99f0e8c99a01a | |
| parent | 75772bed729c7bfe48a309cc39a8a52ec3ac251b (diff) | |
| download | unified-desktop-theme-140e0f906a9e8566b26267d84eb0aa1a7e2f0d94.tar.gz unified-desktop-theme-140e0f906a9e8566b26267d84eb0aa1a7e2f0d94.zip | |
feat(rofi): wallpaper banner and placeholder on the ssh header
The header and search bar share the wallpaper banner the Alt+F2 runner
uses, each on a plate so it stays legible over any image, and the entry
gets a placeholder. ssh.rasi now carries the @WPAPER@ placeholder, so
install.sh generates it like launcher.rasi instead of linking it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
| -rw-r--r-- | AGENTS.md | 2 | ||||
| -rwxr-xr-x | install.sh | 15 | ||||
| -rw-r--r-- | rofi/udt/ssh.rasi | 52 |
3 files changed, 54 insertions, 15 deletions
@@ -344,7 +344,7 @@ them by exit code: rofi exits non-zero for ordinary reasons such as Escape. data (`qt6ct.conf` has an `ignored_applications` list), track only the theme-relevant keys. - **Themes that reference an image cannot be committed with a real path.** - `launcher.rasi` carries an `@WPAPER@` placeholder that `install.sh` rewrites. + `launcher.rasi` and `ssh.rasi` carry an `@WPAPER@` placeholder that `install.sh` rewrites. rofi does not expand `~` inside a `url()`. - After editing anything under `rofi/udt/` or `palette/`, run `./install.sh`. - `bin/udt-palette --selftest` resolves every role in every scheme. Run it @@ -84,16 +84,17 @@ fi # Theme files are symlinked individually; accent.rasi is NOT, it points at the # generated file in the wal cache instead. -for f in palette.rasi common.rasi menu.rasi list.rasi grid.rasi powermenu.rasi confirm.rasi screenshot.rasi ssh.rasi; do +for f in palette.rasi common.rasi menu.rasi list.rasi grid.rasi powermenu.rasi confirm.rasi screenshot.rasi; do ln -sfn "$repo/rofi/udt/$f" "$target/$f" done -# launcher.rasi is generated rather than symlinked: its wallpaper path comes -# from the wal cache and cannot be committed. Regenerating it is why re-running -# this script after moving the repo is safe. -rm -f "$target/launcher.rasi" -sed "s|@WPAPER@|$HOME/.cache/udt/wpaper|" \ - "$repo/rofi/udt/launcher.rasi" > "$target/launcher.rasi" +# launcher.rasi and ssh.rasi are generated rather than symlinked: their +# wallpaper path comes from the wal cache and cannot be committed. Regenerating +# them is why re-running this script after moving the repo is safe. +for f in launcher.rasi ssh.rasi; do + rm -f "$target/$f" + sed "s|@WPAPER@|$HOME/.cache/udt/wpaper|" "$repo/rofi/udt/$f" > "$target/$f" +done # Seed the generated accent if it does not exist yet, so themes parse on a # fresh install before any wallpaper has been set. diff --git a/rofi/udt/ssh.rasi b/rofi/udt/ssh.rasi index 4c8a88e..c40ac05 100644 --- a/rofi/udt/ssh.rasi +++ b/rofi/udt/ssh.rasi @@ -14,19 +14,56 @@ window { width: 1100px; anchor: center; location: center; - padding: 20px; + padding: 0; } -/* The prompt is lifted out of the inputbar to sit above it as a header. */ mainbox { - children: [ prompt, inputbar, listview ]; - spacing: 16px; + children: [ header, listview ]; + spacing: 0; } +/* The wallpaper banner, as in launcher.rasi: the header and the search bar + * share it. @WPAPER@ is rewritten by the installer, which is why this file + * is generated rather than linked. */ +header { + expand: false; + orientation: vertical; + children: [ headrow, inputbar ]; + spacing: 12px; + padding: 2.5em 2em; + background-image: url("@WPAPER@", width); + background-color: @mantle; +} + +/* The prompt is lifted out of the inputbar to sit above it, and kept to its + * own width by the spacer so its plate does not span the banner. */ +headrow { + expand: false; + orientation: horizontal; + children: [ prompt, dummy ]; +} + +dummy { + expand: true; +} + +/* Both sit on plates so they stay legible over any wallpaper. */ prompt { - font: "Noto Sans Bold 15"; - text-color: @text; - padding: 0 4px; + font: "Noto Sans Bold 15"; + text-color: @text; + background-color: @base; + border-radius: 6px; + padding: 6px 12px; +} + +inputbar { + background-color: @base; + border: 1px; + border-color: @accent; +} + +entry { + placeholder: "Search hosts, users, addresses"; } listview { @@ -35,6 +72,7 @@ listview { fixed-height: true; spacing: 12px; flow: horizontal; + padding: 20px; } /* Text only: the element spacing otherwise reserves a gap for the icon. */ |
