Configuration
Keybindings
Walker provides extensive keyboard control and customization options.
Default Keybindings
Global Navigation
| Key | Action |
|---|---|
Escape | Close Walker |
Down/↓ | Next result |
Up/↑ | Previous result |
Tab | Next result (alternative) |
Shift+Tab | Previous result |
Execution
| Key | Action |
|---|---|
Enter | Execute default action |
Shift+Enter | Execute without closing Walker |
Search Control
| Key | Action |
|---|---|
Ctrl+E | Toggle exact search mode |
Ctrl+R | Resume last query (service mode) |
Quick Activation
| Key | Action |
|---|---|
F1 | Activate 1st result |
F2 | Activate 2nd result |
F3 | Activate 3rd result |
F4 | Activate 4th result |
Provider-Specific Keybindings
Desktop Applications
| Key | Action |
|---|---|
Enter | Launch application |
Shift+Enter | Launch and keep Walker open |
Ctrl+P | Pin/unpin application |
Ctrl+N | Move pinned item up |
Ctrl+M | Move pinned item down |
Files
| Key | Action |
|---|---|
Enter | Open file |
Ctrl+Enter | Open parent directory |
Ctrl+Shift+C | Copy file path |
Ctrl+C | Copy file |
Calculator
| Key | Action |
|---|---|
Enter | Copy result |
Ctrl+D | Delete from history |
Ctrl+S | Save calculation |
Runner (Commands)
| Key | Action |
|---|---|
Enter | Run command |
Shift+Enter | Run in terminal |
Clipboard
| Key | Action |
|---|---|
Enter | Copy to clipboard |
Ctrl+D | Remove entry |
Ctrl+Shift+D | Clear entire history |
Ctrl+I | Toggle image display |
Ctrl+O | Edit clipboard entry |
Todo
| Key | Action |
|---|---|
Enter | Save todo / Toggle state |
Ctrl+D | Delete todo |
Ctrl+F | Mark as done |
Ctrl+X | Clear completed todos |
Bluetooth
| Key | Action |
|---|---|
Enter | Connect/disconnect |
Ctrl+F | Start device scan |
Ctrl+T | Trust device |
Ctrl+U | Untrust device |
Ctrl+D | Remove device |
Arch Linux Packages
| Key | Action |
|---|---|
Enter | Install/remove pkg |
Symbols & Unicode
| Key | Action |
|---|---|
Enter | Insert symbol |
Web Search
| Key | Action |
|---|---|
Enter | Open in browser |
Provider List
| Key | Action |
|---|---|
Enter | Switch to provider |
Customizing Keybindings
Edit ~/.config/walker/config.toml to customize keybindings.
Global Keybindings
[keybinds]
close = ["Escape", "ctrl q"] # Multiple bindings allowed
next = ["Down", "ctrl j"]
previous = ["Up", "ctrl k"]
toggle_exact = ["ctrl e"]
resume_last_query = ["ctrl r"]
quick_activate = ["F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8"]
Provider Action Keybindings
[providers.actions]
# Example: Custom calculator bindings
calc = [
{ action = "copy", default = true, bind = "Return" },
{ action = "copy", bind = "ctrl c" }, # Additional binding
{ action = "delete", bind = "ctrl d", after = "AsyncReload" },
{ action = "save", bind = "ctrl s", after = "ClearReload" },
]
# Example: Custom application launcher bindings
desktopapplications = [
{ action = "start", default = true, bind = "Return" },
{ action = "start", bind = "ctrl o" }, # Alternative
{ action = "start:keep", bind = "shift Return", after = "KeepOpen" },
{ action = "pin", bind = "ctrl p", after = "AsyncReload" },
]
Keybinding Format
Valid Modifiers
ctrl- Control keyalt- Alt keyshift- Shift keysuper- Super/Windows/Command key
Combining Modifiers
# Single modifier
bind = "ctrl a"
# Multiple modifiers
bind = "ctrl shift a"
bind = "ctrl alt shift f"
# No modifier (just a key)
bind = "Return"
bind = "F1"
Key Names
Walker uses GDK key names. Common keys:
Special Keys:
Return(Enter)EscapeBackSpaceDeleteTabspace
Navigation:
Up,Down,Left,RightHome,EndPage_Up,Page_Down
Function Keys:
F1throughF12
Letters and Numbers:
athroughz0through9
Symbols:
semicolon(;)colon(:)slash(/)backslash(\)period(.)comma(,)minus(-)plus(+)equal(=)bracketleft([)bracketright(])braceleft({)braceright(})
For a complete list, see GDK key values.
The constant name GDK_KEY_semicolon means the key name is semicolon.
Action Properties
When defining action keybindings:
{ action = "name", bind = "key combo", default = true, global = true, label = "Label", after = "Behavior" }
action- Action identifier (required)bind- Keybinding (optional, if not default)default- Use this action for Enter key (optional)global- Available regardless of selection (optional)label- Display label (optional)after- Post-action behavior (optional)Nothing- Stay open, no reloadClose- Close WalkerKeepOpen- Keep Walker openReload- Reload resultsClearReload- Clear and reloadAsyncReload- Async reloadAsyncClearReload- Async clear and reload
Examples
Vim-like Navigation
[keybinds]
close = ["Escape", "ctrl c"]
next = ["Down", "ctrl j"]
previous = ["Up", "ctrl k"]
Extended Quick Activation
[keybinds]
quick_activate = [
"F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8",
"ctrl 1", "ctrl 2", "ctrl 3", "ctrl 4"
]
Custom Application Actions
[providers.actions]
desktopapplications = [
{ action = "start", default = true, bind = "Return" },
{ action = "start:keep", bind = "ctrl Return", after = "KeepOpen" },
{ action = "start:keep", bind = "shift Return", after = "KeepOpen" },
{ action = "pin", bind = "ctrl p", after = "AsyncReload" },
{ action = "unpin", bind = "ctrl shift p", after = "AsyncReload" },
{ action = "pinup", bind = "alt Up", after = "AsyncReload" },
{ action = "pindown", bind = "alt Down", after = "AsyncReload" },
]
Custom File Manager Actions
[providers.actions]
files = [
{ action = "open", default = true, bind = "Return" },
{ action = "open", bind = "ctrl o" },
{ action = "opendir", label = "open parent", bind = "ctrl shift o" },
{ action = "opendir", bind = "alt Up" },
{ action = "copypath", label = "copy path", bind = "ctrl c" },
{ action = "copyfile", label = "copy file", bind = "ctrl shift c" },
]
Debugging Keybindings
Enable debug mode to see keybinding information:
debug = true
Or run Walker with debug flag:
walker --debug
This will print keybinding events to help troubleshoot issues.
Keybinding Conflicts
If multiple actions have the same keybinding:
- Provider-specific bindings take precedence
- The first defined binding wins
- Global bindings are always available
To avoid conflicts:
- Use unique combinations for different actions
- Use modifiers to distinguish similar actions
- Check default bindings before adding custom ones
Tips
Multiple Bindings: You can assign multiple keybindings to the same action:
close = ["Escape", "ctrl q", "ctrl w"]Consistency: Keep similar actions across providers using similar keys:
# Use Ctrl+D for delete everywhere calc: { action = "delete", bind = "ctrl d" } clipboard: { action = "remove", bind = "ctrl d" } todo: { action = "delete", bind = "ctrl d" }Global Actions: Mark frequently used actions as global:
{ action = "clear_all", bind = "ctrl shift d", global = true }Testing: After changing keybindings, test immediately to ensure they work as expected.
Next Steps
- Provider Actions - Complete action reference
- Configuration - General configuration
- Providers - Learn about providers