Benutzerdefiniertes Tastaturlayout zur Verwendung von HJKL als Pfeiltasten funktioniert nicht richtig

Benutzerdefiniertes Tastaturlayout zur Verwendung von HJKL als Pfeiltasten funktioniert nicht richtig

Ich habe mein Tastaturlayout so eingerichtet, /usr/share/X11/xkb/symbols/dass die Tasten H, J, K, Lals Pfeiltasten Left, Down, Upund Rightals dritte und vierte Umschaltebene verwendet werden. Meistens habe ich mich andieser Beitrag. Dies R. Altist mein alternativer Zeichenschlüssel.

Obwohl diese Anpassung „grundsätzlich“ funktioniert, kann ich keinen Text auswählen, indem ich ihn in Verbindung mit eingebe Shift. Beispielsweise kann ich den Text nicht durch Drücken Alt Grvon + Shift+ auswählen, wie dies bei + Hder Fall wäre . Aber ich kann mit ein ganzes Wort überspringen .ShiftLeftCtrl

Die H, J, K, Lfunktionieren genau wie die Pfeile in Firefox (mit Shiftund Ctrl), aber nicht in Gedit, Rhythmbox oder Chrome und möglicherweise noch anderen ...

Irgendwelche Ideen? Ich verwende Ubuntu 14.04.


Bearbeiten: Ich verwende eine deutsche Tastatur mit AltGr. und die Dateien sind die folgenden:

Link zum Tastaturlayout

(hoffe der Link funktioniert jetzt)

Antwort1

Gehen Sie zu xkb/types/iso9995und bearbeiten Sie den "THREE_LEVEL"Typ, indem Sie hinzufügen

  preserve[Shift+LevelThree] = Shift;

also es sieht so aus

  partial default xkb_types "default" {

// A key type which can be used to implement
// an ISO9995-style level-three shift.

virtual_modifiers LevelThree;

type "THREE_LEVEL" {
    modifiers = Shift+LevelThree;
    map[None] = Level1;
    map[Shift] = Level2;
    map[LevelThree] = Level3;
    map[Shift+LevelThree] = Level3;
    preserve[Shift+LevelThree] = Shift;
    level_name[Level1] = "Base";
    level_name[Level2] = "Shift";
    level_name[Level3] = "Level3";
    };
};

Gehen Sie dann zu Ihrer Symboldatei und verwenden Sie dieses Format

    key <AC06>  { type="THREE_LEVEL", [               h,               H,            Left ]     }; 
    key <AC07>  { type="THREE_LEVEL", [               j,               J,            Down ]     }; 
    key <AC08>  { type="THREE_LEVEL", [               k,               K,              Up ]     }; 
    key <AC09>  { type="THREE_LEVEL", [               l,               L,           Right ]     }; 

Dasist eine verwandte Frage, aus der ich die Antwort auf Ihre Frage herausfinden konnte.

verwandte Informationen