A powerful, user-friendly shell alias manager for Linux with automatic backups, cross-shell support, and a modern Qt6 GUI. Manage your bash, zsh, and fish aliases effortlessly!
✨ Core Features
- 🔍 Auto Shell Detection - Detects bash, zsh, or fish automatically
- 📝 Easy Alias Management - Add, edit, and remove aliases via intuitive GUI
- 💾 Automatic Backups - Timestamps all backups before modifications
- ↩️ Restore Backups - Roll back to previous alias configurations instantly
- 🔒 Safe Operations - Input validation and permission checking
- ⚡ Real-time Sync - Changes apply immediately to config files
- 🎨 Modern UI - Beautiful Qt6 interface with dark/light theme support
🛡️ Security & Reliability
- File permission validation (644 mode)
- Input sanitization and validation
- Atomic file operations
- Error handling and recovery
🚀 Performance
- Lightweight C++ implementation
- Minimal resource footprint
- Fast alias parsing and loading
- Optimized backup management
- C++ compatible compiler (GCC 13+, Clang 16+)
- CMake 3.28+
- Qt6 (Core, Gui, Widgets)
- Linux kernel 5.10+
- glibc 2.33+
- Qt6 libraries
- POSIX-compliant shell (bash, zsh, or fish)
- Arch Linux (optimized primary target)
- Fedora 38+
- Ubuntu 22.04 LTS+
- Debian 12+
- openSUSE Leap 15.5+
- Alpine Linux 3.17+
- All other POSIX-compliant Linux distributions
- Clone or download the repository
git clone https://github.com/Xzray03/AliaCan.git
cd alia-can- Install dependencies
Arch Linux:
sudo pacman -S base-devel cmake qt6-base clangFedora:
sudo dnf install gcc-c++ cmake qt6-qtbase-devel clangUbuntu/Debian:
sudo apt install build-essential cmake qt6-base-dev clang-14- Build the project
mkdir build
cd build
cmake ..
cmake --build . -j$(nproc)- Install binary
sudo cmake --install . --config Release # It only works if it's in the build directory.
# Or manually:
sudo install -Dm755 alia-can /usr/local/bin/alia-can- Launch Application
alia-cancd build
sudo cmake --build . --target uninstall # It only works if it's in the build directory.
# Or manually:
sudo rm /usr/local/bin/alia-can- Launch the application
- View your current shell and config file path in the header
- Add Aliases using the input fields and "Add Alias" button
- Remove Aliases by selecting from the list and clicking "Remove Selected"
- View Backups to see all previous configurations
- Restore Backups to recover previous alias sets
- ✅ Shell detection and path expansion
- ✅ Alias name/command validation
- ✅ Alias parsing from config files
- ✅ File I/O operations
- ✅ Backup creation and restoration
- ✅ Error handling and recovery
- File Permissions: Config files use 644 (rw-r--r--) permissions
- Input Validation: All alias names and commands are validated
- No Privilege Escalation: Application runs with user privileges
- Backup Integrity: Automatically backup config file
- Configuration Privacy: No network operations, purely local
Q: Will AliaCan overwrite my existing config files?
A: No. AliaCan only appends new aliases and removes specific lines. It creates backups before all modifications.
Q: Can I use AliaCan with multiple shells?
A: Yes! AliaCan detects your current shell and manages its config file. You can switch shells and manage each independently.
Q: Are backups automatic?
A: Yes! AliaCan creates timestamped backups before every add/remove operation.
Q: Can I restore to any backup, not just the most recent?
A: Yes! Use the "View Backups" dialog to see and restore from any backup.
Q: Will my aliases work after restore?
A: Yes, but you need to reload your shell config: source ~/.bashrc or open a new terminal.
GPLv2 License - See LICENSE file for details
- 📧 Email: xzray@proton.me
- 🐛 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions
Developed with ❤️ for Linux users who love their shell aliases.
Made with C++ and Qt6 • Cross-platform • Open Source • Free Forever

