Ändern Sie die Feststelltaste, um sie in der virtuellen Konsole unter Ubuntu 17 zu steuern

9

Ich möchte das Feststelltastenverhalten in virtuellen Terminals ändern (z. B. tty CtrlAltF3), damit es als Steuerungsmodifikator fungiert. Im Idealfall möchte ich auch, dass es als Escape fungiert, wenn es alleine gedrückt wird, aber es erweist sich als schwierig, nur das Kontrollverhalten zu erhalten.

Ich verwende Ubuntu 17.04. Ich habe zahlreiche Ansätze gelesen und ausprobiert, um diese Änderung vorzunehmen, aber keiner scheint wie beschrieben auf mein System zuzutreffen. Ich habe das Gefühl, dass systemd eine Rolle dabei spielt, aber die Einzelheiten sind unklar.

Ich habe eine Datei geschrieben caps_control.kmap, die Kappen der Steuerung zuordnet.

keymaps 0-255
keycode  58 = Control

Wenn ich loadkeys caps_control.kmapvon einer virtuellen Konsole aus laufe , funktioniert es. Jetzt möchte ich, dass es beim Booten / Anmelden / was auch immer automatisch geladen wird ...

Ich fand Hinweise auf die Verwendung /etc/rc.localso zu tun, aber mein System hat keine solche Datei, obwohl es mehrere Verzeichnisse hat gefallen /etc/rc0.d/, /etc/rc1.d/...

Es klingt so, als ob Ubuntu 17 sytemd verwendet. Ich sollte es verwenden localectl, um so etwas zu verwalten, aber mir ist nicht klar, wie ich das machen soll. Zum Beispiel,

$ localectl status
   System Locale: LANG=en_US.UTF-8
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105
$ localectl list-keymaps
Couldn't find any console keymaps.

Die Manpage für localectlErwähnungen /etc/locale.confund /etc/vconsole.conf, von denen keine auf meinem System vorhanden ist.

Ich bin total ratlos. Kann mich jemand in die richtige Richtung weisen?

ivan
quelle
Benötigen Sie diese Änderung, um für alle Benutzer oder nur für Ihre eigenen aktiv zu sein?
Acer
@acer So oder so würde es mir passen, da ich wirklich der einzige Benutzer auf diesem Computer bin.
Ivan
Hmm ... Sie fügen eine Zeile in ~ / .profile hinzu loadkeys caps_control.kmap, die ausgeführt wird, wenn Sie sich anmelden.
acer
@acer Das Aufrufen loadkeysvon ~ / .profile scheint problematisch zu sein. Wenn ich mich anmelde, wird die Fehlermeldung "Dateideskriptor für die Konsole konnte nicht abgerufen werden" angezeigt.
Ivan

Antworten:

10

Um Caps Lock in einen zusätzlichen Strg-Modifikator zu verwandeln, der auch in tty-Konsolen wirksam ist, öffnen Sie ihn /etc/default/keyboardzum Bearbeiten und Festlegen:

XKBOPTIONS=ctrl:nocaps

Wenn Sie bereits festgelegt haben XKBOPTIONS, fügen Sie ctrl:nocapsden vorhandenen Wert mit einem Komma für das Trennzeichen hinzu, z.

XKBOPTIONS="terminate:ctrl_alt_bksp,ctrl:nocaps"

Sollte nach dem nächsten Neustart oder der Ausgabe des setupconBefehls wirksam sein .

Die Option sollte beim Ausführen vorhanden sein localectl status:

$ localectl status | grep caps
     X11 Options: ctrl:nocaps

In der X-Sitzung können Sie außerdem überprüfen, ob sie festgelegt ist:

$ gsettings get org.gnome.desktop.input-sources xkb-options
['ctrl:nocaps']
Gunnar Hjalmarsson
quelle
1
Eine weitere XKB-Option ist "ctrl:nocaps". In X ist der Unterschied geringfügig : Mit der ctrlOption xevund anderen Werkzeugen wird ein Control_LSymbol angezeigt, wenn die CapsLock-Taste gedrückt wird, während die capsOption weiterhin das Keysym anzeigt Caps_Lock. Ich bin mir nicht sicher, ob sich dieser Unterschied auf die Keymap der virtuellen Konsole auswirkt.
Quixotic
@quixotic: Danke fürs Erwähnen ctrl:nocaps. Ich habe es meiner Antwort hinzugefügt.
Gunnar Hjalmarsson
Irgendeine Idee, warum das bei mir nicht funktioniert? Es ist tatsächlich eines der ersten Dinge, die ich versucht habe, und ich mag den Ansatz. Leider hat es keine Auswirkungen auf mein System.
Ivan
1
@ivan: Ich habe mich gerade selbst getestet und festgestellt, dass mein erster Vorschlag ( caps:ctrl_modifier) in tty nicht wirksam ist. Allerdings ist für mich (am 17.10) ctrl:nocaps. Bitte beachten Sie meine bearbeitete Antwort.
Gunnar Hjalmarsson
1
@GunnarHjalmarsson Ich bin nicht allzu vertraut mit der Methode von Debian / Ubuntu, XKB-Karten in Konsolenkarten zu übersetzen ( ckbcompich glaube?). Ich habe mich nicht an die caps:ctrl_modifierOption erinnert, die Sie zuerst erwähnt haben, also habe ich sie nachgeschlagen, um sie mit der ctrl:nocapsnormalerweise verwendeten zu vergleichen , und dachte, der Unterschied könnte hier erwähnenswert sein. Ich bin froh, dass es hilfreich war.
Quixotic