7 releases
Uses new Rust 2024
| 0.2.3 | Nov 19, 2025 |
|---|---|
| 0.2.2 | Jun 10, 2025 |
| 0.2.1 | Apr 26, 2025 |
| 0.1.2 | Apr 16, 2025 |
#861 in Command line utilities
42KB
844 lines
Termlaunch
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
Limitations
- If you have not configured a terminal emulator, it will try to use
kittyas default. - At some point, i would like to add support for prefixing the launch command with some like
sudo,prime-run,uwsm, etc by adding a list of prefixes in the config file.
Installation
Using precompiled binaries
From the releases section, you can download the latest release available.
The binaries and packages are available for x86_64 and aarch64 architectures. If you are using a different architecture, you should build it from source or use the cargo installation method.
With your package manager
You can install them using your package manager. Download the package for your architecture (x86_64 or aarch64 are available) and install it using your package manager:
# Debian/Ubuntu and derivatives
sudo apt install ./termlaunch_<version>_Linux_<arch>.deb
# Arch
sudo pacman -U ./termlaunch_<version>_Linux_<arch>.pkg.tar.zst
# Fedora - Also should works for other RPM-based distros
sudo dnf install ./termlaunch_<version>_Linux_<arch>.rpm
# Alpine
sudo apk add ./termlaunch_<version>_Linux_<arch>.apk
Manually
Download the tar.gz file for your architecture and extract it. You can use the following command:
tar -xvf termlaunch_<version>_Linux_<arch>.tar.gz
Make sure to replace <version> and <arch> with the version and architecture you downloaded.
Also, make sure to give the binary executable permissions:
chmod +x /path/to/termlaunch
You can move it to /usr/bin or /usr/local/bin to make it available system-wide:
sudo mv /path/to/termlaunch /usr/bin/termlaunch
Or you can run it directly from the extracted folder:
/path/to/termlaunch/termlaunch
Note: The binary is statically linked, so it should work without any additional dependencies. If you have issues, please open an issue in the repository.
Using cargo
You can install it using cargo, the Rust package manager. You can install it with the following command:
cargo install termlaunch
Or you can follow the latest commit in the repository:
cargo install --git https://github.com/amaterasu-uwu-xd/termlaunch
Make sure you have $HOME/.cargo/bin in your $PATH.
Building from source
If you want to build it from source, you can clone the repository and build it using cargo. Make sure you have Rust and Cargo installed. You can install them using rustup. Requires 1.85.0 or higher.
cd ~/Downloads
git clone https://github.com/amaterasu-uwu-xd/termlaunch
cd termlaunch
# Make sure you have Rust and Cargo installed, if not, you can install it using rustup
cargo build --release
This will create a binary in target/release/. 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 = Alt, Space, exec $terminal --class termlaunch -e /path/to/termlaunch
# Window rules
windowrule = float, class:(termlaunch)
windowrule = size 50% 50%, class:(termlaunch)
windowrule = stayfocused, class:(termlaunch)
And for Niri:
window-rule {
match app-id="termlaunch"
open-floating true
default-column-width { proportion 0.5; }
default-window-height { proportion 0.5; }
}
binds {
Alt+Space { spawn: "kitty" "--class" "termlaunch" "-e" "/path/to/termlaunch"; }
}
Configuration
The configuration file is located in $XDG_CONFIG_HOME/termlaunch/config.toml or $HOME/.config/termlaunch/config.toml. You can also use the --config flag to specify a different configuration file.
Example configuration
icon_theme = "Papirus-Dark"
terminal = "kitty"
# Lot of colors
[appearance]
search_input = "#f9e2af"
search_border = "#cba6f7"
text = "#f2cdcd"
subtext = "#f5e0dc"
help_text = "#ff5555"
selected_app = "#74c7ec"
selected_app_text = "#11111b"
applications_border = "#a6e3a1"
icon_border = "#55eebb"
info_border = "#89dceb"
actions_border = "#89b4fa"
help_border = "#000000"
Dependencies
~39–74MB
~1M SLoC