Aether provides a full CLI for scripting, automation, and headless theme management.
# List saved themes
aether --list-blueprints
# Apply a saved theme
aether --apply-blueprint "my-theme"
# Generate theme from wallpaper (images and videos)
aether --generate ~/Wallpapers/sunset.jpg
aether --generate ~/Wallpapers/animated.mp4
# Import Base16 color scheme
aether --import-base16 ~/themes/dracula.yaml
# Import colors.toml (omarchy/ethereal format)
aether --import-colors-toml ~/themes/colors.tomlList all saved blueprint themes:
aether --list-blueprintsOutput shows theme names and timestamps.
Apply a saved theme by name:
aether --apply-blueprint "theme-name"This loads the blueprint and applies all configurations without opening the GUI.
Extract colors from a wallpaper and apply as theme:
aether --generate /path/to/wallpaper.jpgOptions:
| Option | Description |
|---|---|
--light-mode |
Generate light theme instead of dark |
--extract-mode MODE |
Color extraction algorithm (see below) |
--no-apply |
Generate templates only, don't activate theme |
--output PATH |
Custom output directory (use with --no-apply) |
Extraction Modes:
normal(default) - Balanced extractionmonochromatic- Single-hue variationsanalogous- Adjacent colors on color wheelpastel- Soft, muted colorsmaterial- Google Material-inspiredcolorful- High saturation, vibrantmuted- Desaturated, subtlebright- High brightness colors
Examples:
# Light theme with pastel colors
aether --generate ~/wallpaper.jpg --light-mode --extract-mode pastel
# Vibrant colorful theme
aether --generate ~/wallpaper.jpg --extract-mode colorful
# Generate templates without applying (no symlinks, no theme activation)
aether --generate ~/wallpaper.jpg --no-apply
# Generate to custom directory for use with external scripts
aether --generate ~/wallpaper.jpg --no-apply --output ~/my-themes/generatedImport a theme from URL or local file:
aether --import-blueprint "https://example.com/blueprint.json"
aether --import-blueprint "/path/to/theme.json"Options:
| Option | Description |
|---|---|
--auto-apply |
Apply immediately after importing |
Example:
# Import and apply in one command
aether --import-blueprint "https://example.com/blueprint.json" --auto-applyImport a Base16 color scheme:
aether --import-base16 /path/to/scheme.yamlOptions:
| Option | Description |
|---|---|
--wallpaper FILE |
Include wallpaper with the theme |
--light-mode |
Generate light theme variant |
Examples:
# Import Base16 scheme
aether --import-base16 ~/themes/dracula.yaml
# Import with wallpaper
aether --import-base16 ~/themes/nord.yaml --wallpaper ~/wallpaper.jpg
# Import as light theme
aether --import-base16 ~/themes/solarized.yaml --light-modeBase16 schemes are available from tinted-theming/schemes (250+ schemes).
See Base16 documentation for format details and color mapping.
Import a flat colors.toml file (compatible with omarchy/ethereal themes):
aether --import-colors-toml /path/to/colors.tomlOptions:
| Option | Description |
|---|---|
--wallpaper FILE |
Include wallpaper with the theme |
--light-mode |
Generate light theme variant |
Examples:
# Import colors.toml
aether --import-colors-toml ~/.local/share/omarchy/themes/ethereal/colors.toml
# Import with wallpaper
aether --import-colors-toml ~/themes/colors.toml --wallpaper ~/wallpaper.jpgThe colors.toml format uses a flat structure with color0-color15, plus extended colors:
accent = "#7d82d9"
cursor = "#ffcead"
foreground = "#ffcead"
background = "#060B1E"
selection_foreground = "#060B1E"
selection_background = "#ffcead"
color0 = "#060B1E"
color1 = "#ff6188"
# ... color2-color14
color15 = "#ffcead"Show floating theme selector widget:
aether --widget-blueprintUseful for quick theme switching from a keybind.
Launch GUI with a specific tab focused:
aether --tab <name>aether-wp is a standalone binary for animated (live) wallpapers. It uses GStreamer and GTK Layer Shell to render video or GIF files directly on the Wayland desktop background layer.
aether-wp /path/to/video.mp4
aether-wp --cpu /path/to/video.mp4
aether-wp --stop| Flag | Description |
|---|---|
--stop |
Stop any running aether-wp instance and clean up the layer surface |
--cpu |
Force CPU rendering (skip GPU-accelerated OpenGL sink) |
Aether launches aether-wp automatically when you apply a theme with an animated wallpaper (.mp4, .webm, .gif). You can also run it standalone.
How it works:
- Renders on the background layer via
gtk-layer-shell(replacesswaybg) - GPU-accelerated playback using
gtkglsink(OpenGL), auto-falls back togtksink(CPU) - Frame rate capped at 30fps to reduce GPU load
- Loops automatically on end-of-stream
- Muted audio (audio decoding disabled entirely)
- PID file at
$XDG_RUNTIME_DIR/aether-wp.pidfor reliable process management - Handles
SIGTERM/SIGINTfor clean shutdown (tears down layer surface properly)
Requirements:
- Wayland compositor with layer-shell support (Hyprland, Sway, etc.)
gtk-layer-shell- GStreamer with GTK sink (
gst-plugins-goodorgst-plugin-gtk)
Binary lookup order:
- Same directory as the
aetherbinary $PATH
When applying a static wallpaper, Aether automatically kills any running aether-wp process and falls back to swaybg.
#!/bin/bash
# Rotate through themes by time of day
themes=("morning" "afternoon" "evening" "night")
hour=$(date +%H)
if [ $hour -lt 6 ]; then
aether --apply-blueprint "${themes[3]}"
elif [ $hour -lt 12 ]; then
aether --apply-blueprint "${themes[0]}"
elif [ $hour -lt 18 ]; then
aether --apply-blueprint "${themes[1]}"
else
aether --apply-blueprint "${themes[2]}"
fi#!/bin/bash
# Generate theme from random wallpaper
wallpaper=$(find ~/Wallpapers -type f \( -name "*.jpg" -o -name "*.png" \) | shuf -n 1)
aether --generate "$wallpaper"Add to ~/.config/hypr/hyprland.conf:
# Quick theme selector widget
bind = $mainMod SHIFT, T, exec, aether --widget-blueprint
# Generate theme from current wallpaper
bind = $mainMod ALT, T, exec, aether --generate $(hyprctl hyprpaper listactive | head -1 | cut -d' ' -f2)
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Error (file not found, invalid blueprint, etc.) |
Aether respects standard XDG directories:
~/.config/aether/- Configuration and blueprints~/.cache/aether/- Thumbnails and temporary files~/.local/share/aether/- Downloaded wallpapers