Configuration
Deckery's behaviour is controlled entirely through TOML config files that live in ~/.config/makima/. These files tell makima which buttons do what, and can vary per application.
Config files
Base config: Steam Deck.toml
The main config file for the Steam Deck. It defines the default button layout that applies whenever no app-specific config matches.
This file is symlinked from the deckery repo into place:
~/.config/makima/Steam Deck.toml
→ ~/.local/share/deckery/deckery/configs/Steam Deck.toml
Because it's a symlink into a git repo, any edits you make here are version-controlled. To customise your base layout, edit the file directly — changes are tracked automatically.
Customised base config requires manual merge on updates
When you run git pull to update Deckery, changes to Steam Deck.toml in the repo may conflict with your local edits. Git will flag these as merge conflicts that you need to resolve manually before the update can complete. This is standard git workflow, but worth being aware of before making extensive changes to the base config.
App-specific configs: Steam Deck::AppName.toml
When a window belonging to a specific application is focused, makima loads the matching app config on top of the base config. These files follow the naming pattern:
~/.config/makima/Steam Deck::Firefox.toml
~/.config/makima/Steam Deck::Dolphin.toml
App-specific configs are not symlinked into the repo — they live directly in ~/.config/makima/ and are yours to create and edit freely. The installer copies any bundled app configs once and does not overwrite them on subsequent runs.
Config management strategy is still evolving
The current approach (symlink for the base config, plain copies for app-specific configs) is a pragmatic first step. Open questions include whether app-specific configs should also be symlinks, and whether the entire ~/.config/makima/ folder should point into the repo. A cleaner solution — possibly symlinking the whole config directory — is being considered but not yet implemented.
Config format
Configs are written in TOML. A minimal example:
[device]
name = "Steam Deck"
[[bindings]]
key = "BTN_SOUTH" # A button
action = "KEY_ENTER"
[[bindings]]
key = "BTN_NORTH" # Y button
action = "KEY_F5"
[[bindings]]
key = "BTN_TL" # L1
modifiers = []
action = { type = "command", value = "dbus-send ... Toggle" }
Refer to the makima-deckery README for the full config reference including modifiers, layouts, and context switching.
Where to find the files
| File | Location |
|---|---|
| Base config | ~/.config/makima/Steam Deck.toml |
| App-specific configs | ~/.config/makima/Steam Deck::*.toml |
| Versioned source | ~/.local/share/deckery/deckery/configs/ |
To open the config folder directly, use the Open config folder entry in the Deckery tray menu.