Linux fehlt eine gute Lösung zur Neuzuordnung von Schlüsseln. Um zufriedenstellende Ergebnisse zu erzielen, muss eine Vielzahl von Tools eingesetzt werden (z. B. xcape, xmodmap), wobei das Endergebnis häufig an eine bestimmte Umgebung (X11) gebunden ist. keyd versucht, dieses Problem zu lösen, indem es einen flexiblen systemweiten Daemon bereitstellt, der Schlüssel mithilfe von Eingabeprimitiven auf Kernelebene (evdev, uinput) neu zuordnet.
Das Konfigurationsformat wurde seit der ersten Veröffentlichung mehreren Iterationen unterzogen. Für diejenigen, die ihre Konfigurationen von Version 1 migrieren, ist es am besten, die Manpage noch einmal zu lesen.
Siehe auch: Änderungsprotokoll.
keyd verfügt über mehrere einzigartige Funktionen, von denen viele traditionell nur in benutzerdefinierter Tastatur-Firmware wie QMK zu finden sind, und einige, die nur für keyd gelten.
Zu den interessanteren gehören:
C-1
neu zuzuordnen, ohne die Semantik des Modifikators zu beeinträchtigen.Hinweis: Master dient als Entwicklungszweig. Zwischen den Veröffentlichungen kann es gelegentlich zu Problemen kommen. Veröffentlichungen sind mit Tags versehen und sollten als stabil gelten.
git clone https://github.com/rvaiya/keyd
cd keyd
make && sudo make install
sudo systemctl enable keyd && sudo systemctl start keyd
Keyd installieren und starten (z. B. sudo systemctl enable keyd
)
Fügen Sie Folgendes in /etc/keyd/default.conf
ein:
[ids]
*
[main]
# Maps capslock to escape when pressed and control when held.
capslock = overload(control, esc)
# Remaps the escape key to capslock
esc = capslock
Schlüsselnamen können mit dem Befehl keyd monitor
abgerufen werden. Beachten Sie, dass die Ausgabe dieses Befehls während der Ausführung von keyd der Ausgabe von keyd entspricht. Die ursprünglichen Eingabeereignisse können angezeigt werden, indem Sie zuerst keyd stoppen und dann den Befehl ausführen. Weitere Einzelheiten finden Sie auf der Manpage.
Führen Sie sudo keyd reload
aus, um den Konfigurationssatz neu zu laden.
Eine ausführlichere Beschreibung finden Sie auf der Manpage ( man keyd
).
Konfigurationsfehler werden in der Protokollausgabe angezeigt und können wie gewohnt mit dem Dienstmanager Ihres Systems abgerufen werden (z. B. sudo journalctl -eu keyd
).
Hinweis : Es ist möglich, dass Ihr Computer mit einer fehlerhaften Konfigurationsdatei unbrauchbar wird. Sollten Sie sich in dieser Situation befinden, sollte die spezielle Tastenfolge backspace+escape+enter
dazu führen, dass keyd beendet wird.
Einige Mäuse (z. B. die Logitech MX Master) können Tasten aussenden und werden daher mit der Wildcard-ID abgeglichen. Es kann erforderlich sein, diese explizit auf die schwarze Liste zu setzen.
Fügen Sie sich der keyd-Gruppe hinzu:
usermod -aG keyd <user>
Füllen Sie ~/.config/keyd/app.conf
aus:
Z.B
[alacritty]
alt.] = macro(C-g n)
alt.[ = macro(C-g p)
[chromium]
alt.[ = C-S-tab
alt.] = macro(C-tab)
Laufen:
keyd-application-mapper
Wahrscheinlich möchten Sie keyd-application-mapper -d
irgendwo in der Initialisierungslogik Ihres Anzeigeservers einfügen (z. B. ~/.xinitrc), es sei denn, Sie verwenden Gnome.
Weitere Informationen finden Sie auf der Manpage.
Mit freundlicher Genehmigung von Giorgi Chavchanidze wurde experimentelle Unterstützung für Einplatinencomputer (SBCs) über ein USB-Gadget hinzugefügt.
Weitere Informationen finden Sie unter usb-gadget.md.
Für einige Distributionen gibt es auch Pakete von Drittanbietern. Wenn Sie Ihr Unternehmen zur Liste hinzufügen möchten, reichen Sie bitte eine PR ein. Diese werden freundlicherweise von Community-Mitgliedern gepflegt, es wird keine persönliche Verantwortung dafür übernommen.
keyd-Paket, verwaltet von @jirutka.
Von Arch-Paketierern verwaltetes Arch-Linux-Paket.
Experimentelle keyd
und keyd-application-mapper
Pakete finden Sie in den CI-Build-Artefakten des in Arbeit befindlichen Debian-Paket-Repositorys:
Jeder Debian-Entwickler, der bereit ist, die Debianisierungsbemühungen zu überprüfen und den Upload zu sponsern, wird gebeten, sich an @rhansen zu wenden (siehe auch den Debian-ITP-Fehler).
COPR-Paket, verwaltet von @alternateved.
OpenSUSE-Paket, verwaltet von @bubbleguuum.
Einfache Installation mit sudo zypper in keyd
.
Experimentelle keyd
und keyd-application-mapper
Pakete finden Sie im ppa:keyd-team/ppa
Archiv.
Wenn Sie bei der Aufrechterhaltung dieses PPA helfen möchten, wenden Sie sich bitte an @rhansen.
[ids]
*
[main]
leftshift = oneshot(shift)
capslock = overload(symbols, esc)
[symbols]
d = ~
f = /
...
Viele Benutzer werden wahrscheinlich kein Interesse daran haben, keyd in vollem Umfang zu nutzen. Für diejenigen, die einfache Verbesserungen der Lebensqualität anstreben, kann ich die folgende Konfiguration empfehlen:
[ids]
*
[main]
shift = oneshot(shift)
meta = oneshot(meta)
control = oneshot(control)
leftalt = oneshot(alt)
rightalt = oneshot(altgr)
capslock = overload(control, esc)
insert = S-insert
Dadurch wird die Feststelltaste so überlastet, dass sie sowohl als Escape-Taste (beim Antippen) als auch als Steuerungstaste (beim Halten) fungiert und alle Modifikatoren den „One-Shot“-Tasten zuordnet. Um den Buchstaben A zu erzeugen, können Sie jetzt einfach auf die Umschalttaste und dann auf a tippen, anstatt ihn gedrückt halten zu müssen. Schließlich ordnet es insert dem S-insert zu (Einfügen auf X11).
xmodmap und Freunde sind Tools auf Anzeigeserverebene mit eingeschränkter Funktionalität. keyd ist eine Lösung auf Systemebene, die erweiterte Funktionen wie Layering und One-Shot-Modifikatoren implementiert. Obwohl einige X-Tools ähnliche Funktionen bieten, ist mir nichts bekannt, das so flexibel ist wie keyd.
keyd wurde vor einigen Jahren geschrieben, um mir das einfache Experimentieren mit verschiedenen Layouts meiner wachsenden Tastatursammlung zu ermöglichen. Damals gab es kmonad noch nicht und eine benutzerdefinierte Tastatur-Firmware wie QMK (die Keyd inspirierte) war die einzige Möglichkeit, vergleichbare Funktionen zu erhalten. Ich bin durch die Veröffentlichung von keyd auf kmonad aufmerksam geworden. Obwohl kmonad ein gutes Projekt mit ähnlichen Zielen ist, verfolgt es einen anderen Ansatz und eine andere Designphilosophie.
Bemerkenswerterweise wurde keyd vollständig in C mit Blick auf Leistung und Einfachheit geschrieben und wird wahrscheinlich nie so konfigurierbar sein wie kmonad (das in Haskell erweiterbar ist). Dennoch bietet es (nach Meinung des Autors) die wertvollsten Funktionen in weniger als 2000 C-Zeilen und bietet gleichzeitig ein einfaches, sprachunabhängiges Konfigurationsformat.
Wenn Sie das Gefühl haben, dass etwas fehlt oder einen Fehler finden, können Sie gerne ein Problem auf Github melden. keyd hat eine minimalistische (aber vernünftige) Designphilosophie, die absichtlich auf bestimmte Funktionen verzichtet (z. B. die Ausführung beliebiger ausführbarer Dateien als Root). Dinge, die bereits in benutzerdefinierter Tastatur-Firmware wie QMK vorhanden sind, sind gute Kandidaten für die Aufnahme.
Siehe BEITRAGEN. IRC-Kanal: #keyd auf oftc