# Runa Configuration Guide
runa is under active development and options may change over time.
## Config File
`runa` is configured via a TOML file located at:
`~/.config/runa/runa.toml` (Linux/macOS)
`C:\Users\<UserName>\.config\runa\runa.toml` (Windows)
**Override**: You can specify a custom path by setting the `RUNA_CONFIG` environment variable.
## Quick Start
If you don't have a config file yet, you can generate one automatically:
- `rn --init`: Generates the configuration.
- `rn --init-full`: Generates a full config files with all options as seen below.
- `rn --config-help`: Displays all configuration options.
## General Settings
```toml
# ANY unused / default options can be removed from runa.toml.
# Removed / unused options will default to the internal defaults as seen below.
# Sort directories before files
dirs_first = true
# Show hidden files (dotfiles)
show_hidden = false
# Show hidden system files (mostly for Windows)
show_system = false
# Ignore case sensitivity when searching or sorting
case_insensitive = true
# Always show these directories, even if 'show_hidden' is false. Example: always_show = [".config", "Downloads"]
always_show = []
[display]
# Show the selection icon next to the file/directory name
selection_marker = true
# Show the default '/' symbol next to directory names
dir_marker = true
# Border style: "none", "unified", or "split"
borders = "split"
# Show pane titles at the top (e.g., "Main", "Preview")
titles = false
# Draw vertical lines between panes
separators = true
# Show the parent directory pane (left)
parent = true
# Show the file preview pane (right)
preview = true
# Enable underline in the preview pane
preview_underline = true
# Use independent color for the preview underline
preview_underline_color = false
# Padding from entry to pane edge (0–4)
entry_padding = 1
# Scroll padding of the main pane
scroll_padding = 5
[display.layout]
# Display ratios for panes (will be scaled to 100%)
parent = 20
main = 40
preview = 40
```
## Theme Configuration
```toml
[theme]
# The symbol for the current selection. Use "" or " " to disable.
selection_icon = ">"
# Theme color values can be terminal color names ("Red", "Blue", etc.), hex ("#RRGGBB"), or "default".
# Each [theme.*] section supports keys: fg (foreground), bg (background)
[theme.selection] # Selection bar colors
fg = "default"
bg = "default"
[theme.accent] # Borders/titles
fg = "default"
bg = "default"
[theme.entry] # Normal entries
fg = "default"
bg = "default"
[theme.directory] # Directory entries
fg = "cyan"
bg = "default"
[theme.separator] # Vertical separators
fg = "default"
bg = "default"
[theme.parent] # Parent pane text
fg = "default"
bg = "default"
selection_fg = "default"
selection_bg = "default"
[theme.preview] # Preview pane text
fg = "default"
bg = "default"
selection_fg = "default"
selection_bg = "default"
[theme.marker] # Multi-select marker
icon = "*"
fg = "yellow"
bg = "default"
[theme.underline] # Underline colors (if enabled)
fg = "default"
bg = "default"
[theme.path] # Path bar at the top
fg = "magenta"
bg = "default"
# Full widget/dialog theming: position, size, and colors
[theme.widget]
# Leave blank or omit to use the regular defaults.
# Popup position: choose one of the following styles
# - Preset string: "center", "top_left", "bottom_right", etc. Also possible to write "topleft", "bottomright", etc..
# - List: [x, y] # percent of screen, e.g., [38, 32]
# - Table/object: { x = 25, y = 60 } # percent of screen
position = "center"
# Popup size: choose one of
# - Preset string: "small", "medium", "large"
# - List: [width, height] # percent, e.g., [38, 32]
# - Table/object: { w = 38, h = 32 } # percent
size = "medium"
# Confirmation dialog size (for confirmations like deleting files):
# - Preset string, list, or table, just like "size" above.
# - Leave blank or omit to use the regular `size`.
confirm_size = "large"
[theme.widget.color] # Popup/widget colors
fg = "white"
bg = "black"
[theme.widget.border] # Popup/widget border colors
fg = "magenta"
bg = "default"
```
## Editor
```toml
[editor]
# Command to open files (e.g., "nvim", "code", etc.)
# "code.cmd" on windows
cmd = "nvim"
```
## Key Bindings
All values are lists (multiple shortcuts per action). Use "Shift+x", "Ctrl+x" as needed. `" "` means space bar.
```toml
[keys]
open_file = ["Enter"]
go_up = ["k", "Up"]
go_down = ["j", "Down"]
go_parent = ["h", "Left", "Backspace"]
go_into_dir = ["l", "Right"]
quit = ["q", "Esc"]
delete = ["d"]
copy = ["y"]
paste = ["p"]
rename = ["r"]
create = ["n"]
create_directory = ["Shift+n"]
filter = ["f"]
toggle_marker = [" "] # space bar
```
You may remove any binding to let it fall back to the default.
---
## EXAMPLES
```toml
borders = "split"
[display.layout]
main = 40
[theme.accent]
fg = "#00ff00"
bg = "default"
[theme.widget]
position = [25, 60]
size = { w = 36, h = 20 }
```