Konfigurieren Sie die Feststelltaste wie in vim als AltGr und Pfeile


9

1. Wie ordne ich global Caps Lockzu AltGr?

Ich brauche kein CapsLock und möchte dort lieber einen einfachen Zugriff auf AltGr Key haben

2. Ich möchte alle Bewegungstasten vimähnlichen Positionen zuordnen

  • AltGr+ F=Backspace
  • AltGr+ H=LeftArr
  • AltGr+ J=DownArr
  • AltGr+ L=RightArr
  • AltGr+ K=UpArr
  • AltGr+ U=PgUp
  • AltGr+ D=PgDown
  • AltGr+ S=Enter
  • AltGr+ 3=Pos1
  • AltGr+ $=End
  • AltGr+ X=Del

So kann ich leicht durch meinen Code gehen, ohne die Hand von der 10-Finger-Position wegzubewegen (wie im vimEditor).

Ich habe folgende Antwort gefunden: Wie ordne ich die Feststelltaste der Rücktaste zu?
Vorschlag mit

xmodmap -e "keycode [code] = [new key]"

Siehe: http://wiki.linuxquestions.org/wiki/List_of_Keysyms_Recognised_by_Xmodmap

Aber ich kann nicht herausfinden, wie ich dies zu einer Kombination von zum Beispiel AltGr + J hinzufügen kann

Ein weiterer Anfang wäre, die "Alternative Zeichentaste" unter unity-control-center-> Tastatur-> Tastenkombinationen-> Eingabe als einzustellenCaps Lock

Update: Ich habe einige Lösungen gefunden (siehe unten), aber alle funktionieren nicht in allen Anwendungen. Ich denke, es handelt sich um eine globale Einstellung namens "XFree 4", die von einigen Apps verwendet wird.

Wie stelle ich die Tastenkombinationen auch für XFree 4 ein?


Ich habe keinen AltGr-Schlüssel, aber diese ähnliche Frage liefert möglicherweise einige Hinweise.
Elder Geek

Antworten:


3

1. Fügen Sie eine neue XKB-Teildatei hinzu

sudo vi /usr/share/X11/xkb/symbols/altgr_vim

mit diesem Inhalt:

partial keypad_keys
xkb_symbols "altgr-vim" {
  # replace Caps with AltGr
  key <CAPS> { [ ISO_Level3_Shift            ] };
  # Add vim cursor keys to be accessed with AltGr
  key <AB02> { [ x, X, Delete, Delete        ] };
  key <AC02> { [ s, S, KP_Enter, KP_Enter    ] };
  key <AC03> { [ d, D, Next, Next            ] };
  key <AC04> { [ f, F, BackSpace, BackSpace  ] };
  key <AC06> { [ h, H , Left, Left           ] };
  key <AC07> { [ j, J, Down, Down            ] };
  key <AC08> { [ k, K, Up, Up                ] };
  key <AC09> { [ l, L, Right, Right          ] };
  key <AD07> { [ u, U, Prior, Prior          ] };
  key <AE03> { [ 3, section, Home, Home      ] };
  key <AE04> { [ 4, dollar, End, End         ] };
};

2. Fügen Sie den Teil in Ihre Sprachdatei ein

Zum Beispiel für Deutsch ist es /usr/share/X11/xkb/symbols/de(wo /deist deine Sprache) füge dies im ersten Block hinzu ( xkb_symbols "basic"):

include "altgr_vim(altgr-vim)"

3. Laden Sie die Fenstersitzung neu

Drücken Sie ALT + F2, geben Sie "r" ein, um die Gnome-Sitzung neu zu laden, oder melden Sie sich einfach ab und wieder an. Jetzt sind die neuen Schlüsselkompositionen verfügbar

einige Probleme

Einige Anwendungen akzeptieren die Einstellungen nicht, zum Beispiel: sublimeDiese können durch ersetzt werden atom.

Einige Anwendungen benötigen zusätzliche Einstellungen, z. B. yakuakewenn die Tastenkombinationen auf "XFree 4" eingestellt sind. Wenn Sie sie auf "Linux" oder "Solaris" einstellen, funktionieren die XKB-Einstellungen auch dort:


