Desktop Specification
A desktop is a directory containing a complete set of dotfiles, patterns, post-scripts, and extras. Desktops are stored in ~/.config/gtheme/desktops/.
Structure
desktop_name/├── desktop_config.json├── desktop_info.toml├── README.md├── .config/└── gtheme/ ├── patterns/ ├── post-scripts/ └── extras/.config/ directory
Contains all configuration files that get deployed to ~/.config/ when the desktop is applied. This is a mirror of what the user’s ~/.config/ should look like.
gtheme/ directory
Contains the Gtheme-specific files for this desktop:
patterns/— Template files with color placeholders. See Pattern Specification.post-scripts/— Scripts that run after a pattern is filled. See Post-Script Specification.extras/— Theme-specific scripts (wallpaper, IDE themes, etc.). See Extra Specification.
desktop_config.json
Controls which patterns are enabled and which are inverted:
{ "default_theme": "Tokyo-Night", "actived": { "kitty": true, "waybar-colors": true, "hyprland-colors": true, "rofi": true, "sddm": true }, "inverted": { "kitty": false, "waybar-colors": false, "sddm": true }}default_theme— The theme applied when this desktop is first set up.actived— Map of pattern names to booleans. Only enabled patterns are filled when a theme is applied.inverted— Map of pattern names to booleans. Inverted patterns swap foreground/background colors.
desktop_info.toml
Metadata about the desktop:
author = 'David Rodríguez (@daavidrgz)'description = 'Modern Hyprland desktop based on HyprKenso'credits = 'https://github.com/aadritobasu/HyprKenso'dependencies = [ 'hyprland', 'waybar', 'rofi-wayland', 'kitty',]optional_dependencies = [ 'fuzzel', 'cava', 'alacritty',]author— Desktop author name.description— Short description of the desktop.credits— Link to the original project or inspiration.dependencies— Required packages for this desktop to function.optional_dependencies— Packages for optional features.
Creating a desktop
Generate a skeleton desktop with:
gtheme desktop new-skeleton <name>See Creating Desktops for a full walkthrough.