# Wayfinder Wayfinder is a compact graphical file manager for Linux desktops running Wayland. It is written in Rust and uses GTK 4. The main view is a directory listing with a configurable places sidebar; selecting a supported file opens an inline preview pane. ## What it does - Browse directories by entering a path, using the places sidebar, or opening a folder from the file list. - Filter the current directory, sort folders before files, and toggle hidden files with `Ctrl+H`. - See file sizes and relative modification times in the list. - Preview supported text and source files, with syntax colors enabled by default, and preview images in the side pane. Text previews are capped at 64 KiB by default. - Open text files in Neovim inside Foot, images in imv, executable files in Foot, and other files with their default desktop application. - Use keyboard shortcuts: `Ctrl+L` focuses the location field, `Backspace` goes to the parent directory, `F5` reloads the current directory, and `Esc` exits preview. - Adjust window, pane, layout, color, place, and preview settings through nested INI configuration files. Wayfinder is focused on browsing and previewing. It does not currently provide file copy, move, delete, rename, or mount operations. ## Requirements Build requirements: - Rust and Cargo (Rust 1.85 or newer) - GTK 4 development files and `pkg-config` The application uses GTK's Wayland support when launched in a Wayland session. Image preview uses `gdk-pixbuf-thumbnailer` in a Bubblewrap sandbox. JPEG preview also has a Python 3 and Pillow fallback for systems where GdkPixbuf lacks a JPEG loader. To open files from the list, Wayfinder can use Foot and Neovim for text, imv for images, and the system's default application for other file types. ## Build and run ```sh cargo build --release ./target/release/wayfinder ``` ## Configuration Wayfinder reads `~/.config/wayfinder/config.ini`. Copy the example files from the source tree: ```sh mkdir -p ~/.config/wayfinder cp config.ini colors.ini ~/.config/wayfinder/ ``` `config.ini` contains window and pane sizes, spacing, typography, preview limits, and places. It includes `colors.ini`, where all interface and syntax colors are defined. Set `code_preview = false` in the `[General]` section to disable syntax coloring. Configuration files can include other INI files recursively. Add comma-separated file names under `[Includes]` in `config.ini` (for example, `files = colors.ini, work.ini`). Relative include paths are resolved from the including file, included values load first, and the including file overrides matching values. Places are defined in `[Places]` as `Name = path`; `~` and `~/...` paths are supported. ## License Wayfinder is distributed under the MIT License. See `LICENSE` in the source repository.