add readme

This commit is contained in:
Puechberty Arthur
2026-07-18 22:59:41 +02:00
parent ef165dd804
commit f7cf64f070
+103
View File
@@ -0,0 +1,103 @@
# 🚀 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.
![Rust](https://img.shields.io/badge/Rust-1.70%2B-orange?logo=rust)
![Linux](https://img.shields.io/badge/Platform-Linux-blue?logo=linux)
![License](https://img.shields.io/badge/License-MIT-green)
## ✨ 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 !