What is Gtheme?
Gtheme is a dotfile and global theme manager for Linux, written entirely in Rust.
Its main goal is to standardize and abstract hardware-specific dotfile configurations, letting you change your desktop colors across all applications with 350+ themes and wallpapers using a single command.
How it works
- You write patterns — template files with generic color placeholders like
<[foreground]>and<[background]>. - Gtheme fills those placeholders with values from the selected theme.
- Post-scripts automatically reload or restart applications so changes take effect immediately.
The result: you can switch between any desktop configuration with a single command, and change the theme of all applications in a centralized, automated way.
Desktops
A desktop in Gtheme is a complete set of dotfiles — window manager config, status bar, terminal, launcher, and more — packaged together with patterns, post-scripts, and extras.
You can install desktops from other users who have adapted their dotfiles to Gtheme, and everything works out of the box. No more broken configs when trying someone else’s rice.
Themes
A theme is a TOML file defining 19 standard color variables (background, foreground, 16 ANSI colors, cursor, and selection colors) plus optional extras like wallpaper paths and IDE theme names.
Gtheme ships with 350+ themes — from popular schemes like Dracula, Nord, and Catppuccin to hundreds of others.
Key features
- Pattern templating — write configs once with
<[color]>placeholders, apply any theme - 350+ built-in themes — Dracula, Nord, Catppuccin, Tokyo Night, Gruvbox, and many more
- Desktop system — switch entire desktop environments with one command
- CLI and TUI — use whichever interface you prefer
- Post-scripts — automatically reload apps after theme changes
- Extras — theme-specific scripts for wallpapers, IDE themes, and more
- Pattern inversion — swap foreground/background when colors clash with wallpapers
- User settings — configure fonts, monitors, and other hardware-specific values once
- Shell completions — tab completion for Zsh, Bash, and Fish