Theme System
omfreebdy includes a powerful theming system that instantly updates all applications with a single command.
Available Themes
Section titled “Available Themes”Dark Themes (13)
Light Themes (4)
Switching Themes
Section titled “Switching Themes”Command Line
Section titled “Command Line”# Apply a specific themetheme-set tokyo-night
# List all themestheme-set --list
# Show current themetheme-set --current
# Interactive pickertheme-set --selectUse theme-set --list to see all available themes on your system.
Keybinding
Section titled “Keybinding”Press ⌘ + ⇧ + T to open the interactive theme picker.
What Gets Themed
Section titled “What Gets Themed”The theme system updates all of these simultaneously:
| Application | Config Location |
|---|---|
| Hyprland borders | ~/.config/hypr/hyprland.conf |
| Waybar | ~/.config/waybar/style.css |
| Foot terminal | ~/.config/foot/foot.ini |
| Ghostty terminal | ~/.config/ghostty/config |
| Mako notifications | ~/.config/mako/config |
| Fuzzel launcher | ~/.config/fuzzel/fuzzel.ini |
| Swaylock | ~/.config/swaylock/config |
| GTK 3/4 apps | ~/.config/gtk-{ 3,4 }.0/ |
| Neovim | Dynamic via SIGUSR1 |
| btop | ~/.config/btop/themes/ |
| VSCode/Cursor | ~/.config/Code/User/settings.json |
Theme Structure
Section titled “Theme Structure”Each theme is a directory in ~/.config/omfreebdy/themes/:
themes/└── tokyo-night/ ├── colors.toml # Color definitions ├── neovim.lua # Neovim colorscheme plugin ├── vscode.json # VSCode theme mapping ├── btop.theme # btop color theme └── backgrounds/ # Wallpaper images ├── wallpaper1.jpg └── wallpaper2.pngThe colors.toml file defines all colors for your theme:
# Core colorsbackground = "#1a1b26"foreground = "#c0caf5"accent = "#7aa2f7"
# Standard 16-color palette (color0-15)color0 = "#15161e" # blackcolor1 = "#f7768e" # redcolor2 = "#9ece6a" # greencolor3 = "#e0af68" # yellowcolor4 = "#7aa2f7" # bluecolor5 = "#bb9af7" # magentacolor6 = "#7dcfff" # cyancolor7 = "#a9b1d6" # whitecolor8 = "#414868" # bright blackcolor9 = "#f7768e" # bright redcolor10 = "#9ece6a" # bright greencolor11 = "#e0af68" # bright yellowcolor12 = "#7aa2f7" # bright bluecolor13 = "#bb9af7" # bright magentacolor14 = "#7dcfff" # bright cyancolor15 = "#c0caf5" # bright white
# Optional extended colorsselection_background = "#283457"selection_foreground = "#c0caf5"cursor = "#c0caf5"Background Images
Section titled “Background Images”Themes can include wallpaper images in a backgrounds/ subdirectory.
Cycling Backgrounds
Section titled “Cycling Backgrounds”# Next background for current themebg-nextOr use the keybinding: ⌘ + B
Manual Background Selection
Section titled “Manual Background Selection”Via the main menu: ⌘ + D → Style → Background
Creating Custom Themes
Section titled “Creating Custom Themes”Create a theme directory
Create a new theme directory with a backgrounds folder:
mkdir -p ~/.config/omfreebdy/themes/my-theme/backgroundsDefine colors
Create colors.toml with your color scheme:
cat > ~/.config/omfreebdy/themes/my-theme/colors.toml << 'EOF'background = "#1e1e2e"foreground = "#cdd6f4"accent = "#89b4fa"
# Define all color0-15 herecolor0 = "#45475a"color1 = "#f38ba8"color2 = "#a6e3a1"color3 = "#f9e2af"color4 = "#89b4fa"color5 = "#f5c2e7"color6 = "#94e2d5"color7 = "#bac2de"color8 = "#585b70"color9 = "#f38ba8"color10 = "#a6e3a1"color11 = "#f9e2af"color12 = "#89b4fa"color13 = "#f5c2e7"color14 = "#94e2d5"color15 = "#cdd6f4"EOFAdd Neovim integration (optional)
Create neovim.lua to specify which Neovim colorscheme to use:
cat > ~/.config/omfreebdy/themes/my-theme/neovim.lua << 'EOF'return { { "catppuccin/nvim", name = "catppuccin" }, { "LazyVim/LazyVim", opts = { colorscheme = "catppuccin" } },}EOFThis tells Neovim which plugin and colorscheme to activate when your theme is applied.
Add wallpapers (optional)
Copy wallpaper images to your theme’s backgrounds directory:
cp ~/wallpaper.jpg ~/.config/omfreebdy/themes/my-theme/backgrounds/You can add multiple images, and they’ll be available for cycling with ⌘ + B .
Apply your theme
Test your new theme:
theme-set my-themeYour custom theme is now active across all applications. Use ⌘ + ⇧ + T to switch between themes anytime.
Live Reload
Section titled “Live Reload”Most applications reload automatically when the theme changes:
- Terminals (foot): Sent SIGUSR1 signal
- Neovim: Sent SIGUSR1 signal (triggers autocmd)
- Waybar: Sent SIGUSR2 signal
- Hyprland: Config reloaded via
hyprctl reload - Mako: Reloaded via
makoctl reload
For apps that don’t hot-reload, restart them to see the theme changes.