# Keybindings & Shortcuts
Tuim features a dual-layer keyboard system:
1. **TUI Interface Layer**: Global hotkeys handled directly by Tuim's Zig frontend (panel toggling, region switching, commands, Zen mode).
2. **Editor Layer**: Text editing mappings handled by the Neovim engine (Vim motions in Normal mode, standard editing keys in IDE mode).
All core TUI shortcuts can be fully customized with an interactive key recorder.
---
## 1. Global TUI Interface Keybindings
These shortcuts are handled by Tuim regardless of the current editor state:
| Action | Default Keybinding | Alternative / Mouse |
| :--- | :--- | :--- |
| **Search Commands** | F1 | Click `[Commands F1]` in header |
| **Toggle Sidebar** | Ctrl+E | Click `< Workspace` or sidebar icon |
| **Toggle Terminal Panel** | Ctrl+T | Click terminal status item |
| **Cycle Next Region** | F6 | Direct mouse click on target panel |
| **Cycle Previous Region**| Shift+F6| Direct mouse click on target panel |
| **Toggle Zen Mode** | F11 | Click footer mode return button |
| **Report a Bug** | F12 (IDE mode) | F1 → **Report bug** |
| **Resize Panel Left** | Alt+← | Drag split border with mouse |
| **Resize Panel Right** | Alt+→ | Drag split border with mouse |
| **Resize Panel Up** | Alt+↑ | Drag split border with mouse |
| **Resize Panel Down** | Alt+↓ | Drag split border with mouse |
---
## 2. Editor Keybindings (Normal Mode)
When using **Normal Mode**, `` acts as the leader key:
| Category | Shortcut | Description |
| :--- | :--- | :--- |
| **File Operations** | Ctrl+S | Save current buffer (prompts for name on new buffer) |
| | Ctrl+N | Create new empty buffer |
| | Ctrl+Q | Quit Tuim (with unsaved changes prompt) |
| **Project Search** | Ctrl+P or ` f f` | Fuzzy find files across project (Telescope) |
| | Alt+G or ` f g` | Search text across project with ripgrep |
| **Splits & Windows**| Ctrl+W s | Horizontal editor split |
| | Ctrl+W v | Vertical editor split |
| | Ctrl+W h/j/k/l | Move focus between splits (left/down/up/right) |
| | Ctrl+W q | Close active editor split |
| **Vim Enhancements**| ` d` | Delete text without replacing the default yank buffer |
| | ` s` | Search and replace word under cursor on current line |
| | ` p` (Visual) | Paste over selection without clobbering register |
| | K / J (Visual) | Move selected lines up / down |
| | Ctrl+D / Ctrl+U | Scroll half page down / up (keeps cursor centered) |
---
## 3. Editor Keybindings (IDE Mode)
In **IDE Mode**, standard desktop editing shortcuts apply to all editable text buffers:
| Action | Shortcut (Linux / Windows) | Shortcut (macOS) |
| :--- | :--- | :--- |
| **Save** | Ctrl+S | Cmd+S |
| **Undo** | Ctrl+Z | Cmd+Z |
| **Redo** | Ctrl+Y or Ctrl+Shift+Z | Cmd+Shift+Z |
| **Cut** | Ctrl+X | Cmd+X |
| **Copy** | Ctrl+C | Cmd+C |
| **Paste** | Ctrl+V | Cmd+V |
| **Select All** | Ctrl+A | Cmd+A |
| **Select Current Line** | Ctrl+L | Ctrl+L |
| **Find in Buffer** | Ctrl+F | Cmd+F |
| **Replace in Buffer** | Ctrl+H | Cmd+R |
| **Select by Character** | Shift+← / Shift+→ | Shift+← / Shift+→ |
| **Select by Word** | Ctrl+Shift+← / → | Cmd+Shift+← / → |
---
## 4. Customizing Shortcuts
Tuim provides an interactive shortcut customization panel:
1. Open the command menu (F1) and choose **Settings** → **Keyboard shortcuts**.
2. Press → to enter the actions list.
3. Select an action and press Enter to enter **Record Mode**.
4. Press the key combination you wish to bind (function keys, Ctrl, Alt, or modifier combos).
5. Conflicting keybindings are automatically detected and rejected.
6. Press r to reset the selected action to its default, or press Ctrl+S to save.
### Built-in Keyboard Presets
Inside the Keyboard Shortcuts settings panel, you can switch between preset profiles with a single keypress:
* Press v for the **Vim-Safe Preset**:
Moves workspace controls from `Ctrl` keys to `Alt` keys so they do not conflict with Neovim's terminal motions or insert-mode completion:
* Alt+E: Sidebar toggle
* Alt+T: Terminal toggle
* Alt+N: New file
* Alt+P: Find file
* Alt+G: Search project text
* Press p for the **IDE Preset**:
* Ctrl+B: Sidebar toggle
* Ctrl+T: Terminal toggle
* Ctrl+N: New file
* Ctrl+P: Find file
### Assigning Shortcuts from the Command Palette
You can also assign a shortcut directly from the F1 command menu:
1. Press F1 to open the command palette.
2. Highlight any command.
3. Press F2 (or click the shortcut column).
4. Press the desired key combination to bind it instantly.
---
## Next Steps
Explore file operations, buffers, and project searching in **[File & Buffer Management](File-and-Buffer-Management.md)**.