A lightweight, transparent, and minimalist command-line/application launcher GUI written in Python 3 using Gtk+ 3. It provides a quick way to execute commands and see their output via desktop notifications.
- Minimalist Design: Transparent UI with no window decorations for a clean look.
- Instant Access: Can be launched via keyboard shortcuts (when mapped in your desktop environment).
- Bash Integration: Executes commands in a full Bash environment, supporting pipes and logic.
- Alias Support: Automatically tries to source
~/.bash_aliasesif a command is not found in the standard path. - Desktop Notifications: Uses
notify-sendto display command output or error messages. - Flexible Timeouts: Configurable default timeout with a whitelist for long-running commands.
- Interactive UI:
- Draggable: Click and drag anywhere to move the window.
- Quick Close: Close with
EscorCtrl+C.
- Special Command Modifiers:
#: Appending one or more#symbols to a command exponentially increases its timeout.€: Appending a€symbol silences timeout error notifications.
Ensure you have the required dependencies:
# Ubuntu/Debian
sudo apt install python3-gi python3-yaml libnotify-bin
# Arch Linux
sudo pacman -S python-gobject python-yaml libnotifyInstall the package using pip or your preferred Python package manager:
pip install .Simply run command-launcher from your terminal or bind it to a keyboard shortcut.
command-launcherYou can pre-fill the launcher with a command by passing it as an argument:
command-launcher "ls -la"Within the launcher:
- Enter: Run the entered command.
- Escape: Close the launcher.
- Ctrl+C: Close the launcher.
The launcher searches for config.yaml in the following locations:
~/.config/command_launcher/config.yaml- Current working directory
- Project root
default_timeout: 30
whitelist:
"git push": 60 # Adds 60 seconds to the default timeout
"long-task": null # No timeout (infinite)
"backup": 120See the project files for licensing information.