Skip to content

Frosco/theminator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Theminator

Synchronize app themes with KDE Plasma's light/dark mode.

Theminator is a daemon that listens for KDE's day/night theme changes and automatically applies matching themes to your applications.

Supported Apps

  • Ghostty - writes theme config, sends reload signal
  • VS Code - updates workbench.colorTheme in settings.json
  • Neovim - writes Lua colorscheme file
  • KDE - applies Plasma color schemes
  • Wallpaper - sets desktop wallpaper per theme

Installation

# Install with uv
uv tool install .

# Or install in editable mode for development
uv tool install --editable .

Setup

  1. Copy example config to your config directory:

    mkdir -p ~/.config/theminator/themes
    cp examples/config.toml ~/.config/theminator/
    cp examples/themes/*.toml ~/.config/theminator/themes/
  2. Install the required themes in each app:

    • Ghostty: themes are built-in
    • VS Code: install Catppuccin/Solarized extensions
    • Neovim: install colorscheme plugins
    • KDE: install color schemes from System Settings
  3. Edit ~/.config/theminator/config.toml to match your setup.

  4. For Ghostty, add this line to your main config (~/.config/ghostty/config):

    config-file = theminator-colors
    
  5. For Neovim, require the generated file in your config:

    pcall(require, "theminator_colors")

Usage

# Apply a specific theme
theminator apply catppuccin-mocha

# List available themes
theminator list

# Show current status
theminator status

# Run as daemon (reacts to KDE light/dark changes)
theminator daemon

Running as a Service

Copy the systemd service file and enable it:

cp examples/theminator.service ~/.config/systemd/user/
systemctl --user enable --now theminator.service

Configuration

Main Config (~/.config/theminator/config.toml)

light_theme = "catppuccin-latte"
dark_theme = "catppuccin-mocha"

[apps.ghostty]
enabled = true
output = "~/.config/ghostty/theminator-colors"
reload_cmd = "pkill -USR1 ghostty"

[apps.vscode]
enabled = true
output = "~/.config/Code - OSS/User/settings.json"

[apps.neovim]
enabled = true
output = "~/.config/nvim/lua/theminator_colors.lua"

[apps.kde]
enabled = true

[apps.wallpaper]
enabled = true

Theme Files (~/.config/theminator/themes/*.toml)

name = "Catppuccin Mocha"
variant = "dark"
wallpaper = "~/.wallpapers/catppuccin-mocha.png"

[apps]
ghostty = "catppuccin-mocha"
vscode = "Catppuccin Mocha"
neovim = "catppuccin-mocha"
kde = "CatppuccinMochaBlue"

Requirements

  • Python 3.11+
  • KDE Plasma 6 (uses D-Bus portal for light/dark detection)
  • D-Bus session bus

About

A tool to set a theme across different apps

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages