Configuration¶
Hamr is configured via ~/.config/hamr/config.json. Use the built-in settings plugin (/settings) to browse and modify options - no manual editing needed.
Configuration Reference¶
| Category | Option | Default | Description |
|---|---|---|---|
| Apps | terminal |
ghostty |
Terminal emulator for shell commands |
terminalArgs |
--class=floating.terminal |
Arguments passed to terminal | |
shell |
zsh |
Shell for command execution (zsh, bash, fish) | |
| Behavior | stateRestoreWindowMs |
30000 |
Time (ms) to preserve state after soft close (0 to disable) |
clickOutsideAction |
intuitive |
Click outside behavior: intuitive, close, or minimize |
|
| Search | maxDisplayedResults |
16 |
Maximum results shown in launcher |
maxRecentItems |
20 |
Recent history items on empty search | |
debounceMs |
50 |
Search input debounce (ms) | |
diversityDecay |
0.7 |
Decay for consecutive results from same plugin (0-1, lower = more diverse) | |
maxResultsPerPlugin |
0 |
Hard limit per plugin (0 = no limit) | |
| Appearance | backgroundTransparency |
0.2 |
Background transparency (0-1) |
launcherXRatio |
0.5 |
Horizontal position (0=left, 1=right) | |
launcherYRatio |
0.1 |
Vertical position (0=top, 1=bottom) | |
fontScale |
1 |
Font scaling factor (0.75=min, 1.5=max) | |
| Sizes | searchWidth |
580 |
Search bar width (px) |
maxResultsHeight |
600 |
Max results container height (px) | |
| Paths | wallpaperDir |
"" |
Custom wallpaper directory (empty = ~/Pictures/Wallpapers) |
colorsJson |
"" |
Custom colors.json path (empty = ~/.config/hamr/colors.json) |
Prefix Shortcuts¶
The action bar shortcuts are fully customizable. Edit ~/.config/hamr/config.json:
{
"search": {
"actionBarHints": [
{ "prefix": "~", "icon": "folder", "label": "Files", "plugin": "files" },
{
"prefix": ";",
"icon": "content_paste",
"label": "Clipboard",
"plugin": "clipboard"
},
{
"prefix": "/",
"icon": "extension",
"label": "Plugins",
"plugin": "action"
},
{
"prefix": "!",
"icon": "terminal",
"label": "Shell",
"plugin": "shell"
},
{
"prefix": "=",
"icon": "calculate",
"label": "Math",
"plugin": "calculate"
},
{
"prefix": ":",
"icon": "emoji_emotions",
"label": "Emoji",
"plugin": "emoji"
}
]
}
}
Each hint has:
- prefix: The trigger character (e.g.,
~,;,:) - icon: Material Symbol name
- label: Display name shown in the action bar
- plugin: Plugin ID to launch or
actionfor plugin search mode
Direct Plugin Keybindings¶
You can bind keys to open specific plugins directly:
Hyprland¶
# ~/.config/hypr/hyprland.conf
# Open clipboard directly with Mod+V
bind = SUPER, V, exec, hamr plugin clipboard
# Open emoji picker with Mod+Period
bind = SUPER, Period, exec, hamr plugin emoji
# Open file search with Mod+E
bind = SUPER, E, exec, hamr plugin files
Niri¶
// ~/.config/niri/config.kdl
binds {
// Open clipboard directly with Mod+V
Mod+V { spawn "hamr" "plugin" "clipboard"; }
// Open emoji picker with Mod+Period
Mod+Period { spawn "hamr" "plugin" "emoji"; }
// Open file search with Mod+E
Mod+E { spawn "hamr" "plugin" "files"; }
}
File Structure¶
~/.config/hamr/
├── plugins/ # User plugins (override built-in)
├── config.json # User configuration
├── quicklinks.json # Custom quicklinks
└── plugin-indexes.json # Plugin data and frecency (auto-generated)
~/.local/share/hamr/ # Installation directory (AUR/manual)
├── shell.qml # Entry point
├── plugins/ # Built-in plugins (read-only)
├── modules/ # UI components
└── services/ # Core services
Troubleshooting¶
"I ran hamr but nothing appears"¶
This is expected. Hamr starts hidden and waits for a toggle signal. Make sure you:
- Added the keybinding to your compositor config (see Installation)
- Reloaded your compositor config
- Press your keybind (e.g., Super key or Ctrl+Space)
Check dependencies¶
View logs¶
Crash with Qt version mismatch¶
This happens when Qt is updated but Quickshell wasn't rebuilt:
Warning about missing colors.json¶
This is harmless. Hamr uses built-in default colors. For dynamic theming from your wallpaper, install matugen and use the wallpaper plugin.
Warning about missing quicklinks.json¶
This is harmless. Quicklinks are optional. To add quicklinks, create ~/.config/hamr/quicklinks.json: