QALI (q)
Quick Aliasing
Note: we're currently in the stage of initial development.
Purpose
QALI can...
- Shorten long & complex commands
- Act as a namespace for your custom scripts (stop worrying about conflicting names with system commands!)
- Make you type less
- Reduce your mental workload
Installation
Currently, a Rust installation is required
cargo install qali
This installs two separate binaries : q and qali.
The command q is meant for actions with the highest usage frequency, such as setting and alias or executing a command.
The command qali is meant as a companion allowing for subcommands and more functionality without influencing the namespace in q which is set reserved completly by the users.
Usage
q --help
qali --help
Supported alias types:
- Command: one liners, eg.
q -s hi "echo hi" - Shell: Shell scripts, eg.
q -s hi hello.sh(EXPERIMENTAL) - Python: Python scripts, eg.
q -s hi hello.py(EXPERIMENTAL) - URI: open URI in default application, eg.
q -s hi https://beta.sayhello.so(EXPERIMENTAL)
Examples:
Set an alias
Example: set gs as git status
q -s gs "git status"
Set p as python if p doesn't exist
q p python
Set hi to ./hi.py with qali
qali set hi ./hi.py
Execute an command via alias
Execute aliases interactively
Method 1:q
Method 2:qali select
Example: execute git status
q gs
Execute python --version (As of now, use -- when executing a command to stop flags meant for the program being parsed as flags for qali itself.)
q -- p --version
List all existing commands
qali list
Remove a command
Example: remove gs as git status:
qali remove gs
Features to implement
- Better output formatting
- Subcommands
- Change storage method to json or other serde formats
- Allow users to set descriptions for each command
- Linking to shell scripts
- Linking to python scripts(support for python environments)
- TUI to navigate existing commands
- Implement fuzzy finding
- More customizable options eg. print-only