2 releases
Uses new Rust 2024
new 0.1.1 | Apr 16, 2025 |
---|---|
0.1.0 | Apr 15, 2025 |
#879 in Command line utilities
26 downloads per month
32KB
664 lines
Termrun
This is a very WIP project that allows you to launch your desktop applications through a terminal emulator. It is designed with the worst developer practices.
https://github.com/user-attachments/assets/8fbf3679-7065-43a9-8809-ce434fd53846
Features
- Launch applications or some of its actions
- Icon preview support
- Customizable (WIP)
- Search (WIP)
Limitations
- The search is not working yet
- Some arguments for FreeDesktop applications are not supported yet
- The actions are not working yet, only the default action is supported
- Some desktop entries could break the application
- If you have not configured a terminal emulator, it will use
kitty
as default
Installation
Using cargo
You can install it using cargo, the Rust package manager. You can install it with the following command:
cargo install --git https://github.com/amaterasu-uwu-xd/termrun
Make sure you have $HOME/.cargo/bin
in your $PATH
.
Cloning the repository
You can clone the repository using the following command:
cd ~/Downloads
git clone https://github.com/amaterasu-uwu-xd/termrun
cd termrun
cargo build --release
This will create a binary in target/release/termrun
. You can copy it to your $PATH
or run it directly from the build folder.
Integration with WM
The integration is very simple, you just need to add a keybinding to your window manager. Optionally, you can add some window rules.
This is an example for Hyprland:
# This bind uses $terminal as the terminal emulator, if you want to use another, you can replace it with your preferred terminal.
bind = $mainMod, R, exec $terminal --class termrun -e /path/to/termrun
# Window rules
windowrule = float, class:(termrun)
windowrule = size 100x600, class:(termrun)
windowrule = stayfocused, class:(termrun)
Configuration
The configuration file is located in $XDG_CONFIG_HOME/termrun/config.toml
or $HOME/.config/termrun/config.toml
. You can also use the --config
flag to specify a different configuration file.
Example configuration
# Actually only the terminal emulator and the icon theme are supported
terminal = "kitty"
icon_theme = "Papirus"
Dependencies
~27–55MB
~792K SLoC