mirror of
https://github.com/arthur-pbty/runapp.git
synced 2026-08-01 20:29:50 +02:00
103 lines
4.2 KiB
Markdown
103 lines
4.2 KiB
Markdown
# 🚀 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 `vsc` pour 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 `htop` ou `bash` et 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 avec `xdg-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 :
|
|
- [Ghostty](https://ghostty.org/) (Recommandé)
|
|
- [Kitty](https://sw.kovidgoyal.net/kitty/)
|
|
- [WezTerm](https://wezfurlong.org/wezterm/)
|
|
|
|
*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)
|
|
|
|
```bash
|
|
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` :
|
|
```bash
|
|
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 :
|
|
|
|
```toml
|
|
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 :
|
|
|
|
```bash
|
|
#!/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](https://github.com/ratatui-org/ratatui) & [crossterm](https://github.com/crossterm-rs/crossterm)
|
|
- **Images** : [ratatui-image](https://github.com/benjajaja/ratatui-image), [image](https://github.com/image-rs/image), [resvg](https://github.com/RazrFalcon/resvg)
|
|
- **Recherche** : [fuzzy-matcher](https://github.com/lotabout/fuzzy-matcher)
|
|
|
|
## 📝 Licence
|
|
|
|
Ce projet est sous licence MIT. Fais-en ce que tu veux ! |