REQUIRED for ANY changes to Linux desktop, window manager, or system config...
Manage OhMyDebn Linux systems - a debonair Linux platform that combines the stability of the Debian distro, the ease of use of the Cinnamon desktop, and the beauty of Omarchy.
ALWAYS invoke this skill when the user's request involves ANY of these:
~/.config/cinnamon/ (desklets, applets, extensions, panels, etc.)~/.config/nemo/, ~/.config/gtk-3.0/, ~/.config/gtk-4.0/~/.config/ohmydebn/~/.zshrc, ~/.config/zsh/, etc.)ohmydebn-* command (theme, pkg, reset-config, update, version)If you're about to edit a config file in ~/.config/ on this system, STOP and use this skill first.
NEVER modify anything in /usr/share/ohmydebn/ - but READING is safe and encouraged.
This directory contains OhMyDebn's source files managed by the ohmydebn deb package. Any changes will be:
ohmydebn-update or package upgrade/usr/share/ohmydebn/ # READ-ONLY - NEVER EDIT (reading is OK)
โโโ bin/ # Source scripts (symlinked to PATH)
โโโ config/ # Default config templates
โโโ install/ # Installation scripts
Reading these directories is SAFE and useful - do it freely to:
cat $(which ohmydebn-theme-set)cat /usr/share/ohmydebn/install/config/cinnamon.sh (Cinnamon settings are applied via gsettings, not a flat config file)ls /usr/share/ohmydebn-themes/ls /usr/share/ohmydebn-themes/Always use these safe locations instead:
~/.config/ - User configuration (safe to edit)~/.config/ohmydebn/themes/<custom-name>/ - Custom themes (must be real directories)OhMyDebn Features:
Super + A opens the default one, chosen in Setup > Defaults > Agent (OpenCode until changed). Installed ones are kept current via ohmydebn-updateohmydebn-menu-picker --apps), Super + R or OhMyDebn Menu โ AppsOhMyDebn is built on:
| Component | Purpose | Config Location |
|---|---|---|
| Debian 13 or a supported derivative | Base OS | /etc/, ~/.config/ |
| Cinnamon | Desktop environment | ~/.config/cinnamon/ |
| Nemo | File manager | ~/.config/nemo/ |
| Cinnamon Panel | Taskbar/applets | gsettings (org.cinnamon), applet/desklet instance configs under ~/.config/cinnamon/spices/ |
| GTK3/GTK4 | Widget toolkit | ~/.config/gtk-3.0/, ~/.config/gtk-4.0/ |
| ohmydebn-menu-picker | App launcher / menu search (GTK, not rofi) | ~/.config/ohmydebn/current/picker-colors (theming only) |
| Alacritty | Default terminal | ~/.config/alacritty/ |
| gTile | Advanced window tiling | System Settings โ Extensions |
| Cinnamon Screensaver | Lock screen | gsettings (org.cinnamon.desktop.screensaver); trigger with cinnamon-screensaver-command -l |
| Cinnamon Notification Daemon | Notifications | System settings |
OhMyDebn provides commands following ohmydebn-<category>-<action> pattern.
# List all ohmydebn commands
ls /usr/share/ohmydebn/bin/ | grep ohmydebn-
# Find commands by category
ls /usr/share/ohmydebn/bin/ | grep ohmydebn-theme
ls /usr/share/ohmydebn/bin/ | grep ohmydebn-pkg
# Read a command's source to understand it
cat $(which ohmydebn-theme-set)
| Prefix | Purpose | Example |
|---|---|---|
ohmydebn-reset-config |
Reset OhMyDebn's app configs to defaults (backs them up first) | ohmydebn-reset-config |
ohmydebn-theme-* |
Theme management | ohmydebn-theme-set <name> |
ohmydebn-pkg-* |
Package management | ohmydebn-pkg-install <pkg> |
ohmydebn-update-* |
System updates | ohmydebn-update |
~/.config/cinnamon/
โโโ panels/ # Panel configurations
โ โโโ panel1/ # Top panel settings (OhMyDebn's default, single panel)
โโโ applets/ # Applet configurations
โโโ desklets/ # Desklet configurations
โโโ extensions/ # Extension configurations
โโโ spices/ # Spice (extension/applet/desklet) configs
โโโ background-chooser.log # Background selection logs
Core Cinnamon settings (panels, effects, keybindings, window management, etc.)
are not stored in a flat file โ they live in the dconf database under the
org.cinnamon schemas. Read/write them with gsettings get|set org.cinnamon ...
or browse everything with dconf-editor / dconf dump /org/cinnamon/.
Key behaviors:
Ctrl + Alt + Escape to restart Cinnamon desktopohmydebn-reset-config to reset all configs to defaults~/.config/nemo/
โโโ nemo-actions # Custom context menu actions
โโโ bookmarks # Bookmarks
โโโ nemo_preferences # File manager preferences
Nemo auto-reloads on config save.
~/.config/gtk-3.0/
โโโ settings.ini # GTK3 settings
โโโ bookmarks # GTK bookmarks
~/.config/gtk-4.0/
โโโ settings.ini # GTK4 settings
GTK applications reload themes automatically.
~/.config/alacritty/alacritty.toml # Main configuration
The default terminal is Alacritty with:
Restart terminal applications by closing and reopening the window or using the application's restart functionality.
~/.config/terminator/config
~/.config/gnome-terminal/
โโโ accels # Keyboard shortcuts
โโโ profiles/ # Terminal profiles
โโโ settings # General settings
~/.config/mate-terminal/
โโโ profiles/ # Terminal profiles
โโโ mate-terminal.rc # Configuration
~/.config/xfce4/terminal/
โโโ terminalrc # Configuration
| App | Location |
|---|---|
| btop | ~/.config/btop/btop.conf |
| fastfetch | ~/.config/fastfetch/config.jsonc |
| lazygit | ~/.config/lazygit/config.yml |
| starship | ~/.config/starship.toml |
| git | ~/.config/git/config |
| zsh | ~/.zshrc, ~/.config/zsh/ |
| oh my zsh | ~/.oh-my-zsh/ |
| zoxide | ~/.config/zoxide/ |
| eza | Configured via shell aliases |
| bat | ~/.config/bat/config |
| cava | ~/.config/cava/config |
| opencode | ~/.config/opencode/ |
| wallpapers | ~/.config/ohmydebn/current/theme/backgrounds/ (current theme), ~/.config/ohmydebn/backgrounds/<theme>/ (user overrides) |
For simple changes, edit files in ~/.config/:
# 1. Read current config
cat ~/.config/alacritty/alacritty.toml
# 2. Backup before changes
cp ~/.config/alacritty/alacritty.toml ~/.config/alacritty/alacritty.toml.bak.$(date +%s)
# 3. Make changes with Edit tool
# 4. Apply changes
# - Cinnamon: settings live in dconf (org.cinnamon schemas) โ use `gsettings set`, auto-reloads, no flat file to edit
# - Terminals: restart by closing and reopening window
/usr/share/ohmydebn-themes/ohmydebn/ for the native OhMyDebn theme/usr/share/ohmydebn-themes/tokyo-night/ for original Omarchy themes (interpreted for Cinnamon)When customizations go wrong:
# Reset all configured apps to defaults (creates backup automatically)
ohmydebn-reset-config
# The reset-config command:
# 1. Renames ~/.config/{aether,alacritty,bat,btop,cava,nvim,starship.toml},
# ~/.oh-my-zsh and ~/.zshrc to *-backup-<timestamp>
# 2. Deletes OhMyDebn's state markers (~/.local/state/ohmydebn*)
# 3. Re-runs OhMyDebn's configuration (ohmydebn.sh), which writes fresh defaults
ohmydebn-theme-list # Show available themes
ohmydebn-theme-current # Show current theme
ohmydebn-theme-set <name> # Apply theme (use "Tokyo Night" not "tokyo-night")
ohmydebn-theme-next # Cycle to next theme
ohmydebn-theme-bg-next # Cycle wallpaper
ohmydebn-theme-install <url> # Install from git repo
Theme Management:
Ctrl + Super + TCtrl + Super + B opens the theme carousel (Up/Down picks a background), or run ohmydebn-theme-bg-nextCtrl + Shift + A (Aether theme builder)Ctrl + Super + T)Terminology: a hotkey is the key combination you press (the docs page at ohmydebn.org/hotkeys lists them); a keybinding is the configuration that ties a key to an action. Menus, commands and files say keybinding.
Preferred: the user's own keybindings file. ~/.config/ohmydebn/keybindings.txt
is applied on top of the stock keybindings by every ohmydebn-update, when the
editor opened by ohmydebn-keybindings-edit closes, and by
ohmydebn-keybindings-apply. It survives updates and can be
copied to another OhMyDebn machine. Stock keybindings are addressed by NAME (the
first quoted field in /usr/share/ohmydebn/install/keybinding/keybinding-custom.txt),
never by slot number. Three verbs:
# add a keybinding, or change the stock keybinding of that name (command and/or key)
keybinding "Slack" "/usr/share/ohmydebn/bin/ohmydebn-launch-webapp https://slack.com" "['<Super>S']"
keybinding "Neovim" "/usr/share/ohmydebn/bin/ohmydebn-neovim" "['<Super>V']"
# remove a stock keybinding's key
keybinding-unbind "X"
# change a Cinnamon built-in (same verb and arguments as keybinding-cinnamon.txt)
keybinding-cinnamon "wm" "close" "['<Alt>F4']"
Workflow: ohmydebn-keybindings-edit (OhMyDebn Menu โ Setup โ Keybindings;
creates the file from the commented template, opens it, applies on close) or
edit the file and run ohmydebn-keybindings-apply. A key used by a keybinding
line is freed from whichever stock keybinding had it. Deleting a line reverts
that keybinding to stock on the next apply. Changes take effect immediately, no
Cinnamon restart. ohmydebn-doctor reports a file that was edited but not
applied. The Super + K page lists the stock keybindings only.
Do NOT write custom keybindings with raw gsettings - ohmydebn-update
rewrites the stock slots and a stray slot number will collide with a future
stock keybinding. Use the file above. Cinnamon Settings (cinnamon-settings keyboard) is fine for one-off, machine-local tweaks of Cinnamon's own
shortcuts.
View current bindings:
gsettings list-recursively org.cinnamon.desktop.keybindings.wm/usr/share/ohmydebn/install/keybinding/*.txt for the stock OhMyDebn bindingsWhen re-binding a key that is already used: check the stock files first and
tell the user what the key was bound to before, e.g. "Note: Super+X was bound
to X.com; it now opens Slack." ohmydebn-keybindings-apply prints the same
information when it frees a key.
Configure through Cinnamon Settings > Displays or via command line:
# List displays
xrandr
# Configure display (example)
xrandr --output eDP-1 --mode 1920x1080 --pos 0x0 --output HDMI-A-1 --mode 2560x1440 --pos 1920x0
Cinnamon window management is configured through:
gsettings set org.cinnamon.desktop.wm.preferences <key> <value> or dconf-editorFor advanced window management, additional extensions can be installed from Cinnamon Spices.
Basic Window Tiling:
Super + Left/Right/Up/Down: Tile window to respective screen halfAdvanced Window Tiling (gTile Extension):
Ctrl + Shift + G: Display gTile overlaygTile Hotkeys with Window Gaps:
Ctrl + Shift + 1/2/3 (numpad): Bottom corners/half with gapsCtrl + Shift + 4 (numpad) or H: Left half with gapsCtrl + Shift + 5 (numpad) or Enter: Full screen with gapsCtrl + Shift + 6 (numpad) or L: Right half with gapsCtrl + Shift + 7/8/9 (numpad): Top corners/half with gapsConfigure gTile:
Fonts are managed through Cinnamon Settings > Fonts, which provides options to:
Caskaydia Nerd Font is included by default for terminal icons and glyphs.
Additional tools available in OhMyDebn:
Ctrl + Shift + O (display animated logo)Ctrl + Alt + D (animated logo showcase)Ctrl + Shift + SSuper + TCtrl + Super + Aohmydebn-update # Full system update (also updates installed AI tools such as OpenCode)
ohmydebn-version # Show OhMyDebn version
System control (lock, shutdown, reboot) is handled through:
Ctrl + Alt + L (lock), Ctrl + Alt + End (shutdown), Ctrl + Alt + Del (logout)loginctl lock-session, shutdown now, reboot# Reset all configured apps to defaults
ohmydebn-reset-config
# Full reinstall of OhMyDebn deb package
sudo /usr/bin/apt install --reinstall ohmydebn
When user requests system changes:
~/.config/, never ~/.local/share/ohmydebn/apt or ohmydebn-pkg-installls /usr/share/ohmydebn/bin/ | grep ohmydebnWhen contributing to OhMyDebn itself (e.g., fixing bugs, adding features), the install process is designed to be idempotent and can be run multiple times.
When a user runs ohmydebn-update, it first installs the latest ohmydebn package and then goes through the install process again so they get the new changes. The install process is idempotent, meaning:
Development workflow:
/usr/share/ohmydebn/ohmydebn-updateInstallation scripts in /usr/share/ohmydebn/install/ handle:
ohmydebn-theme-set catppuccin or OhMyDebn Menu โ Style โ Theme~/.config/ohmydebn/keybindings.txt (see Customizing keybindings above) and run ohmydebn-keybindings-applyxrandr commandgsettings set org.cinnamon window-effect-speed <value>~/.config/starship.toml or use Starship presetsCtrl + Shift + A (Aether theme builder)ohmydebn-reset-configShift + Print or Ctrl + Shift + Print (to clipboard)Ctrl + Shift + S (fastfetch)Super + SpaceSuper + A (the default assistant, set in Setup > Defaults > Agent) or from Apps > AIohmydebn-update (updates OpenCode if it's installed)Super + R (GTK app launcher)Ctrl + Shift + OCtrl + Shift + S (fastfetch GUI)Super + T (btop)cava in terminal or Ctrl + Super + A