Skip to content

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:

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:

Terminal window
gtheme desktop new-skeleton <name>

See Creating Desktops for a full walkthrough.