| Crates.io | noice-rs |
| lib.rs | noice-rs |
| version | 0.1.1 |
| created_at | 2025-08-18 15:52:29.913347+00 |
| updated_at | 2025-08-19 10:29:08.218209+00 |
| description | A minimal suckless-style file browser for the terminal with vim-like keybindings |
| homepage | https://github.com/dab/noice-rs |
| repository | https://github.com/dab/noice-rs |
| max_upload_size | |
| id | 1800708 |
| size | 99,195 |
A suckless-aligned file browser written in Rust. Minimal dependencies, compile-time configuration, and simple implementation following the suckless philosophy.
libc for terminal controlconfig.rs and recompile to customizegg, DD, nf, nd, g<key>, '<key>/ (search)# Clone the repository
git clone <repository>
cd noice-rs
# Build (config is generated automatically from src/config.def.rs)
cargo build --release
# The binary will be at target/release/noice
The easiest way to install noice-rs is using the provided installation script:
# Clone the repository
git clone https://github.com/dab/noice-rs.git
cd noice-rs
# Run the interactive installer
./install.sh
# Or specify installation location directly:
./install.sh --user # Install to ~/.local/bin
./install.sh --system # Install to /usr/local/bin (requires sudo)
If you have Rust installed, you can install directly from crates.io:
cargo install noice-rs
This will install the noice binary to your ~/.cargo/bin directory.
Download pre-compiled binaries from the GitHub Releases page:
chmod +x noice# Clone the repository
git clone https://github.com/dab/noice-rs.git
cd noice-rs
# Build in release mode (config generated automatically)
cargo build --release
# Install to system directory
sudo cp target/release/noice /usr/local/bin/noice
# Or install to user directory
mkdir -p ~/.local/bin
cp target/release/noice ~/.local/bin/noice
Homebrew (macOS):
# Coming soon
brew install noice-rs
Arch Linux (AUR):
# Coming soon
yay -S noice-rs
Note: Make sure your installation directory is in your PATH. If using
~/.local/bin, addexport PATH="$HOME/.local/bin:$PATH"to your shell configuration file (.bashrc, .zshrc, etc.).
# Open current directory
noice
# Open specific directory
noice /path/to/directory
# Open home directory
noice ~
j / ↓ - Move downk / ↑ - Move upl / → / Enter - Enter directory / open fileh / ← / Backspace - Go to parent directorygg / Home - Go to first itemG / End - Go to last itemCtrl-U - Half page upCtrl-D - Half page downSpace - Mark/unmark fileu - Un-yank (clear yanked list)y - Yank (copy) marked files or current filem - Mark files for movingp - Paste yanked filesDD - Delete marked files or current file (double-D for safety)r - Rename current filenf - Create new filend - Create new directoryL - Create symbolic links. / Ctrl-H - Toggle hidden filesd - Toggle directories first/ - Filter files (search)s - Sort by nameS - Toggle file size displayt - Sort by modification timev - Toggle version number sortingCtrl-L / R - Force redraw/reloadc - Change directory (interactive)g<key> / '<key> - Jump to directory by key:
gr / 'r - Go to root (/)ge / 'e - Go to /etcgb / 'b - Go to /bingu / 'u - Go to /usrgm / 'm - Go to /mediag. / '. - Go to ~/.config'' - Jump to last directory (toggle)e - Edit current file with $EDITORM - Open with media player ($NOICEMP)! - Open shell in current directory ($SHELL)z - Run system monitor ($NOICETOP)? - Show manual page ($NOICEMAN)q / ESC - QuitConfiguration is compile-time based. To customize:
$OUT_DIR/config.rsg<key> and '<key>cargo build --release to apply changesAlternatively, modify src/config.def.rs directly for permanent changes.
The following environment variables can override defaults:
EDITOR - Text editor for e command (default: vi)SHELL - Shell for ! command (default: sh)NOICEMP - Media player for M command (default: "mpv --shuffle")NOICETOP - System monitor for z command (default: top)NOICEMAN - Manual command for ? (default: "man noice")This project follows the suckless philosophy:
libc for terminal controlThis project follows the suckless philosophy of simplicity and hackability. Use and modify as you see fit.