Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

pywal-theme-setup

One-shot installer that wires up pywal to theme your entire desktop from a single command — on any desktop environment or window manager.

wall ~/Pictures/your-wallpaper.jpg

That one command sets the wallpaper, generates a palette with pywal, and re-themes your bar, launcher, terminal, panel and compositor in real time.

Shell License Platform


Features

  • Auto-installs pywal if it's missing — Arch (yay/paru from AUR), everything else (pipx or pip --user)
  • Optional awww-daemon install (AUR) when it detects a Wayland session, for animated/cross-monitor wallpapers
  • wall command (~/.local/bin/set-theme) — one alias for the whole flow
  • Works on any DE/WM — detects GNOME, KDE Plasma, XFCE, MATE, Cinnamon, Hyprland, Sway, River, Wayfire, i3, bspwm, awesome, or falls back to generic Wayland/X11 tools
  • awww-daemon first — always checked on Wayland (auto-starts the daemon if it's installed but not running)
  • Live terminal colors — pywal sequences are broadcast to every open terminal and applied to new shells
  • Auto-reload — Waybar, Polybar, SwayNC, XFCE panel, KDE plasmashell, and the compositor are reloaded only if they're actually running
  • Compositor borders — Hyprland window border colors are patched from the palette
  • Idempotent — safe to re-run; never duplicates config lines

What gets themed

App Where it picks up the colors
Waybar @import ~/.cache/wal/colors-waybar.css added to style.css
Rofi @import ~/.cache/wal/colors-rofi-dark.rasi added to config.rasi
Kitty include ~/.cache/wal/colors-kitty.conf added to kitty.conf
Terminals ~/.cache/wal/sequences (ANSI escape sequences, live + on new shell)
Hyprland col.active_border / col.inactive_border patched from the palette
SwayNC / Waybar / Polybar / XFCE panel / KDE auto-reloaded after each wal run

Installation

git clone https://github.com/enjo2/pywal-theme-setup.git
cd pywal-theme-setup
./pywal-theme-setup.sh

Run with --no-install to configure everything without installing anything (useful if pywal is already present).

After it finishes, open a new terminal (so the shell changes take effect) and:

wall ~/Pictures/wallpaper.jpg

What the installer does

  1. Checks for pywal → installs it via yay/paru (Arch AUR) or pipx/pip --user
  2. Optionally installs awww-daemon (AUR) when on Wayland
  3. Creates ~/.config/wal/templates and ~/.cache/wal for user-level pywal access
  4. Installs the done hook (~/.config/wal/done) — pywal calls it after every run
  5. Installs the wall command (~/.local/bin/set-theme)
  6. Patches Waybar / Rofi / Kitty configs to import the generated colors
  7. Wires .zshrc / .bashrc with the wall alias, the PATH export, and live pywal sequences

Supported desktops / window managers

Environment Wallpaper setter used
Wayland (any) awww-daemon (preferred, auto-started)
Hyprland hyprctl hyprpaper (or awww)
GNOME gsettings
KDE Plasma plasma-apply-wallpaperimage
XFCE xfconf-query
MATE gsettings
Cinnamon gsettings
Sway / River / Wayfire swaybg or swww
X11 tiling WMs (i3, bspwm, awesome…) fehnitrogenhsetrootxwallpaper
Fallback pywal itself sets the wallpaper

Requirements

  • Linux, Bash 4+
  • python3 with pip/pipx (only needed if pywal isn't installed yet)
  • Optionally: awww/awww-daemon, feh, swaybg, gsettings, xfconf-query… (the script uses whatever is available)

How it works

The installer creates a wall alias → ~/.local/bin/set-theme, which:

  1. Detects your session type (wayland/x11) and desktop environment
  2. Picks the right wallpaper setter for your setup (awww-daemon first)
  3. Keeps hyprpaper.conf / hyprlock.conf in sync (if they exist)
  4. Runs wal -i <image> -n -q (pywal generates the palette + its done hook fires)
  5. Broadcasts the ANSI sequences to every open /dev/pts
  6. Generates ~/.cache/wal/colors-hyprland.conf and patches Hyprland borders
  7. Reloads whatever bar/notifier/panel/compositor is actually running

Customization

Drop your own pywal templates into ~/.config/wal/templates/ and they'll be generated on every wal run.

Want the Rofi light variant? Change the @import line in ~/.config/rofi/config.rasi to colors-rofi-light.rasi.

License

MIT

About

No description or website provided.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages