À propos du projet

keymapper est un remappeur de touches contextuel et cross-platform conçu pour redéfinir les dispositions clavier et les raccourcis, soit au niveau du système, soit par application. Il permet aux utilisateurs de gérer tous les raccourcis clavier dans un seul fichier de configuration, de modifier des actions similaires sur différentes applications simultanément, et de partager des configurations entre GNU/Linux, Windows, macOS et FreeBSD. L'outil prend en charge le mappage de caractères directement (et pas seulement des touches physiques), le lancement d'applications via des raccourcis, et le contrôle d'état par le biais d'outils externes comme keymapperctl. Les boutons de souris et les événements de molette peuvent également être mappés. La configuration utilise une syntaxe simple avec des expressions entrée/sortie séparées par '>>', supportant les modificateurs, séquences, timeouts et touches virtuelles pour le changement d'état. Les blocs contextuels permettent des mappages conditionnels basés sur le titre de la fenêtre, la classe, le chemin du processus, l'appareil ou l'état des modificateurs. Les fonctionnalités avancées incluent des commandes abstraites, le traitement multi-étapes, la sortie à la relâche de touche, la frappe de caractères, les macros et les directives pour un réglage fin du comportement. L'installation varie selon l'OS : Linux nécessite une configuration systemd et une intégration Wayland optionnelle ; macOS nécessite le pilote Karabiner-Elements ; Windows offre des installateurs ou des builds portables. Le service s'exécute en tant que daemon privilégié (keymapperd) tandis que l'application côté utilisateur (keymapper) gère la configuration et le contexte. Le contrôle externe via keymapperctl permet le scriptage, l'injection de frappes, le basculement de touches virtuelles et l'interrogation de l'état. Une sortie d'urgence est disponible via Shift+Escape+K. Les fichiers de configuration sont sensibles à la casse et supportent les inclusions, alias et filtres regex. Des macros intégrées permettent la génération dynamique de mappages. Idéal pour les utilisateurs avancés recherchant une personnalisation profonde sans verrouillage de plateforme.