Antworten:
Die Werkzeuge des Tastaturlayouts auf den manipulieren virtuellen Konsolen sind loadkeys
, dumpkeys
und showkey
. Lesen Sie ihre Hilfeseiten und informieren Sie sich über ihre Feinheiten.
Beachten Sie, dass diese Tools nur in einer virtuellen Konsole und nicht in einem Terminalemulator in einer grafischen Umgebung wie gnome funktionieren. Lesen Sie diese Frage und die Antworten, um mehr über den Unterschied zu erfahren: https://askubuntu.com/questions/14284/why-is-a-virtual-terminal-virtual-and-what-where-is-the-real-terminal .
Hier ist eine kurze Anleitung, um zu tun, was Sie wollen:
Speichern Sie Ihr aktuelles Tastaturlayout:
$ dumpkeys > backup.kmap
Falls etwas schief geht, können Sie möglicherweise Ihre Tastaturbelegung mit dem folgenden Befehl wiederherstellen:
$ sudo loadkeys backup.kmap
Wenn die Tastatur so durcheinander ist, dass Sie dies nicht einmal tun können, besteht Ihre einzige Option, die keine alte Kernelmagie beinhaltet, darin, einen Neustart durchzuführen.
Überprüfen Sie, welche Schlüsselcodes Ihren Schlüsseln zugeordnet sind:
$ showkey
Drücken Sie nun die ESC-Taste und die CAPSLOCK-Taste. Die Tastencodes sollten auf dem Bildschirm angezeigt werden. Notieren Sie die Schlüsselcodes. Auf meinem System hat der ESC den Schlüsselcode 1 und CAPSLOCK den Schlüsselcode 58. showkey
Wird nach 10 Sekunden Inaktivität beendet (zumindest auf meinem Ubuntu 10.04).
Notieren Sie sich die Namen der ESC- und CAPSLOCK-Tasten von dumpkeys:
$ dumpkeys | grep 1
...
keycode 1 = Escape
...
$ dumpkeys | grep 58
...
keycode 58 = CtrlL_Lock
...
Beachten Sie die Keymap-Zeile von dumpkeys:
$ dumpkeys | head -1
keymaps 0-127
Erstellen Sie eine Keymap-Datei, die ESC und CAPSLOCK umschaltet:
keymaps 0-127
keycode 1 = CtrlL_Lock
keycode 58 = Escape
Laden Sie die Keymap:
$ sudo loadkeys swap_esc_capslock.kmap
Test: Das Testen der CAPSLOCK-Taste ist offensichtlich. Drücken Sie einfach die FESTSTELLTASTE und prüfen Sie, ob andere Tasten mit einem Großbuchstaben ausgegeben werden. Zum Testen der ESC-Taste können Sie STRG + V gefolgt von ESC verwenden. Es sollte drucken ^[
. STRG + V bewirkt, dass die Shell den nächsten Schlüssel wörtlich ausgibt, anstatt ihn zu interpretieren.
Fügen Sie die folgende Zeile in Ihre /etc/rc.local
Datei ein, damit diese Änderung bei jedem Neustart geladen wird :
/usr/bin/loadkeys /path/to/swap_esc_capslock.kmap
Informationen, die von verschiedenen Seiten gesammelt wurden, einschließlich, aber nicht beschränkt auf:
/usr/bin/loadkeys
in /etc/rc.local
da der Pfad - Umgebungsvariable nicht gewährleistet ist zu diesem Zeitpunkt festgelegt werden. Und sudo
wird in nicht benötigt rc.local
.
rc.local
wird bei jedem Systemstart ausgeführt. @ bukzor's sudo setupcon
ist nicht in rc.local
, es ist ein einmaliger Setup-Befehl, der die Standardschlüsselzuordnung des Systems ersetzt, ohne dass ein Laufzeit-Startcode hinzugefügt wird. Durch Hinzufügen loadkeys
zu rc.local
wird zusätzlicher Startcode hinzugefügt und das dupliziert, was bereits von den Standardladeschlüsseln des Systems ausgeführt wurde. Die rc.local
Methode ist möglicherweise weniger sicher, da sie von einem nicht standardmäßigen Pfad zur Keymap abhängt.
setupcon
Methode ausarbeiten . Füge deine eigene Antwort hinzu oder bearbeite meine, wenn du möchtest.
setupcon
. Es scheint , dass August der Annahme, dass die sudo setupcon --save
würde in rc.local
dem ich glaube nicht wahr ist, aber wenn es der Fall ist, brauchen Sie nicht sudo
in rc.local
. Ich denke, wir brauchen mehr Informationen, bevor wir Ihre Antwort aktualisieren können. Die Hauptfrage lautet: "Wie installiere ich die geänderte Keymap, damit sie während des Startvorgangs automatisch geladen wird?" Ich weiß wirklich nicht, welcher Weg der rc.local
bessere ist, oder ob die Installation einer Keymap funktioniert oder nicht. Ich habe das in letzter Zeit recherchiert und ich werde hier nachsehen.
Verwenden Sie 'ctrl: nocaps' anstelle von 'ctrl: swapcaps', wenn Sie nur zwei Feststelltasten haben möchten (Feststellen mit einem anderen Namen ist immer noch überflüssig).
X11: (siehe auch: /usr/share/X11/xkb/rules/base.lst
)
sudo vim /etc/default/keyboard
XKBOPTIONS="ctrl:swapcaps"
udevadm trigger --subsystem-match=input --action=change
sudo restart lightdm
Textkonsole: (von setupcon gestohlen)
#!/bin/sh
. /etc/default/console-setup
. /etc/default/keyboard
ckbcomp $acm_option $rules_option -model "$XKBMODEL" \
"$XKBLAYOUT" "$XKBVARIANT" "$XKBOPTIONS" \
| gzip -9 2>/dev/null >/etc/console-setup/cached.kmap.gz
loadkeys /etc/console-setup/cached.kmap.gz
sudo setupcon --save
Änderungen dauerhaft vornehmen, anstatt rc.local zu bearbeiten. Das ist im Wesentlichen dasselbe wiedumpkeys < /dev/tty1 | gzip > /etc/console-setup/cached.kmap.gz