1
Ich empfehle dringend, die XKB-Option zu verwenden, lv3:caps_switchanstatt die <CAPS>Definition wie gezeigt zu ändern . siehe /usr/share/X11/xkb/symbols/level3(wo diese Option definiert ist).
Quixotic

@quixotic: Kannst du eine neue Antwort mit den Konfigurationen hinzufügen, die benötigt würden? Ich könnte hier eine gute vollständige Antwort für das Kopfgeld brauchen;)
rubo77

Das hat bei mir perfekt funktioniert. Nur ein Kopf hoch, vielleicht möchten Sie "Abschnitt" in "Nummernzeichen" für Schicht + 3
ändern

0

zu erhalten , um AltGr+ h, j, k, loder eine beliebige andere Taste , ohne jede Anwendung wie Autokey peform Sie das Tastaturlayout in gefunden anpassen können / usr / share / X11 / xkb / Symbole / . Im Moment benutze ich das deutsche Layout "de". Also würde ich zuallererst:

1- Kopieren Sie das Standardlayout

cp /usr/share/X11/xkb/symbols/de /usr/share/X11/xkb/symbols/de.bak

2- Öffnen Sie Ihr Layout mit Ihrem bevorzugten Texteditor (hier: gedit)

sudo gedit /usr/share/X11/xkb/symbols/de 

dort wirst du so etwas sehen wie:

key <AD03>  { [         e,          E,     EuroSign,     EuroSign ] };
key <AD06>  { [         z,          Z,    leftarrow,          yen ] };
key <AD11>  { [udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] };
....
....
key <AD12>  { [      plus,   asterisk,   dead_tilde,  macron ]  };
key <AC02>  { [               s,               S,          ssharp,          U017F ] }; 
key <AC06>  { [               h,               H,            Left,             Left ]   }; 
key <AC07>  { [               j,               J,            Down,             Down ]   }; 
key <AC08>  { [               k,               K,              Up,               Up ]   }; 
key <AC09>  { [               l,               L,           Right,            Right ]   }; 
....
....
key <AB10>  { [     minus, underscore,               endash,     emdash ] };
key <LSGT>  { [     less,     greater,                  bar,     NoSymbol   ] };

