pywal-theme-switcher-demo-compressed.mp4
Pywal Theme Switcher is a lightweight script that extracts colors from your wallpaper and dynamically applies them across your desktop environment.
It can synchronize themes for:
- π Pywal / WPGTK
- πͺ Hyprland
- π¨ GTK 3 / GTK 4
- π₯οΈ Qt 5 / Qt 6
- π Kvantum
- π§ KDE color schemes
- πΈ Quickshell
- π± Kitty
Hyprland and Quickshell are optional, so Pywal Theme Switcher can also be used with other Wayland desktop environments or window managers.
β If you like this project, consider leaving a star on GitHub! It helps a lot! π«°π
Tip
π Looking for a Complete Out-of-the-Box Experience?
pywal-theme-switcher is natively integrated and pre-configured inside my full Arch Linux / CachyOS Rice.
Get seamless color switching, automated GTK/Qt/Hyprland/Quickshell theming, and an optimized desktop setup with a single command:
ποΈ Installer Repository: ByTrist4n / hyprland-setup
Hyprland is optional.
Pywal Theme Switcher can be used without Hyprland.
If you are using Hyprland, v0.55+ with Lua support is required.
You can check your version with:
hyprland --versionThe installer is designed for Arch Linux and Arch-based distributions using pacman and the AUR.
Clone the repository and run the installation script from the project root:
git clone https://github.com/ByTrist4n/pywal-theme-switcher.git
cd pywal-theme-switcher
./install.shDuring installation, you can choose between Rofi and Walker as your wallpaper selector.
./install.sh --walker./install.sh --rofiUse -y or --yes to automatically accept configuration prompts:
./install.sh --walker -yor:
./install.sh --rofi -yIf no launcher is specified, the installer asks which launcher you want to use.
When you launch pywal-theme-switcher, the script:
- πΌοΈ Lets you select a wallpaper using Walker or Rofi.
- π Generates a color palette using Pywal 16 / WPGTK.
- π₯οΈ Applies the generated colors to the configured applications.
- πͺ Updates Hyprland colors when Hyprland is available.
- π¨ Updates Qt / Kvantum themes.
- π§ Updates GTK 3 / GTK 4 theming.
- π§ Updates KDE color schemes.
- π± Updates Kitty colors when configured.
- πΈ Refreshes Quickshell when configured.
- πͺ Executes executable post-hooks.
- π Reloads the relevant desktop components.
- π Sends a desktop notification when notifications are enabled.
Launch the theme switcher:
pywal-theme-switcherThe switcher will open your configured wallpaper selector.
You can also use the executable directly:
~/.local/bin/pywal-theme-switcherThe installer installs the following packages through Pacman:
| Package | Description |
|---|---|
| π yay | AUR helper and pacman wrapper |
| πΌοΈ imagemagick | Image processing utilities |
| πΌοΈ libavif | AVIF image format support |
| πΌοΈ libheif | HEIF / HEIC image format support |
| π libnotify | Desktop notification support |
| π¨ qt5ct | Qt5 configuration utility |
| π¨ qt6ct | Qt6 configuration utility |
| π rofi | Application launcher and wallpaper selector |
| π€ ttf-jetbrains-mono-nerd | Developer font with specialized glyphs and icons |
Note: rofi is only installed when Rofi is selected.
The installer uses yay to install the following AUR packages:
| Package | Description |
|---|---|
| πΌοΈ awww | Dynamic Wayland wallpaper daemon |
| π elephant | Walker backend / provider framework |
| π elephant-files | File provider for Walker |
| π kvantum | SVG-based theme engine for Qt |
| π¨ papirus-icon-theme | Material Design icon theme for Linux |
| π python-pywal16-git | Pywal 16 color palette generator |
| πΆοΈ nwg-look | GTK3/4 configuration utility for Wayland |
| πΆ walker | Application launcher and wallpaper selector |
| π οΈ wpgtk | Universal theme template manager using Pywal |
Note::
walker,elephantandelephant-filesare installed only when Walker is selected.
pywal-theme-switcher supports custom executable scripts that run automatically after every theme change.
This makes it possible to synchronize additional applications or services with your Pywal colors.
Hooks are stored in:
~/.local/share/pywal-theme-switcher/post-hooks.d/
Create a script:
touch ~/.local/share/pywal-theme-switcher/post-hooks.d/01-custom.shAdd your commands with a proper shebang:
#!/usr/bin/env bash
# Your commands hereMake it executable:
chmod +x ~/.local/share/pywal-theme-switcher/post-hooks.d/01-custom.shExecutable hooks are automatically executed after a theme change.
Desktop notifications can be enabled or disabled through:
~/.config/pywal-theme-switcher/config.toml
Enable notifications:
[notifications]
enable = trueDisable notifications:
[notifications]
enable = falseDuring installation, you can optionally configure Kitty to load the colors generated by Pywal.
The generated colors are loaded from:
~/.cache/wal/colors-kitty.conf
The installer adds the following include to your Kitty configuration:
include ~/.cache/wal/colors-kitty.confThe installer can optionally configure:
SUPER + SHIFT + T
This launches:
pywal-theme-switcherYou can also launch the switcher manually:
pywal-theme-switcheror:
~/.local/bin/pywal-theme-switcherThe main configuration file is:
~/.config/pywal-theme-switcher/config.toml
The launcher is configured automatically during installation.
Example:
[general]
launcher = "walker"
[notifications]
enable = trueSupported launchers:
walker
rofi
Wallpapers are stored in:
~/Pictures/Wallpapers
Supported image formats include:
.jpg
.jpeg
.png
.webp
β If you like Pywal Theme Switcher, consider giving it a star! β
π«°π
