Files
personotes/docs/KEYBOARD_SHORTCUTS.md

137 lines
4.3 KiB
Markdown

# ⌨️ Raccourcis Clavier - Project Notes
Cette documentation liste tous les raccourcis clavier disponibles dans l'application Project Notes.
## 📋 Liste des Raccourcis
### Navigation
| Raccourci | Action | Description |
|-----------|--------|-------------|
| `Ctrl/Cmd + H` | Accueil | Retourner à la page d'accueil |
| `Ctrl/Cmd + D` | Note du jour | Ouvrir la note quotidienne (Daily Note) |
| `Ctrl/Cmd + B` | Sidebar | Afficher ou masquer la barre latérale |
### Création
| Raccourci | Action | Description |
|-----------|--------|-------------|
| `Ctrl/Cmd + N` | Nouvelle note | Ouvrir la modale de création de note |
| `Ctrl/Cmd + Shift + F` | Nouveau dossier | Ouvrir la modale de création de dossier |
### Édition
| Raccourci | Action | Description |
|-----------|--------|-------------|
| `Ctrl/Cmd + S` | Sauvegarder | Enregistrer la note actuelle |
| `Ctrl/Cmd + P` | Prévisualisation | Basculer entre l'éditeur seul et éditeur+preview |
### Recherche
| Raccourci | Action | Description |
|-----------|--------|-------------|
| `Ctrl/Cmd + K` | Recherche | Focus sur le champ de recherche global |
### Paramètres
| Raccourci | Action | Description |
|-----------|--------|-------------|
| `Ctrl/Cmd + ,` | Paramètres | Ouvrir les paramètres (thèmes, polices) |
### Général
| Raccourci | Action | Description |
|-----------|--------|-------------|
| `Escape` | Fermer | Fermer les modales et dialogues ouverts |
## 🖥️ Notes Spécifiques par Plateforme
- **Windows/Linux** : Utilisez la touche `Ctrl`
- **macOS** : Utilisez la touche `Cmd` (⌘)
## 🎯 Contexte des Raccourcis
### Raccourcis Globaux
Ces raccourcis fonctionnent partout dans l'application :
- `Ctrl/Cmd + K` (Recherche)
- `Ctrl/Cmd + D` (Note du jour)
- `Ctrl/Cmd + N` (Nouvelle note)
- `Ctrl/Cmd + H` (Accueil)
- `Ctrl/Cmd + B` (Sidebar)
- `Ctrl/Cmd + ,` (Paramètres)
- `Escape` (Fermer modales)
### Raccourcis Contextuels
Ces raccourcis fonctionnent uniquement dans certains contextes :
- `Ctrl/Cmd + S` : Fonctionne uniquement quand une note est ouverte
- `Ctrl/Cmd + /` : Fonctionne uniquement dans l'éditeur
## 🔧 Implémentation Technique
Les raccourcis clavier sont gérés par le module `keyboard-shortcuts.js` qui :
1. Écoute tous les événements `keydown` au niveau document
2. Détecte les combinaisons de touches (Ctrl/Cmd, Shift, etc.)
3. Ignore les raccourcis quand l'utilisateur tape dans un champ de saisie (sauf exceptions)
4. Exécute l'action correspondante
## 📝 Ajouter un Nouveau Raccourci
Pour ajouter un nouveau raccourci, modifiez le fichier `frontend/src/keyboard-shortcuts.js` :
```javascript
this.shortcuts = [
// ... raccourcis existants
{
key: 'nouvelle-touche',
ctrl: true,
shift: false, // optionnel
description: 'Description du raccourci',
action: () => this.maFonction()
}
];
```
Puis ajoutez la méthode correspondante dans la classe :
```javascript
maFonction() {
// Votre code ici
console.log('Raccourci exécuté');
}
```
## 🎨 Affichage dans l'Interface
Les raccourcis sont affichés :
- Dans les **tooltips** des boutons (attribut `title`)
- Sur la **page d'accueil** dans la section "⌨️ Raccourcis clavier"
- Dans cette **documentation**
## ⚡ Performances
Le gestionnaire de raccourcis est optimisé pour :
- Écouter un seul événement au niveau document
- Utiliser une recherche linéaire rapide (< 1ms)
- Ne pas interférer avec les champs de saisie
- Supporter les raccourcis multi-plateformes
## 🐛 Dépannage
### Le raccourci ne fonctionne pas
1. Vérifiez que vous n'êtes pas dans un champ de saisie (input/textarea)
2. Vérifiez la console du navigateur pour les messages d'erreur
3. Vérifiez que la fonction cible existe et est accessible
### Conflit avec les raccourcis du navigateur
Certains raccourcis peuvent entrer en conflit avec le navigateur :
- `Ctrl/Cmd + W` : Fermer l'onglet (réservé au navigateur)
- `Ctrl/Cmd + T` : Nouvel onglet (réservé au navigateur)
- `Ctrl/Cmd + R` : Recharger (réservé au navigateur)
Évitez d'utiliser ces combinaisons pour l'application.
## 📚 Références
- [MDN - KeyboardEvent](https://developer.mozilla.org/fr/docs/Web/API/KeyboardEvent)
- [Web Platform Keyboard Shortcuts](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/)