Linux ne dispose pas d'une bonne solution de remappage des clés. Afin d'obtenir des résultats satisfaisants, un mélange d'outils doit être utilisé (par exemple xcape, xmodmap), le résultat final étant souvent lié à un environnement spécifié (X11). keyd tente de résoudre ce problème en fournissant un démon flexible à l'échelle du système qui remappe les clés à l'aide de primitives d'entrée au niveau du noyau (evdev, uinput).
Le format de configuration a subi plusieurs itérations depuis la première version. Pour ceux qui migrent leurs configurations depuis la v1, il est préférable de relire la page de manuel.
Voir aussi : journal des modifications.
keyd possède plusieurs fonctionnalités uniques, dont beaucoup ne se trouvent traditionnellement que dans le micrologiciel de clavier personnalisé comme QMK, ainsi que d'autres qui sont uniques à keyd.
Certains des plus intéressants incluent :
C-1
sans rompre la sémantique du modificateur.Remarque : master sert de branche de développement, des problèmes peuvent occasionnellement se produire entre les versions. Les versions sont étiquetées et doivent être considérées comme stables.
git clone https://github.com/rvaiya/keyd
cd keyd
make && sudo make install
sudo systemctl enable keyd && sudo systemctl start keyd
Installer et démarrer keyd (par exemple sudo systemctl enable keyd
)
Mettez ce qui suit dans /etc/keyd/default.conf
:
[ids]
*
[main]
# Maps capslock to escape when pressed and control when held.
capslock = overload(control, esc)
# Remaps the escape key to capslock
esc = capslock
Les noms de clés peuvent être obtenus à l’aide de la commande keyd monitor
. Notez que pendant l'exécution de keyd, la sortie de cette commande correspondra à la sortie de keyd. Les événements d'entrée d'origine peuvent être vus en arrêtant d'abord keyd, puis en exécutant la commande. Consultez la page de manuel pour plus de détails.
Exécutez sudo keyd reload
pour recharger l'ensemble de configuration.
Consultez la page de manuel ( man keyd
) pour une description plus complète.
Les erreurs de configuration apparaîtront dans la sortie du journal et seront accessibles de la manière habituelle à l'aide du gestionnaire de services de votre système (par exemple sudo journalctl -eu keyd
).
Remarque : Il est possible de rendre votre machine inutilisable avec un mauvais fichier de configuration. Si vous vous trouvez dans cette position, la séquence de touches spéciale backspace+escape+enter
devrait entraîner la fin de keyd.
Certaines souris (par exemple la Logitech MX Master) sont capables d'émettre des clés et correspondent donc à l'identifiant générique. Il peut être nécessaire de les mettre explicitement sur liste noire.
Ajoutez-vous au groupe keyd :
usermod -aG keyd <user>
Remplissez ~/.config/keyd/app.conf
:
PAR EXEMPLE
[alacritty]
alt.] = macro(C-g n)
alt.[ = macro(C-g p)
[chromium]
alt.[ = C-S-tab
alt.] = macro(C-tab)
Courir:
keyd-application-mapper
Vous souhaiterez probablement placer keyd-application-mapper -d
quelque part dans la logique d'initialisation de votre serveur d'affichage (par exemple ~/.xinitrc), sauf si vous exécutez Gnome.
Consultez la page de manuel pour plus de détails.
La prise en charge expérimentale des ordinateurs monocarte (SBC) via un gadget USB a été ajoutée avec l'aimable autorisation de Giorgi Chavchanidze.
Voir usb-gadget.md pour plus de détails.
Des packages tiers pour certaines distributions existent également. Si vous souhaitez ajouter le vôtre à la liste, veuillez déposer un PR. Ceux-ci sont aimablement entretenus par les membres de la communauté, aucune responsabilité personnelle n'est assumée à leur égard.
paquet keyd maintenu par @jirutka.
Package Arch Linux maintenu par les conditionneurs Arch.
Les packages expérimentaux keyd
et keyd-application-mapper
peuvent être trouvés dans les artefacts de construction CI du référentiel de packages Debian en cours :
Tout développeur Debian souhaitant examiner l'effort de débianisation et sponsoriser son téléchargement est encouragé à contacter @rhansen (voir également le bogue Debian ITP).
Package COPR maintenu par @alternateved.
paquet opensuse maintenu par @bubbleguuum.
Installation facile avec sudo zypper in keyd
.
Les packages expérimentaux keyd
et keyd-application-mapper
peuvent être trouvés dans l'archive ppa:keyd-team/ppa
.
Si vous souhaitez aider à maintenir ce PPA, veuillez contacter @rhansen.
[ids]
*
[main]
leftshift = oneshot(shift)
capslock = overload(symbols, esc)
[symbols]
d = ~
f = /
...
De nombreux utilisateurs ne seront probablement pas intéressés à profiter pleinement de keyd. Pour ceux qui recherchent des améliorations simples de la qualité de vie, je peux recommander la configuration suivante :
[ids]
*
[main]
shift = oneshot(shift)
meta = oneshot(meta)
control = oneshot(control)
leftalt = oneshot(alt)
rightalt = oneshot(altgr)
capslock = overload(control, esc)
insert = S-insert
Cela surcharge la touche de verrouillage des majuscules pour qu'elle fonctionne à la fois comme échappement (lorsqu'elle est enfoncée) et comme contrôle (lorsqu'elle est maintenue enfoncée) et remappe tous les modificateurs en touches « oneshot ». Ainsi, pour produire la lettre A, vous pouvez désormais simplement appuyer sur Shift puis sur a au lieu de devoir la maintenir enfoncée. Enfin, il remappe l'insert en S-insert (coller sur X11).
xmodmap et ses amis sont des outils d'affichage au niveau du serveur avec des fonctionnalités limitées. keyd est une solution au niveau du système qui implémente des fonctionnalités avancées telles que la superposition et les modificateurs oneshot. Bien que certains outils X offrent des fonctionnalités similaires, je ne connais rien d'aussi flexible que keyd.
keyd a été écrit il y a plusieurs années pour me permettre d'expérimenter facilement différentes dispositions sur ma collection croissante de claviers. À l'époque, kmonad n'existait pas et un firmware de clavier personnalisé comme QMK (qui a inspiré keyd) était le seul moyen d'obtenir des fonctionnalités comparables. J'ai découvert kmonad après avoir publié keyd. Bien que kmonad soit un excellent projet avec des objectifs similaires, il adopte une approche différente et a une philosophie de conception différente.
Notamment, keyd a été entièrement écrit en C dans un souci de performance et de simplicité et ne sera probablement jamais aussi configurable que kmonad (qui est extensible en Haskell). Cela dit, il fournit (de l'avis de l'auteur) les fonctionnalités les plus précieuses en moins de 2000 lignes de C tout en fournissant un format de configuration simple et indépendant du langage.
Si vous sentez que quelque chose manque ou trouvez un bug, vous êtes invités à signaler un problème sur github. keyd a une philosophie de conception minimaliste (mais saine) qui omet intentionnellement certaines fonctionnalités (par exemple, l'exécution d'exécutables arbitraires en tant que root). Les éléments qui existent déjà dans le micrologiciel de clavier personnalisé comme QMK sont de bons candidats à l'inclusion.
Voir CONTRIBUTION. Canal IRC : #keyd sur oftc