Wie tausche ich die Feststelltaste und die Esc-Taste programmgesteuert aus?

18

Ich bin ein schwerer Vim-Benutzer und eines der ersten Dinge, die ich tue, wenn ich anfange, an einer sauberen Ubuntu-Installation zu arbeiten, ist das Vertauschen der Feststelltasten und Esc-Tasten, um Handbewegungen über der Tastatur zu reduzieren.

Bisher habe ich es über den Tastaturkonfigurationsdialog gemacht, aber jetzt schreibe ich eine Reihe von Skripten, die Ubuntu nach meinen Wünschen einrichten, und ich konnte keine skriptfähige oder programmierbare Möglichkeit finden, dieses Konfigurationselement zu ändern.

Ich bin nicht auf der Suche nach Optionen, mit denen die Tasten auf einer anderen Ebene als dem Gnom selbst vertauscht werden können. Ich suche also nach einer Möglichkeit, diese Änderung zu skripten und sie in der Tastaturkonfiguration anzuzeigen, die ich früher verwendet habe, falls ich mich dazu entscheide Stellen Sie es in Zukunft manuell wieder her.

Jacobo de Vera
quelle
gute Idee! Ich habe mich die ganze Zeit darüber beschwert, meine Hand für Esc zu bewegen, während ich in Vim arbeitete, aber jetzt ist dies die Lösung! Danke Bruder ;-)
Sazary
1
Seien Sie jedoch vorsichtig, sobald Sie sich daran gewöhnt haben, dass sie ausgetauscht werden, wird es unangenehm, wenn Sie an der Tastatur eines anderen arbeiten müssen :)
Jacobo de Vera
2
Eine weitere Option ist Strg-C anstelle von Esc. (Funktioniert auf allen Keyboards.
Eric Wilson
@ FarmBoy, großartig! Ich wusste das nicht!
Jacobo de Vera

Antworten:

22

Sie können dies über die GUI tun, indem Sie die Keyboard PreferencesSystemsteuerung (unter System -> Preferences) öffnen und die LayoutRegisterkarte auswählen . Klicken Sie auf die Options...Schaltfläche, um den Dialog mit den Layoutoptionen zu öffnen. Erweitern Sie den Caps Lock key behaviourAbschnitt und wählen Sie Swap ESC and Caps Lock.

Es gibt einige Möglichkeiten, wie Sie solche Dinge schreiben können.

Direkt über Xkb

Wir können die Änderung direkt mit dem Folgenden vornehmen:

setxkbmap -option caps:swapescape

Sie können alle aktuellen Layoutoptionen deaktivieren (wodurch die Feststelltaste auf das Standardverhalten zurückgesetzt wird):

setxkbmap -option ''

Über GConf

Das Control Panel für Tastatureinstellungen speichert seine Konfiguration über gconf, wobei das Layout tatsächlich von übernommen wird gnome-settings-daemon. Daher können Sie veranlassen gnome-settings-daemon, das Layout anzupassen, indem Sie gconf selbst aktualisieren.

Die relevante Einstellung in diesem Fall scheint zu sein /desktop/gnome/peripherals/keyboard/kbd/options. So können Sie die Option einstellen mit:

gconftool-2 --set /desktop/gnome/peripherals/keyboard/kbd/options \
    --type list --list-type string \
    '[caps<tab>caps:swapescape]'

Im obigen Beispiel <tab>sollte es sich eher um ein literales Tabulatorzeichen als um Leerzeichen handeln. Sie können das Verhalten wieder deaktivieren, indem Sie den gconf-Schlüssel auf eine leere Liste setzen.

James Henstridge
quelle
Die gconf-Option ist genau das, wonach ich gesucht habe, aber Ihre Konfiguration hat die Feststelltaste in eine Escape-Taste und die Escape-Taste in eine Tabulatortaste verwandelt. Ich habe die Einstellung nochmal manuell geändert und mir den Wert im gconf-editor angesehen, das war es eigentlich [caps<tab>caps:swapescape]. Alles funktioniert jetzt, ich akzeptiere Ihre Antwort und schlage vor, dass Sie sie bearbeiten, um den Wert für zukünftige Referenz zu ändern. Vielen Dank.
Jacobo de Vera
@Jacobo In Zukunft können Sie die Bearbeitung selbst vorschlagen - klicken Sie einfach auf die Schaltfläche Bearbeiten unter der Antwort. Ihre Änderung wird schnell von jemandem genehmigt. Ich habe die Bearbeitung für Sie vorgenommen (überprüfen Sie, ob es richtig ist). Wie auch immer, nette Antwort @James! +1
Stefano Palazzo
1
@Stefano, danke, ich hatte die Bearbeitungsoption nicht bemerkt.
Jacobo de Vera
Gibt es eine Möglichkeit, dies über den Anmeldebildschirm in GDM zum Laufen zu bringen?
Lindhe