mirror of
https://codeberg.org/Pontoporeia/rmount.git
synced 2025-12-06 03:41:09 +01:00
A Rust TUI drive mounting utility
- Added correct cargo install cmd - removed duplicate rust dependencies sections - changes keybinding list to tables |
||
|---|---|---|
| src | ||
| .gitignore | ||
| ARCHITECTURE.md | ||
| BUILDING.md | ||
| Cargo.toml | ||
| CONTRIBUTING.md | ||
| DESIGN.md | ||
| LICENSE | ||
| README.md | ||
rmount
A Rust TUI (Terminal User Interface) drive mounting utility for Linux systems. rmount provides an intuitive interface for managing drive mounting, unmounting, and ejection operations with safety features to prevent accidental system drive modifications.
Features
- Interactive TUI: Navigate drives and partitions with keyboard shortcuts
- Safe Operations: Warnings for system drives to prevent accidental damage
- Multiple Interfaces: Both TUI and command-line interfaces available
- Comprehensive Drive Info: Display filesystem, size, mount status, and labels
- Auto-detection: Automatically detects removable drives and partitions
- Auto-refresh: Automatic drive list updates every 2 seconds (configurable)
- Smart Navigation: Only partitions are selectable, main drives shown for context
- Terminal Integration: Open mounted drives directly in terminal navigation
- Enhanced UI: Improved colors adapting to terminal theme with help menu
Dependencies
System Requirements
- Linux operating system
- The following system utilities must be installed:
lsblk- List block devicesudisksctl- Disk management utility (usually part of udisks2 package)blkid- Block device identification utility
Installation of System Dependencies
Ubuntu/Debian:
sudo apt update
sudo apt install util-linux udisks2 util-linux-extra
Arch Linux:
sudo pacman -S util-linux udisks2
Fedora/RHEL/CentOS:
sudo dnf install util-linux udisks2
Installation
From Cargo
cargo install --git https://codeberg.org/Pontoporeia/rmount
From Source
See BUILDING.md for detailed build instructions.
Quick build:
git clone https://codeberg.org/Pontoporeia/rmount.git
cd rmount
cargo build --release
sudo cp target/release/rmount /usr/local/bin/
Usage
TUI Mode (Default)
Launch the interactive terminal interface:
rmount
Command Line Options
# Start with auto-refresh disabled
rmount --no-auto-refresh
# Set custom refresh interval (in seconds)
rmount --refresh-interval 5
TUI Controls
Navigation
| Keys | Description |
|---|---|
j, ↓ |
Move down (partitions only) |
k, ↑ |
Move up (partitions only) |
g |
Go to top |
G |
Go to bottom |
Actions
| Keys | Description |
|---|---|
m |
Mount selected partition |
u |
Unmount selected partition |
e |
Eject selected drive |
o |
Open mounted partition in terminal (navigates to mount point) |
r |
Refresh drive list |
a |
Toggle auto-refresh |
Help & Interface
| Keys | Description |
|---|---|
?, h |
Show/hide help menu |
q |
Quit application |
y, n |
Confirm/cancel operations |
Esc |
Cancel current operation or close help |
Command Line Mode
List all drives
rmount list
Show detailed drive information
rmount info /dev/sdb1
Mount a drive
rmount mount /dev/sdb1
rmount mount /dev/sdb1 /mnt/mydrive # Custom mount point
Unmount a drive
rmount unmount /dev/sdb1
Eject a drive
rmount eject /dev/sdb
Contributing
We welcome contributions! Please see CONTRIBUTING.md for detailed guidelines on:
- Setting up your development environment
- Code style and standards
- Testing requirements
- Submitting pull requests
- Reporting issues
For build instructions, see BUILDING.md.
Safety Notes
- System Drive Warning: rmount will warn you before performing operations on system drives
- Root Permissions: Some operations may require sudo privileges
- Data Safety: Always ensure important data is backed up before drive operations
License
This project is licensed under the AGPL 3.0 or Later License - see the LICENSE file for details.
Acknowledgments
- Built with ratatui for the terminal interface
- Uses clap for command line parsing
- Inspired by various Linux drive management utilities