From 0b852c9af6c8bd732b01cb253e76e397d46096cb Mon Sep 17 00:00:00 2001 From: Raphael Amorim Date: Fri, 27 Jun 2025 04:43:55 -0700 Subject: [PATCH] man pages support (#1179) * man pages support * update emails --- docs/docs/command-line-interface.md | 27 ++ docs/docs/install/freebsd.md | 20 ++ docs/docs/install/linux.md | 30 ++ docs/docs/install/macos.md | 20 ++ docs/docs/releases.md | 5 + extra/man/Makefile | 24 ++ extra/man/README.md | 74 +++++ extra/man/rio-bindings.5.scd | 316 +++++++++++++++++++ extra/man/rio.1.scd | 92 ++++++ extra/man/rio.5.scd | 452 ++++++++++++++++++++++++++++ 10 files changed, 1060 insertions(+) create mode 100644 extra/man/Makefile create mode 100644 extra/man/README.md create mode 100644 extra/man/rio-bindings.5.scd create mode 100644 extra/man/rio.1.scd create mode 100644 extra/man/rio.5.scd diff --git a/docs/docs/command-line-interface.md b/docs/docs/command-line-interface.md index ac28690e..a6167b35 100644 --- a/docs/docs/command-line-interface.md +++ b/docs/docs/command-line-interface.md @@ -32,3 +32,30 @@ You can also `RIO_LOG_LEVEL` environment variable for filter logs on-demand, for ```sh $ RIO_LOG_LEVEL=debug rio -e echo 85 ``` + +## Manual Pages + +Rio provides comprehensive manual pages that can be installed on Unix-like systems: + +- `man rio` - Main Rio terminal manual page +- `man 5 rio` - Configuration file format documentation +- `man 5 rio-bindings` - Key bindings reference + +### Installing Man Pages + +The man pages are available in the `extra/man/` directory and require `scdoc` to build: + +```sh +# Install scdoc (macOS) +brew install scdoc + +# Install scdoc (Ubuntu/Debian) +sudo apt install scdoc + +# Build and install man pages +cd extra/man +make +sudo make install +``` + +After installation, you can access the documentation offline using the `man` command. diff --git a/docs/docs/install/freebsd.md b/docs/docs/install/freebsd.md index 71a8e9fa..f50f5796 100644 --- a/docs/docs/install/freebsd.md +++ b/docs/docs/install/freebsd.md @@ -6,3 +6,23 @@ language: 'en' Installation options: - [FreeBSD Ports](https://ports.freebsd.org/cgi/ports.cgi?query=rio-terminal&stype=all&sektion=all) + +## Manual Pages + +After installing Rio, you can optionally install manual pages for offline documentation: + +```bash +# Install scdoc (required to build man pages) +pkg install scdoc + +# Build and install man pages from source +git clone https://github.com/raphamorim/rio.git +cd rio/extra/man +make +sudo make install + +# Access documentation +man rio # Main Rio manual +man 5 rio # Configuration file format +man 5 rio-bindings # Key bindings reference +``` diff --git a/docs/docs/install/linux.md b/docs/docs/install/linux.md index 2cb7f89c..17bbebef 100644 --- a/docs/docs/install/linux.md +++ b/docs/docs/install/linux.md @@ -79,3 +79,33 @@ For a less declarative installation: ```bash nix profile install github:raphamorim/rio/main ``` + +## Manual Pages + +After installing Rio, you can optionally install manual pages for offline documentation: + +```bash +# Install scdoc (required to build man pages) +# Ubuntu/Debian: +sudo apt install scdoc + +# Arch Linux: +sudo pacman -S scdoc + +# Fedora: +sudo dnf install scdoc + +# openSUSE: +sudo zypper install scdoc + +# Build and install man pages from source +git clone https://github.com/raphamorim/rio.git +cd rio/extra/man +make +sudo make install + +# Access documentation +man rio # Main Rio manual +man 5 rio # Configuration file format +man 5 rio-bindings # Key bindings reference +``` diff --git a/docs/docs/install/macos.md b/docs/docs/install/macos.md index 8a64469b..9c4ca42f 100644 --- a/docs/docs/install/macos.md +++ b/docs/docs/install/macos.md @@ -31,3 +31,23 @@ Canary versions for MacOS are not notarized, so if you want to install a canary - Next to the message explaining the app "was blocked from use because it is not from an identified developer," click "Open Anyway". - Close System Preferences and run the app. - A notice will reiterate the warning about an inability to check if it is malicious, click Open. + +## Manual Pages + +After installing Rio, you can optionally install manual pages for offline documentation: + +```bash +# Install scdoc (required to build man pages) +brew install scdoc + +# Build and install man pages from source +git clone https://github.com/raphamorim/rio.git +cd rio/extra/man +make +sudo make install + +# Access documentation +man rio # Main Rio manual +man 5 rio # Configuration file format +man 5 rio-bindings # Key bindings reference +``` diff --git a/docs/docs/releases.md b/docs/docs/releases.md index 7e0699fa..d50da103 100644 --- a/docs/docs/releases.md +++ b/docs/docs/releases.md @@ -44,6 +44,11 @@ language: 'en' - Optimize the character cluster cache for wide space characters. - New font atlas, more efficient. - Implemented around 75% Memory Reduction: Text glyphs now use R8 (1 byte) instead of RGBA (4 bytes). +- **Documentation**: Added comprehensive manual pages (man pages) for Unix-like systems + - `man rio` - Main Rio terminal manual page with command-line options + - `man 5 rio` - Complete configuration file format documentation + - `man 5 rio-bindings` - Key bindings reference and customization guide + - Available in `extra/man/` directory with build instructions ### Technical Details diff --git a/extra/man/Makefile b/extra/man/Makefile new file mode 100644 index 00000000..a06bc278 --- /dev/null +++ b/extra/man/Makefile @@ -0,0 +1,24 @@ +# Man page generation +.PHONY: all clean install + +SCDOC = scdoc +MANDIR = /usr/local/share/man + +all: rio.1 rio.5 rio-bindings.5 + +rio.1: rio.1.scd + $(SCDOC) < $< > $@ + +rio.5: rio.5.scd + $(SCDOC) < $< > $@ + +rio-bindings.5: rio-bindings.5.scd + $(SCDOC) < $< > $@ + +install: all + install -Dm644 rio.1 $(DESTDIR)$(MANDIR)/man1/rio.1 + install -Dm644 rio.5 $(DESTDIR)$(MANDIR)/man5/rio.5 + install -Dm644 rio-bindings.5 $(DESTDIR)$(MANDIR)/man5/rio-bindings.5 + +clean: + rm -f rio.1 rio.5 rio-bindings.5 \ No newline at end of file diff --git a/extra/man/README.md b/extra/man/README.md new file mode 100644 index 00000000..e34efef0 --- /dev/null +++ b/extra/man/README.md @@ -0,0 +1,74 @@ +# Rio Terminal Man Pages + +This directory contains manual pages for Rio terminal emulator in scdoc format. + +## Files + +- `rio.1.scd` - Main Rio terminal manual page (section 1) +- `rio.5.scd` - Rio configuration file format manual page (section 5) +- `rio-bindings.5.scd` - Rio key bindings manual page (section 5) + +## Building + +To build the man pages, you need `scdoc` installed: + +### Install scdoc + +**macOS (Homebrew):** +```bash +brew install scdoc +``` + +**Ubuntu/Debian:** +```bash +sudo apt install scdoc +``` + +**Arch Linux:** +```bash +sudo pacman -S scdoc +``` + +**From source:** +```bash +git clone https://git.sr.ht/~sircmpwn/scdoc +cd scdoc +make +sudo make install +``` + +### Build man pages + +```bash +# Build all man pages +make -C extra/man + +# Or build individually +scdoc < extra/man/rio.1.scd > rio.1 +scdoc < extra/man/rio.5.scd > rio.5 +scdoc < extra/man/rio-bindings.5.scd > rio-bindings.5 +``` + +### Install man pages + +```bash +# Install to system man directory (requires sudo) +sudo cp rio.1 /usr/local/share/man/man1/ +sudo cp rio.5 /usr/local/share/man/man5/ +sudo cp rio-bindings.5 /usr/local/share/man/man5/ + +# Update man database +sudo mandb +``` + +### View man pages + +```bash +man rio +man 5 rio +man 5 rio-bindings +``` + +## Format + +The man pages are written in scdoc format, which is a simple markup language for writing man pages. See the [scdoc documentation](https://git.sr.ht/~sircmpwn/scdoc) for syntax details. \ No newline at end of file diff --git a/extra/man/rio-bindings.5.scd b/extra/man/rio-bindings.5.scd new file mode 100644 index 00000000..e8172f7b --- /dev/null +++ b/extra/man/rio-bindings.5.scd @@ -0,0 +1,316 @@ +RIO-BINDINGS(5) + +# NAME + +Rio-bindings - Default key bindings for Rio terminal emulator. + +# DESCRIPTION + +This page documents the default key bindings for Rio terminal emulator. Key bindings can be customized in the configuration file under the *[bindings]* section. + +# SYNTAX + +Key bindings use the following syntax in the configuration file: + +```toml +[[bindings.keys]] +key = "" +with = "" +action = "" +``` + +Where: +- *key* is the key name (e.g., "q", "Enter", "F1") +- *with* specifies modifier keys: "super", "alt", "ctrl", "shift" +- *action* is the action to perform + +Multiple modifiers can be combined with "|", for example: "ctrl|shift". + +# DEFAULT BINDINGS + +## Application Control + +*Super+Q* (macOS) / *Ctrl+Shift+Q* (Linux/Windows) + Quit Rio. + +*Super+N* (macOS) / *Ctrl+Shift+N* (Linux/Windows) + Create new window. + +*Super+W* (macOS) / *Ctrl+Shift+W* (Linux/Windows) + Close current window. + +*Super+T* (macOS) / *Ctrl+Shift+T* (Linux/Windows) + Create new tab. + +*Super+Comma* (macOS) / *Ctrl+Comma* (Linux/Windows) + Open configuration editor. + +## Text Operations + +*Super+C* (macOS) / *Ctrl+Shift+C* (Linux/Windows) + Copy selected text to clipboard. + +*Super+V* (macOS) / *Ctrl+Shift+V* (Linux/Windows) + Paste from clipboard. + +*Super+A* (macOS) / *Ctrl+Shift+A* (Linux/Windows) + Select all text. + +## Font Size + +*Super+Plus* (macOS) / *Ctrl+Plus* (Linux/Windows) + Increase font size. + +*Super+Minus* (macOS) / *Ctrl+Minus* (Linux/Windows) + Decrease font size. + +*Super+0* (macOS) / *Ctrl+0* (Linux/Windows) + Reset font size to default. + +## Scrolling + +*Page Up* + Scroll up one page. + +*Page Down* + Scroll down one page. + +*Shift+Page Up* + Scroll up half page. + +*Shift+Page Down* + Scroll down half page. + +*Home* + Scroll to top of buffer. + +*End* + Scroll to bottom of buffer. + +## Navigation + +*Super+1-9* (macOS) / *Ctrl+1-9* (Linux/Windows) + Switch to tab 1-9. + +*Super+Left* (macOS) / *Ctrl+Shift+Left* (Linux/Windows) + Switch to previous tab. + +*Super+Right* (macOS) / *Ctrl+Shift+Right* (Linux/Windows) + Switch to next tab. + +## Vi Mode + +*Ctrl+Shift+Space* + Toggle Vi mode for keyboard navigation. + +### Vi Mode Navigation + +*h*, *j*, *k*, *l* + Move cursor left, down, up, right. + +*w* + Move to start of next word. + +*b* + Move to start of previous word. + +*e* + Move to end of current word. + +*0* + Move to beginning of line. + +*$* + Move to end of line. + +*g*, *g* + Move to top of buffer. + +*G* + Move to bottom of buffer. + +*/* + Start forward search. + +*?* + Start backward search. + +*n* + Jump to next search match. + +*N* + Jump to previous search match. + +*v* + Start visual selection. + +*V* + Start line selection. + +*Ctrl+V* + Start block selection. + +*y* + Copy selection. + +*Escape* + Exit Vi mode. + +## Search + +*Super+F* (macOS) / *Ctrl+Shift+F* (Linux/Windows) + Start search. + +*Enter* + Confirm search. + +*Escape* + Cancel search. + +*Ctrl+G* / *F3* + Find next match. + +*Ctrl+Shift+G* / *Shift+F3* + Find previous match. + +## Split Panels + +*Super+D* (macOS) / *Ctrl+Shift+D* (Linux/Windows) + Split panel horizontally. + +*Super+Shift+D* (macOS) / *Ctrl+Shift+Alt+D* (Linux/Windows) + Split panel vertically. + +*Super+Shift+W* (macOS) / *Ctrl+Shift+Alt+W* (Linux/Windows) + Close current split panel. + +*Super+H/J/K/L* (macOS) / *Ctrl+Shift+H/J/K/L* (Linux/Windows) + Navigate between split panels. + +## Developer + +*F12* + Toggle developer tools (when available). + +*Ctrl+Shift+I* + Open inspector (when available). + +# CUSTOMIZATION + +Key bindings can be customized by adding entries to the *[bindings]* section in the configuration file: + +```toml +[[bindings.keys]] +key = "q" +with = "super" +action = "Quit" + +[[bindings.keys]] +key = "Enter" +with = "ctrl|shift" +action = "CreateWindow" +``` + +# AVAILABLE ACTIONS + +*Quit* + Quit the application. + +*CreateWindow* + Create a new window. + +*CloseWindow* + Close the current window. + +*CreateTab* + Create a new tab. + +*CloseTab* + Close the current tab. + +*SelectTab1* through *SelectTab9* + Switch to specific tab. + +*SelectPreviousTab* + Switch to previous tab. + +*SelectNextTab* + Switch to next tab. + +*Copy* + Copy selected text. + +*Paste* + Paste from clipboard. + +*SelectAll* + Select all text. + +*IncreaseFontSize* + Increase font size. + +*DecreaseFontSize* + Decrease font size. + +*ResetFontSize* + Reset font size to default. + +*ScrollUp* + Scroll up. + +*ScrollDown* + Scroll down. + +*ScrollPageUp* + Scroll up one page. + +*ScrollPageDown* + Scroll down one page. + +*ScrollHalfPageUp* + Scroll up half page. + +*ScrollHalfPageDown* + Scroll down half page. + +*ScrollToTop* + Scroll to top of buffer. + +*ScrollToBottom* + Scroll to bottom of buffer. + +*ToggleViMode* + Toggle Vi mode. + +*Search* + Start search. + +*OpenConfigEditor* + Open configuration file in editor. + +*SplitHorizontally* + Split panel horizontally. + +*SplitVertically* + Split panel vertically. + +*ClosePanel* + Close current split panel. + +*FocusNextPanel* + Focus next split panel. + +*FocusPreviousPanel* + Focus previous split panel. + +# SEE ALSO + +*rio*(1), *rio*(5) + +# BUGS + +Found a bug? Please report it at _https://github.com/raphamorim/rio/issues_. + +# MAINTAINERS + +- Raphael Amorim diff --git a/extra/man/rio.1.scd b/extra/man/rio.1.scd new file mode 100644 index 00000000..d4ec560e --- /dev/null +++ b/extra/man/rio.1.scd @@ -0,0 +1,92 @@ +RIO(1) + +# NAME + +Rio - A cross-platform, GPU-accelerated terminal emulator. + +# SYNOPSIS + +Rio is a modern terminal emulator built with Rust and WebGPU that provides high performance rendering with support for modern terminal features including sixel graphics, hyperlinks, and custom shaders. + +# FLAGS + +*-h, --help* + + Prints help information. + +*-V, --version* + + Prints version information. + +# OPTIONS + +*-e, --command* _..._ + + Command and args to execute (must be last argument). + +*-w, --working-dir* __ + + Start the shell in the specified working directory. + +*--write-config* _[]_ + + Writes the config to a given path or the default location. + + Rio doesn't create the config file for you, but it looks for one in the + following locations on UNIX systems: + + . _$RIO_CONFIG_HOME/config.toml_ + . _$XDG_CONFIG_HOME/rio/config.toml_ + . _$HOME/.config/rio/config.toml_ + + On Windows, the config file will be looked for in: + + . _%USERPROFILE%\\AppData\\Local\\rio\\config.toml_ + +*--enable-log-file* + + Writes the logs to a file inside the config directory. + +*--title-placeholder* __ + + Start window with specified title. + +# CONFIGURATION + +Rio uses TOML format for configuration. The configuration file is automatically +reloaded when changed. See *rio*(5) for detailed configuration documentation. + +# FEATURES + +Rio supports many modern terminal features: + +- GPU-accelerated rendering with WebGPU +- Sixel graphics protocol +- iTerm2 image protocol +- Kitty keyboard protocol +- Hyperlinks (OSC 8) +- Vi mode for navigation +- Split panels +- Custom shaders (RetroArch compatible) +- Adaptive themes +- Font ligatures +- Wide color gamut support + +# ENVIRONMENT + +*RIO_CONFIG_HOME* + + Custom path for Rio configuration directory. When set, Rio will look for + configuration files in this directory instead of the default locations. + +# SEE ALSO + +*rio*(5) + +# BUGS + +Found a bug? Please report it at _https://github.com/raphamorim/rio/issues_. + +# MAINTAINERS + +- Raphael Amorim <rapha@raphamorim.io> diff --git a/extra/man/rio.5.scd b/extra/man/rio.5.scd new file mode 100644 index 00000000..df1418f1 --- /dev/null +++ b/extra/man/rio.5.scd @@ -0,0 +1,452 @@ +RIO(5) + +# NAME + +Rio - TOML configuration file format. + +# SYNTAX + +Rio's configuration file uses the TOML format. The format's specification +can be found at _https://toml.io/en/v1.0.0_. + +# LOCATION + +Rio doesn't create the config file for you, but it looks for one in the +following locations on UNIX systems: + +. _$RIO_CONFIG_HOME/config.toml_ +. _$XDG_CONFIG_HOME/rio/config.toml_ +. _$HOME/.config/rio/config.toml_ + +On Windows, the config file will be looked for in: + +. _%USERPROFILE%\\AppData\\Local\\rio\\config.toml_ + +# GENERAL + +*theme* = _"<string>"_ + + Theme name to use. When set, colors defined in the configuration file will be ignored. + + Default: _None_ + +*confirm-before-quit* = _true_ | _false_ + + Require confirmation before quitting. + + Default: _true_ + +*draw-bold-text-with-light-colors* = _true_ | _false_ + + When _true_, bold text is drawn using the bright color variants. + + Default: _false_ + +*env-vars* = [_"<string>"_,] + + Environment variables to set for spawned processes. + + Example: + env-vars = [_"TERM=xterm-256color"_, _"COLORTERM=truecolor"_] + +# WINDOW + +This section documents the *[window]* table of the configuration file. + +*width* = _<integer>_ + + Window width in pixels. + + Default: _600_ + +*height* = _<integer>_ + + Window height in pixels. + + Default: _400_ + +*mode* = _"Windowed"_ | _"Maximized"_ | _"Fullscreen"_ + + Window startup mode. + + Default: _"Windowed"_ + +*opacity* = _<float>_ + + Background opacity as a floating point number from _0.0_ to _1.0_. + + Default: _1.0_ + +*blur* = _true_ | _false_ + + Request compositor to blur content behind transparent windows. + + Default: _false_ + +*decorations* = _"Enabled"_ | _"Disabled"_ | _"Transparent"_ | _"Buttonless"_ + + Window decorations. + + *Enabled* + Normal window decorations. + *Disabled* + No window decorations. + *Transparent* _(macOS only)_ + Transparent title bar. + *Buttonless* _(macOS only)_ + Title bar without buttons. + + Default: _"Enabled"_ + +*background-image* = { path = _"<string>"_, opacity = _<float>_, width = _<float>_, height = _<float>_, x = _<float>_, y = _<float>_ } + + Background image configuration. + + *path* + Path to the background image file. + *opacity* + Image opacity from _0.0_ to _1.0_. + *width*, *height* + Image dimensions as percentage of window size. + *x*, *y* + Image position as percentage of window size. + +# FONTS + +This section documents the *[fonts]* table of the configuration file. + +*size* = _<float>_ + + Font size in points. + + Default: _18.0_ + +*family* = _"<string>"_ + + Font family name. When set, overrides all font variant families. + + Default: _"cascadiacode"_ + +*features* = [_"<string>"_,] + + OpenType font features to enable. + + Example: + features = [_"ss02"_, _"ss03"_, _"liga"_] + +*use-drawable-chars* = _true_ | _false_ + + Use built-in drawable characters for box drawing. + + Default: _true_ + +*disable-warnings-not-found* = _true_ | _false_ + + Disable warnings when fonts are not found. + + Default: _false_ + +*additional-dirs* = [_"<string>"_,] + + Additional directories to search for fonts. + +*regular* = { family = _"<string>"_, style = _"<string>"_, width = _"<string>"_, weight = _<integer>_ } + + Regular font configuration. + + Default: { family = _"cascadiacode"_, style = _"Normal"_, width = _"Normal"_, weight = _400_ } + +*bold* = { family = _"<string>"_, style = _"<string>"_, width = _"<string>"_, weight = _<integer>_ } + + Bold font configuration. + + Default: { family = _"cascadiacode"_, style = _"Normal"_, width = _"Normal"_, weight = _800_ } + +*italic* = { family = _"<string>"_, style = _"<string>"_, width = _"<string>"_, weight = _<integer>_ } + + Italic font configuration. + + Default: { family = _"cascadiacode"_, style = _"Italic"_, width = _"Normal"_, weight = _400_ } + +*bold-italic* = { family = _"<string>"_, style = _"<string>"_, width = _"<string>"_, weight = _<integer>_ } + + Bold italic font configuration. + + Default: { family = _"cascadiacode"_, style = _"Italic"_, width = _"Normal"_, weight = _800_ } + +*extras* = [{ family = _"<string>"_ },] + + Additional fonts to load. + +*emoji* = { family = _"<string>"_ } + + Emoji font configuration. + + Default: Built-in Twemoji font + +*hinting* = _true_ | _false_ + + Enable font hinting. + + Default: _true_ + +*symbol-map* = [{ chars = _"<string>"_, family = _"<string>"_ },] + + Map specific character ranges to fonts. + +# COLORS + +This section documents the *[colors]* table of the configuration file. + +Colors are specified using their hexadecimal values with a _#_ prefix: _#RRGGBB_ or _#RRGGBBAA_. + +*background* = _"<string>"_ + + Default background color. + +*foreground* = _"<string>"_ + + Default foreground color. + +*cursor* = _"<string>"_ + + Cursor color. + +*vi-cursor* = _"<string>"_ + + Vi mode cursor color. + +*black*, *red*, *green*, *yellow*, *blue*, *magenta*, *cyan*, *white* = _"<string>"_ + + Standard ANSI colors. + +*light-black*, *light-red*, *light-green*, *light-yellow*, *light-blue*, *light-magenta*, *light-cyan*, *light-white* = _"<string>"_ + + Bright ANSI colors. + +*dim-black*, *dim-red*, *dim-green*, *dim-yellow*, *dim-blue*, *dim-magenta*, *dim-cyan*, *dim-white* = _"<string>"_ + + Dim ANSI colors. + +*tabs* = _"<string>"_ + + Tab bar background color. + +*tabs-foreground* = _"<string>"_ + + Tab bar text color. + +*tabs-active* = _"<string>"_ + + Active tab background color. + +*tabs-active-foreground* = _"<string>"_ + + Active tab text color. + +*tabs-active-highlight* = _"<string>"_ + + Active tab highlight color. + +*bar* = _"<string>"_ + + Navigation bar background color. + +*search-match-background* = _"<string>"_ + + Search match background color. + +*search-match-foreground* = _"<string>"_ + + Search match text color. + +*search-focused-match-background* = _"<string>"_ + + Focused search match background color. + +*search-focused-match-foreground* = _"<string>"_ + + Focused search match text color. + +*selection-background* = _"<string>"_ + + Selection background color. + +*selection-foreground* = _"<string>"_ + + Selection text color. + +# CURSOR + +This section documents the *[cursor]* table of the configuration file. + +*shape* = _"block"_ | _"underline"_ | _"beam"_ + + Cursor shape. + + Default: _"block"_ + +*blinking* = _true_ | _false_ + + Enable cursor blinking. + + Default: _false_ + +*blinking-interval* = _<integer>_ + + Cursor blinking interval in milliseconds. Range: 350-1200. + + Default: _800_ + +# SCROLL + +This section documents the *[scroll]* table of the configuration file. + +*multiplier* = _<float>_ + + Scroll speed multiplier. + + Default: _3.0_ + +*divider* = _<float>_ + + Scroll divider for fine-tuning. + + Default: _1.0_ + +# NAVIGATION + +This section documents the *[navigation]* table of the configuration file. + +*mode* = _"NativeTab"_ | _"TopTab"_ | _"BottomTab"_ | _"Breadcrumb"_ | _"Plain"_ + + Navigation display mode. + + Default: _"NativeTab"_ + +*clickable* = _true_ | _false_ + + Enable clickable navigation elements. + + Default: _false_ + +*use-current-path* = _true_ | _false_ + + Show current working directory in navigation. + + Default: _false_ + +*color-automation* = [{ program = _"<string>"_, path = _"<string>"_, color = _"<string>"_ },] + + Automatic color assignment based on program or path. + +# SHELL + +This section documents the *[shell]* table of the configuration file. + +*program* = _"<string>"_ + + Shell program to execute. + + Default: System default shell + +*args* = [_"<string>"_,] + + Arguments to pass to the shell. + +# EDITOR + +This section documents the *[editor]* table of the configuration file. + +*program* = _"<string>"_ + + Editor program for opening configuration files. + + Default: _"vi"_ + +*args* = [_"<string>"_,] + + Arguments to pass to the editor. + +# BINDINGS + +This section documents the *[bindings]* table of the configuration file. + +*keys* = [{ key = _"<string>"_, with = _"<string>"_, action = _"<string>"_ },] + + Key bindings configuration. + + *key* + Key name (e.g., _"q"_, _"Enter"_, _"F1"_). + + *with* + Modifier keys: _"super"_, _"alt"_, _"ctrl"_, _"shift"_. + Multiple modifiers can be combined with _|_. + + *action* + Action to perform. Available actions include: + _"Quit"_, _"CreateWindow"_, _"CloseWindow"_, _"Copy"_, _"Paste"_, + _"ScrollUp"_, _"ScrollDown"_, _"ToggleViMode"_, _"OpenConfigEditor"_, + and many others. + +# RENDERER + +This section documents the *[renderer]* table of the configuration file. + +*performance* = _"High"_ | _"Low"_ + + Rendering performance mode. + + Default: _"High"_ + +*backend* = _"Automatic"_ | _"GL"_ | _"Vulkan"_ | _"DX12"_ | _"Metal"_ + + Graphics backend to use. + + Default: _"Automatic"_ + +*disable-renderer-when-unfocused* = _true_ | _false_ + + Disable rendering when window is unfocused to save power. + + Default: _false_ + +*level* = _<integer>_ + + Rendering level (0-3). + + Default: _3_ + +# DEVELOPER + +This section documents the *[developer]* table of the configuration file. + +*log-level* = _"OFF"_ | _"ERROR"_ | _"WARN"_ | _"INFO"_ | _"DEBUG"_ | _"TRACE"_ + + Log level for debugging. + + Default: _"OFF"_ + +*enable-log-file* = _true_ | _false_ + + Write logs to file. + + Default: _false_ + +*enable-fps-counter* = _true_ | _false_ + + Display FPS counter. + + Default: _false_ + +# SEE ALSO + +*rio*(1) + +# BUGS + +Found a bug? Please report it at _https://github.com/raphamorim/rio/issues_. + +# MAINTAINERS + +- Raphael Amorim <rapha850@gmail.com> -- 2.51.2