Skip to main content
Version: main

awob

Generates a shared palette plus a worked-example theme for awob, an animated Wayland Overlay Bar. The palette lives at themes/_palettes/tinct.kdl and is the single source of truth for tinct colours; the worked-example theme at themes/tinct/ imports it and exercises every awob scene primitive (icon, label, track, bar with $lastValue tweening, fade phases). Other awob themes (user-authored or bundled) can pick up the same palette by adding one import line to their scene.kdl.

Installation

Via the official plugin repository

tinct plugins install awob

Build from source

cd contrib/plugins/output/awob
go build -ldflags "-X main.Version=0.1.0" -o tinct-plugin-awob
install -m 0755 tinct-plugin-awob ~/.local/bin/

Verify

which tinct-plugin-awob
tinct-plugin-awob --plugin-info | jq .

The plugin uses tinct's go-plugin RPC protocol and is discovered automatically once it's on $PATH. It skips cleanly if awob is not installed (no awob/awob-daemon binary on $PATH and no ~/.config/awob directory).

Quick start

tinct generate -i image -p ~/Pictures/wallpaper.jpg -o awob

Generated files

FilePathRole
tinct.kdl~/.config/awob/themes/_palettes/tinct.kdlPalette — defines $bg, $fg, $track, $low, $normal, $warn, $crit, $muted, $overflow_bg, $overflow_accent plus a styles {} block keying off severity. Tinct overwrites this in place on each run.
scene.kdl~/.config/awob/themes/tinct/scene.kdlExample theme — imports the palette and uses every awob scene primitive (icon, label, track, bar, fade phases). Modelled on awob's bundled default theme.
manifest.toml~/.config/awob/themes/tinct/manifest.tomlTheme manifest awob-daemon reads to enumerate icons, fonts, etc.

Integration

awob themes adopt tinct colours by importing the palette. Two paths are available:

Activate the bundled tinct theme

awob-daemon --theme tinct
# or set the active theme in awob's config:
$EDITOR ~/.config/awob/awob.toml
theme = "tinct"

Use tinct's palette in another theme

Drop a single import line at the top of any theme's scene.kdl:

import "../_palettes/tinct.kdl"

After this, the theme can use $bg, $fg, $track, $accent, $low, $normal, $warn, $crit, $muted, $overflow_bg, $overflow_accent and the style "low"|"normal"|"warn"|"critical"|"muted"|"overflow" accent blocks. The palette file is rewritten by tinct on every tinct generate; awob-daemon hot-reloads.

Reload behaviour

Automatic

If the awob CLI is on $PATH, PostExecute runs:

awob force-palette set ~/.config/awob/themes/_palettes/tinct.kdl

awob-daemon overlays this palette on top of whatever theme is currently active, so tinct colours take effect immediately on every theme without editing its scene.kdl. The daemon also adds the file to its hot-reload watch list, so subsequent tinct runs that rewrite the same path refresh in place.

The call has a 5-second timeout and silently no-ops if the daemon isn't running or the CLI is missing — failure is non-fatal.

Manual fallback

If the awob CLI is missing or the daemon was not running, either:

awob force-palette set ~/.config/awob/themes/_palettes/tinct.kdl

or restart awob-daemon to pick up the regenerated theme:

systemctl --user restart awob-daemon # if you run it as a user service
# otherwise: kill awob-daemon and re-launch it via your usual mechanism

Uninstall / revert

  1. Remove the include line from any theme's scene.kdl that you wired tinct into:

    grep -rl 'import "../_palettes/tinct.kdl"' ~/.config/awob/themes/

    Edit each file and drop the import line. If you set theme = "tinct" in ~/.config/awob/awob.toml, switch it back to your preferred theme (or remove the line to fall back to awob's default).

  2. Drop the force-palette overlay so the daemon stops applying tinct colours:

    awob force-palette clear

  3. Delete the generated files:

    rm -rf ~/.config/awob/themes/tinct ~/.config/awob/themes/_palettes/tinct.kdl rmdir --ignore-fail-on-non-empty ~/.config/awob/themes/_palettes

  4. Reload to drop the theme: re-run awob force-palette clear (no-op if already cleared) and restart the daemon if you removed the active theme it was using:

    systemctl --user restart awob-daemon

  5. External state: this plugin only writes to ~/.config/awob/themes/. To also remove the plugin binary:

    tinct plugins uninstall awob

    or, for a source build:

    rm ~/.local/bin/tinct-plugin-awob

Flags

FlagDefaultDescription
--awob.output-dirauto-detected (~/.config/awob/themes)awob themes directory. May also be set via TINCT_PLUGIN_AWOB_OUTPUT_DIR.

Colour role mapping

awob's palette uses short single-letter-or-word identifiers that are referenced as $bg, $fg, etc. from scene primitives.

Palette (palette {})

awob identifierTinct roleNotes
bgbackgroundSurface, baked at 0.85 alpha
fgforegroundLabel and icon colour
trackonSurfaceBar track, baked at 0.08 alpha
lowsuccessAccent for low-severity events
normalaccent1Accent for normal events
warnwarningAccent for warning events
critdangerAccent for critical events
mutedforegroundMutedReserved for muted/disabled UI
overflow_bgbackground (at 0.85 alpha)Bar background when value > max
overflow_accentdangerBar/border accent when value > max

Style blocks (styles {})

awob styleMaps to
lowaccent = $low
normalaccent = $normal
warnaccent = $warn
criticalaccent = $crit
mutedaccent = $crit at 0.6 alpha
overflowbg = $overflow_bg, accent = $overflow_accent (auto-applied when value > max)

Customising the template

tinct plugins templates dump -o awob -l ~/.config/tinct/templates/awob
$EDITOR ~/.config/tinct/templates/awob/palette.kdl.tmpl

Tinct prefers your version over the embedded default. See the templating reference for available functions. Three templates are dumped: palette.kdl.tmpl, scene.kdl.tmpl, manifest.toml.tmpl.

Troubleshooting

Plugin not found by tinct

which tinct-plugin-awob
tinct plugins list | grep awob

If the binary isn't on $PATH, reinstall via tinct plugins install awob or symlink your source build into ~/.local/bin/.

"awob not installed" — plugin skipped

The plugin requires evidence that you actually run awob: either awob or awob-daemon on $PATH, or a ~/.config/awob directory. Create the config directory to convince the plugin to write the theme even if you haven't installed the daemon yet:

mkdir -p ~/.config/awob
tinct generate -o awob --verbose

Colours don't update after regenerating

Confirm awob-daemon picked up the force-palette overlay:

awob force-palette get # should print the path tinct just wrote

If empty, the awob CLI was not on $PATH at generate time. Install awob and either re-run tinct generate or apply manually:

awob force-palette set ~/.config/awob/themes/_palettes/tinct.kdl

Theme not appearing in awob-daemon's theme list

awob-daemon enumerates themes from the directories listed in its config. Confirm the themes dir tinct wrote to matches:

ls ~/.config/awob/themes/
awob-daemon --print-config | grep -i themes

If you ran tinct with --awob.output-dir pointing somewhere else, either move the files or update awob-daemon's config to scan the new location.

  • swayosd — alternative on-screen-display server with a different theming model.
  • dunst — notification daemon companion.