v1.0.0 - Initial Release of rwx
Interactive File Permissions TUI Manager
I'm excited to announce the initial release of rwx, a modern, interactive terminal-based file permissions manager written in Rust.
rwx provides a beautiful and efficient Terminal User Interface (TUI) to inspect, modify, and manage file/directory permissions, ownership, and special bits in real-time, eliminating the need to memorize complex chmod and chown flags.
🚀 Features
- 📂 Interactive File Browser: Navigate your local filesystem with standard terminal keybindings, inspect metadata (such as sizes and types), and select files/directories directly for editing.
- 🛡️ Full Permission Editor: Easily toggle Read (
r), Write (w), and Execute (x) permissions for:- Owner
- Group
- Others
- ⚙️ Special Permission Bits Support: Full support for setting/unsetting:
- SetUID (Set User ID on execution)
- SetGID (Set Group ID on execution)
- Sticky Bit
- 🔢 Direct Octal Input: Edit permissions dynamically using direct octal code entry (e.g. typing
0755or1777directly updates the interface). - 👤 Owner & Group Management: Directly edit file/directory owner and group names via input fields.
- 🔁 Recursive Mode: Apply changes recursively to directories and their contents.
- 💻 CLI Arguments: Open a specific target path directly from the command line (
rwx <path>), with optional recursive application flag (-R/--recursive). - 🛡️ Terminal Restoration: Safe crash protection restores your terminal state if the application encounters an error.
⌨️ Controls & Keybindings
File Browser Mode
j/Down Arrow— Move cursor downk/Up Arrow— Move cursor upEnter— Open selected directory or files/S— Open the current directory itself in the editorq/Esc— Quitrwx
Permission Editor Mode
h/l/j/k/Arrows— Move focus between elements (checkboxes, inputs, buttons)Space/Enter— Toggle selected permission checkbox / Click active buttonTab/BackTab— Cycle focus forward/backwardb/B/Backspace— Return to File Browsera/A— Apply changes immediatelyq/Esc— Quitrwx(if input is focused,Escreturns focus to checkboxes)
📦 Installation
To build and run rwx from source:
- Clone the repository:
git clone https://github.com/vncsmnl/rwx.git cd rwx - Build the release binary:
cargo build --release
- Run the binary:
./target/release/rwx [path]
- Copy to PATH
sudo cp ./target/release/rwx ~/.local/bin/rwx - Run the binary:
rwx [path]