Beschreibung

Beschreibung

Ich habe einige Beiträge dazu gesehen, wie man die Pfeiltasten unter X11 mit XKB neu zuordnet, aber obwohl diese meistens gut funktionieren, scheint bisher keine Methode (außer der Verwendung unterschiedlicher Gruppen, deren Verwaltung mit der Gnome-Tastatureinrichtung mühsam wird) mit der Taste zu funktionieren Windows.

Ich versuche, meine Tastatur neu zu belegen, sodass ich mit den HJKL-Tasten mit einem navigieren kann ISO_Level3 modifier.

Ich habe versucht, die Pfeiltasten direkt in ISO_Level3 zuzuweisen und durchUmleitungder Schlüssel (ich gebe beide Beispiele im Code unten an).

Sie funktionieren allein gut (d. h. ich kann die Pfeiltasten allein verwenden) und sie funktionieren auch mit CTRLund ALT(d. h. CTRL+ LVL3+ H= CTRL+ LEFT), aber siefunktioniert nicht mit der WIN-Taste.

Meine Symboldatei ist:

default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
      name[Group1] = "Satan";
      include "us"

      // middle row
      key <AC06> {
        symbols =   [ h, H, Left ],
        actions =   [ NoAction(), NoAction(), Redirect(key=<LEFT>) ] };
      key <AC07> {      [ j, J, Down ] };
      key <AC08> {      [ k, K, Up ] };
      key <AC09> {      [ l, L, Right ] };

      key <AC10> {      [ ISO_Level3_Shift, colon, semicolon, colon ]};
      modifier_map Mod5 { ISO_Level3_Shift };
};

Antwort1

Beschreibung

Ich habe eine Lösung gefunden, die in den meisten Fällen für mich gut funktioniert, aber nicht alle Anwendungen scheinen xkb-Eingaben direkt zu interpretieren. Es war allerdings etwas komplexer als die Verwendung des Level-3-Modifikators. In meinem Fall habe ich CAPSLOCKeine Kontrollebene namens festgelegt Overlay1.

Ich verstehe die Funktionsweise von xkb nicht wirklich, aber es scheint, dass diese Ebene nicht von anderen Modifikatoren beeinflusst wird. Damit verschiebt win+ CAPS+ Fenster (in meinem Setup){h,j,k.l}

Nachfolgend finden Sie den entsprechenden Abschnittmeine xkb-Datei:

partial modifier_keys xkb_symbols "xy_caps_overlay" {

    replace key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = [ Overlay1_Enable, Overlay1_Enable ],
        actions[Group1] = [ SetControls(controls=Overlay1), LockControls(controls=Overlay1) ]
    };
    // Movement Section
    key <LatH> { Overlay1 = <LEFT> };
    key <LatJ> { Overlay1 = <DOWN> };
    key <LatK> { Overlay1 = <UP>   };
    key <LatL> { Overlay1 = <RGHT> };

    key <TAB>  { Overlay1 = <TAB>  };

    // Editing Section
    key <LatQ> { Overlay1= <Esc>    };

    key <LatZ> { Overlay1 = <UNDO> };
        key <UNDO> { [ VoidSymbol ],
            actions[Group1]=[ RedirectKey(key=<LatY>,modifiers=Control)] 
        };
    key <LatY> { Overlay1 = <REDO> };
        key <REDO> { [ VoidSymbol ],
            actions[Group1]=[ RedirectKey(key=<LatZ>,modifiers=Control)] 
        };
    key <LatX> { Overlay1 = <CUT>  };
    key <LatC> { Overlay1 = <COPY> };
    key <LatV> { Overlay1 = <PAST> };

    key <LatQ> { Overlay1 = <ESC>  };
    key <LatU> { Overlay1 = <HOME> }; 
    key <LatI> { Overlay1 = <END>  }; 

    key <LatP> { Overlay1 = <PGUP> }; 
    key <AC10> { Overlay1 = <PGDN> };

    key <LatD> { Overlay1 = <DELE> };
    key <LatB> { Overlay1 = <BKSP> };

    key <SPCE>  { Overlay1 = <RTRN>  };

}; 

Stellen Sie sicher, dass Sie dies in Ihr Layout einbeziehen partial, beispielsweise

        include "xy(xy_caps_overlay)" 

wobei xy der Name der Datei ist, in die diese Teileinstellungen geschrieben werden, und xy_caps_overlay der tatsächliche Name des Teilabschnitts ist.

Notiz

Vielleicht ist meine Datei etwas verwirrend. Beachten Sie jedoch, dass ich AUCH den Modifikator der dritten Ebene (AltGr oder rechtes Alt) verwende, manchmal für überlappende Zwecke, sodass ich auch nur mit meiner rechten Hand navigieren kann, aber die Verwendung von AltGr+ Win+ {h j k l}funktioniert nicht wie vorgesehen.

Bonus

(Weiter unten in meinen Dateien gibt es noch ein paar andere interessante Sachen, mit denen ich experimentiere, die aber nicht direkt mit Ihrer Frage zusammenhängen, die Sie aber vielleicht interessieren. Im xy_greek_lvl2Abschnitt erfahren Sie, wie ich AltGr+ ,oder .verwende, um die Tastatur für mathematische (griechische) Zeichen zu verriegeln oder umzuschalten.) (es ist noch in Arbeit, allerdings ein bisschen chaotisch)

Auszug hier (falls ich die Dateien verschiebe)

    key <RTSH> { // Use right shift (with shift) while pressed 
            symbols[Group1] = [ NoSymbol, NoSymbol ], 
            actions[Group1] = [ SetMods(modifiers=Shift,clearLocks), LatchGroup(group=2) ]
    };
    key <AB08> { // use "," for 2nd group (with AltGr) while pressed
            symbols[Group1] = [ NoSymbol, NoSymbol, VoidSymbol, VoidSymbol ], 
            actions[Group1] = [ NoAction(), NoAction(), LatchGroup(group=2) ]

verwandte Informationen