diff options
| -rw-r--r-- | SPEC.md | 2 | ||||
| -rw-r--r-- | config.jsonc | 4 | ||||
| -rwxr-xr-x | install.sh | 11 | ||||
| -rw-r--r-- | modules/custom/launcher.jsonc | 13 | ||||
| -rw-r--r-- | modules/image/launcher.jsonc | 17 | ||||
| -rw-r--r-- | styles/modules.css | 12 | ||||
| -rw-r--r-- | styles/pills.css | 6 |
7 files changed, 36 insertions, 29 deletions
@@ -35,7 +35,7 @@ transparent gaps, so the bar reads as groups rather than a continuous strip. | Position | Module | Icon source | Notes | | --- | --- | --- | --- | -| left | `custom/launcher` | `slackware.svg`, shipped here | Accent background, the one always-coloured pill. Opens the quickshell drawer. | +| left | `image#launcher` | `slackware.svg`, shipped here | Accent background, the one always-coloured pill. Opens the quickshell drawer. An `image` module: a `custom` one draws nothing when its format is empty, and the format has to be empty because the mark is an icon. | | left | `clock#date` | `x-office-calendar` | Icon then text. Calendar tooltip kept. | | left | `clock#time` | `clock` | Icon then text. | | left | `hyprland/workspaces` | eight themed icons, via CSS | See below. | diff --git a/config.jsonc b/config.jsonc index 9d6afae..0c9dbc6 100644 --- a/config.jsonc +++ b/config.jsonc @@ -6,7 +6,7 @@ // since waybar v0.14.0, so every module file has to be listed by name. { "include": [ - "$HOME/.config/waybar-udt/modules/custom/launcher.jsonc", + "$HOME/.config/waybar-udt/modules/image/launcher.jsonc", "$HOME/.config/waybar-udt/modules/clock.jsonc", "$HOME/.config/waybar-udt/modules/hyprland/workspaces.jsonc", "$HOME/.config/waybar-udt/modules/custom/vmdot.jsonc", @@ -21,7 +21,7 @@ // Clusters, not a continuous strip: the stylesheet welds neighbours // together and leaves gaps between groups. "modules-left": [ - "custom/launcher", + "image#launcher", "clock#date", "clock#time", "hyprland/workspaces", @@ -76,14 +76,19 @@ else: # ------------------------------------------------------------------ files -- # Config and modules are symlinked: this repo owns them outright, so linking # means the installed bar cannot drift from what is committed. +# +# Links whose source has gone are pruned first. Linking alone never removes +# anything, so a module renamed or dropped in the repo would otherwise leave a +# dangling link behind for every later install to step over. +find "$target" -xtype l -delete 2>/dev/null || true + ln -sfn "$repo/config.jsonc" "$target/config.jsonc" for f in modules/clock.jsonc \ modules/hyprland/workspaces.jsonc \ - modules/custom/launcher.jsonc modules/custom/vmdot.jsonc \ - modules/custom/privacy_dots.jsonc \ + modules/custom/vmdot.jsonc modules/custom/privacy_dots.jsonc \ modules/extras/taskbar.jsonc modules/extras/tray.jsonc \ modules/image/volume.jsonc modules/image/idle_inhibitor.jsonc \ - modules/image/language.jsonc; do + modules/image/language.jsonc modules/image/launcher.jsonc; do ln -sfn "$repo/$f" "$target/$f" done diff --git a/modules/custom/launcher.jsonc b/modules/custom/launcher.jsonc deleted file mode 100644 index 56f61fb..0000000 --- a/modules/custom/launcher.jsonc +++ /dev/null @@ -1,13 +0,0 @@ -// Opens the quickshell desktop drawer. A static button: no "exec", so it -// cannot show whether the drawer is open, which would need the shell to feed -// waybar. -// -// The Slackware mark is a CSS background image, tinted with the udt accent at -// install time. It is the one always-coloured pill on the bar. -{ - "custom/launcher": { - "format": "", - "tooltip": false, - "on-click": "qs -p $HOME/Programming/GIT/quickshell/desktop ipc call drawer toggle" - } -} diff --git a/modules/image/launcher.jsonc b/modules/image/launcher.jsonc new file mode 100644 index 0000000..8c45bc4 --- /dev/null +++ b/modules/image/launcher.jsonc @@ -0,0 +1,17 @@ +// Opens the quickshell desktop drawer. A static button: no state, because +// waybar cannot see whether the drawer is open without the shell feeding it. +// +// An `image` module rather than a custom one: a custom module draws nothing at +// all when its format is empty, and the format has to be empty because the +// mark is an icon rather than text. `image` takes a path and needs no label. +// +// The path is the installed copy, which carries the udt accent: install.sh +// substitutes it, so the mark follows the scheme. +{ + "image#launcher": { + "path": "$HOME/.config/waybar-udt/slackware.svg", + "size": 18, + "tooltip": false, + "on-click": "qs -p $HOME/Programming/GIT/quickshell/desktop ipc call drawer toggle" + } +} diff --git a/styles/modules.css b/styles/modules.css index 647465f..ade8a88 100644 --- a/styles/modules.css +++ b/styles/modules.css @@ -10,19 +10,17 @@ * Launcher: the one always-coloured pill, and the desktop's identity. * * ------------------------------------------------------------------ */ -#custom-launcher { +/* The mark itself is the image module's own content, so this only draws the + * pill it sits in. */ +#image.launcher { background: @accent; - background-image: url("@CONFIG@/slackware.svg"); - background-repeat: no-repeat; - background-position: center; - background-size: 18px 18px; - min-width: 22px; padding: 2px 10px; + min-width: 22px; } /* The accent pill inverts on hover rather than lightening: it is already the * brightest thing on the bar. */ -#custom-launcher:hover { +#image.launcher:hover { background-color: @main-bg; } diff --git a/styles/pills.css b/styles/pills.css index 83e5d36..515f053 100644 --- a/styles/pills.css +++ b/styles/pills.css @@ -12,7 +12,7 @@ /* Every pill. Shared geometry lives here exactly once; modules.css only says * what is different about each one. */ -#custom-launcher, +#image.launcher, #clock.date, #clock.time, #workspaces, @@ -33,7 +33,7 @@ /* Hover. The one rule that makes the bar feel alive, and the reason every * pill declares a transition above. */ -#custom-launcher:hover, +#image.launcher:hover, #clock.date:hover, #clock.time:hover, #custom-vmdot:hover, @@ -54,7 +54,7 @@ */ /* Left: launcher | date time | workspaces | vm dots */ -#custom-launcher { +#image.launcher { margin-left: 6px; margin-right: 6px; } |
