🚀 runapp
Un lanceur d'applications TUI (Terminal User Interface) ultra-rapide, intelligent et personnalisable, écrit en Rust. Conçu pour les utilisateurs de Linux (particulièrement Arch Linux) qui vivent dans leur terminal.
✨ Fonctionnalités
- Recherche Floue (Fuzzy Search) : Trouve tes apps instantanément. Tape
vscpour lancer Visual Studio Code. - Historique Intelligent (Frecency) : Les applications que tu lances le plus souvent remontent automatiquement en haut de la liste.
- Affichage des Icônes en Haute Qualité : Supporte les SVG, PNG, WebP, AVIF, etc., directement dans le terminal (nécessite un terminal compatible comme Ghostty, Kitty ou WezTerm).
- Support des Actions
.desktop: N'affiche pas seulement "Firefox", mais aussi "Firefox - New Private Window" si l'application le permet. - Applications Terminal : Détecte les apps comme
htopoubashet les ouvre proprement dans ton émulateur de terminal configuré. - Modes Spéciaux :
= 50 * 3.14: Calculatrice instantanée (copie le résultat dans le presse-papier).! bonjour: Traduction via DeepL (ou ton traducteur préféré).: reboot: Commandes système (shutdown, reboot, sleep, lock, logout).
- Liens et Fichiers : Tape un chemin (
/home/...) ou une URL (youtube.com) pour l'ouvrir directement avecxdg-open. - Mode Dmenu : Utilisable dans tes scripts bash ! (Ex:
echo -e "opt1\nopt2" | runapp --dmenu). - Configuration Ultra-Poussée : Personnalise les couleurs, les alias, les URLs de recherche et de traduction via un simple fichier
config.toml.
🛠️ Prérequis
Pour profiter de l'affichage des images dans le terminal, tu dois utiliser un émulateur de terminal moderne supportant les protocoles graphiques :
Note : Si ton terminal ne supporte pas les images, runapp fonctionnera parfaitement en mode texte pur, sans faire planter l'interface.
📦 Installation
Depuis les sources (Crates)
git clone https://github.com/arthur-pbty/runapp.git
cd runapp
cargo build --release
L'exécutable se trouvera dans target/release/runapp. Tu peux le copier dans ton PATH :
sudo cp target/release/runapp /usr/local/bin/
⚙️ Configuration
Au premier lancement, un fichier de configuration est généré automatiquement ici :
~/.config/runapp/config.toml
Tu peux le modifier pour l'adapter à tes besoins :
enable_calculator = true
enable_translation = true
enable_web_search = true
web_search_url = "https://duckduckgo.com/?q={}"
translation_url = "https://www.deepl.com/translator#auto/auto/{}"
terminal_emulator = "ghostty -e"
enable_system_commands = true
[aliases]
update = "ghostty -e paru -Syu"
clean = "ghostty -e paru -Sc"
[colors]
search_text = "white"
selection_bg = "blue"
selection_fg = "black"
⌨️ Utilisation
Lanceur classique
Lance runapp (idéalement bindé sur un raccourci clavier dans ton gestionnaire de fenêtres comme Hyprland, Sway ou i3).
| Raccourci | Action |
|---|---|
Touche |
Taper du texte pour filtrer |
↑ / ↓ |
Naviguer dans la liste |
Entrée |
Lancer l'application ou l'action |
Échap |
Effacer le texte, ou quitter si vide |
Mode Script (Dmenu)
Tu peux utiliser runapp pour remplacer dmenu ou rofi -dmenu dans tes scripts :
#!/bin/bash
CHOIX=$(echo -e "Éteindre\nRedémarrer\nMettre en veille" | runapp --dmenu)
echo "Tu as choisi : $CHOIX"
🧱 Stack Technique
- Langage : Rust
- Interface TUI : ratatui & crossterm
- Images : ratatui-image, image, resvg
- Recherche : fuzzy-matcher
📝 Licence
Ce projet est sous licence MIT. Fais-en ce que tu veux !