Wie Sie sehen können, steht AB, AC, AD, AE für die Zeile und die Zahl für die Position auf der Tastatur (es gibt einige Sondertasten, wie die Taste für weniger / mehr, die auch anderen Tasten zugewiesen werden kann.

Dort finden Sie nicht alle Tastaturen, sondern nur diejenigen, die sich vom Layout der Tastatur unterscheiden. Das deutsche basiert auf "Latin (Typ 4)", wie Sie am Anfang der Datei sehen können:

include "latin(type4)"

Dann müssen Sie sich nur noch Ihren Bedürfnissen anpassen. Es funktioniert wie:

Schlüssel {[ key, key+ shift, key+ AltGr, key+ Shift+ AltGr ]};

(Es ist auch möglich, Modifikatoren der 5. Stufe oder mehr hinzuzufügen.)

wenn Sie die Änderungen ohne Neustart überprüfen möchten; (Ändern von "de" für Ihr Layout ... hier ist eine Liste mit möglichen Layouts )

 setxkbmap -layout de

Die Pfeile sind wie erwartet mit "Links, Rechts, Ab, Auf" gekennzeichnet. Hier ist eine gute Liste möglicher Werte.

Hier ist ein Beispiel für mein benutzerdefiniertes Layout. (aber momentan nicht in Gebrauch)

Dann müssten Sie Capslock und AltGr neu zuordnen, oder hat es bereits nach der von Ihnen gestellten Frage funktioniert?

Wenn Sie auch ein "normales" deutsches Layout beibehalten möchten, können Sie die Änderungen an einem anderen Layout vornehmen, das Sie normalerweise nicht verwenden (oder die "deutschen keine toten Schlüssel" ändern, die Sie weiter unten in derselben "de" -Datei finden. ..)

Quelle: Link zu einer sehr umfassenden Erklärung von xbk und benutzerdefinierten Layouts.
Link zu einer ähnlichen Frage mit einer guten Antwort.


1
In modernen Ubuntu und Derivaten können Sie XKB-Layouts und -Optionen festlegen, /etc/default/keyboardsobald diese Änderungen vorgenommen wurden. siehe man 5 keyboardfür Details. Ich empfehle, neue Varianten und Optionen hinzuzufügen, anstatt bestehende zu ändern.
Quixotic

0

Verwenden Sie zum erneuten Zuordnen von CapsLock zu AltGr

xmodmap -e "keycode 66 = ISO_Level3_Shift"

(Quelle: https://superuser.com/a/138757/160420 )

Um die Pfeiltasten AltGr + h, j, k und l zuzuordnen, verwenden Sie xmodmap -pke, um die richtigen Einstellungen zu finden:

xmodmap -pke|egrep "f F|j J|k K|h H|l L|o O|u U|d D|dollar|BackSpace"

und ändern Sie den fünften Wert in die neuen Schlüssel und fügen Sie dies alles in einem Bash-Skript hinzu:

# xrandr needs the desktop to be fully loaded. add a delay, to be able to add it to Startup Applications:
sleep 15
# change BackSpace into AltGr
xmodmap -e "keycode 66 = ISO_Level3_Shift"
# set BackSpace on AltGr + F
xmodmap -e "keycode 41 = f F f F BackSpace BackSpace dstroke ordfeminine f F dstroke ordfeminine"
# create arrow keys at h,j,k,l
xmodmap -e "keycode  43 = h H h H Left Left"
xmodmap -e "keycode  44 = j J j J Down Down"
xmodmap -e "keycode  45 = k K k K Up Up"
xmodmap -e "keycode  46 = l L l L Right Right"
xmodmap -e "keycode  30 = u U u U Prior Prior"
xmodmap -e "keycode  40 = d D d D Next Next"
xmodmap -e "keycode  12 = 3 section 3 numbersign Home Home"
xmodmap -e "keycode  13 = 4 dollar 4 dollar End End"
xmodmap -e "keycode  53 = x X x X Delete Delete"

(Quelle: https://askubuntu.com/a/466315/34298 )

Fügen Sie dieses Bash-Skript in Ihre Startanwendungen ein (Wählen Sie Dash> Startanwendungen> Hinzufügen und fügen Sie den Befehl hinzu.)

Hinweis: Seltsamerweise funktioniert dies einwandfrei gnome-terminal, aber yakuakees funktioniert für BackSpace unter AltGr + F, setzt jedoch AltGr + h, j, k und l auf D, B, A und C, es sei denn, Sie setzen die Schlüsselbindung auf "Linux" anstelle von "(Standard) XFree 4", und sublime-textdarin funktioniert es überhaupt nicht


xmodmapist veraltet und entmutigt. Es funktioniert immer noch in X11-Umgebungen, funktioniert jedoch nicht in Wayland und anderen X11-Ersatzgeräten. Die Verwendung von XKB-basierten Lösungen wird dringend empfohlen.
Quixotic

Also muss ich wohl ein neues benutzerdefiniertes Tastaturlayout hinzufügen? askubuntu.com/questions/482678/…
rubo77

1
Das Hinzufügen eines benutzerdefinierten Layouts ist eine Möglichkeit, obwohl Sie wahrscheinlich nur eine benutzerdefinierte Option erstellen können . In GNOME oder Unity müssen Sie möglicherweise das Tastatur-Plugin von settings-daemon deaktivieren, damit Ihre xmodmap-Anpassung funktioniert. Wenn Sie jedoch ein neues systemweites XKB-Layout / eine neue systemweite XKB-Option / Option erstellen, können Sie diese festlegen /etc/default/keyboard.
Quixotic

1
Dies scheint ziemlich viel Arbeit zu sein, aber wird es das Problem lösen, dass die neuen Tastenkombinationen in einigen Apps nicht funktionieren?
Rubo77
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.