XKB 다중 레이아웃 레이아웃 관련 Capslock이 이상하게 동작합니다.

XKB 다중 레이아웃 레이아웃 관련 Capslock이 이상하게 동작합니다.

us나는 두 가지 사용자 정의 키보드 레이아웃, 즉 수정된 버전(I call it)과 vi수정된 버전(I call it)을 가지고 있습니다.dkda

둘 다 제대로 등록되어 작동 중입니다. 약간의 패션 이후.

Capslock 및 Escape는 지정된 작성 키를 사용하여 vi부분 레이아웃과 동일한 방식으로 교체됩니다 (이 키는 a에서는 사용되지 않지만 함께 사용됩니다.)capslock(swapescape)<LSGT>uspc105<>\¬dk

(분명히 vi저는 Vi와 같은 편집기를 위해 이것을 만들고 있습니다. 단지 설정하지 않은 이유 는 이것이 레이아웃 caps:swapescape, compose:102에도 영향을 미치기 때문입니다 . 즉 기호를 입력하는 기능을 제거합니다 .)dk<>\¬

처음에 내가 겪었던 문제는 내 vi레이아웃이 Capslock과 Escape를 교체하고 이것이 기본 레이아웃으로 흘러 들어간다는 것입니다 dk.

da그런 다음 Capslock이 실제로 Capslock이고 Escape가 실제로 Escape임을 지정하여 이 문제를 해결하기 위한 레이아웃을 만들었습니다 .

거의일하다. 이제 da레이아웃을 선택할 때 둘 다 Caps Lock 키로 작동합니다.

da스왑 동작을 유지하면서 Escape가 Escape이고 Capslock이 Capslock인지 확인하는 방법은 무엇입니까 vi?

예상 도착 시간:이제 이 두 레이아웃의 순서를 바꾸려고 시도했는데(그래서 레이아웃이 읽음 da,vi) 오류가 즉시 전환되었습니다. 이제 두 vi레이아웃 모두 대문자로 잠겨 있고 da일반적인 방식을 갖습니다.


나는 Xubuntu 14.04에 있습니다

vi레이아웃 파일:

default  partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {

    name[Group1]= "English (US) with Caps:SwapEscape and Compose:102";

    key <TLDE> {    [     grave,    asciitilde  ]   };
    key <AE01> {    [     1,    exclam      ]   };
    key <AE02> {    [     2,    at      ]   };
    key <AE03> {    [     3,    numbersign  ]   };
    key <AE04> {    [     4,    dollar      ]   };
    key <AE05> {    [     5,    percent     ]   };
    key <AE06> {    [     6,    asciicircum ]   };
    key <AE07> {    [     7,    ampersand   ]   };
    key <AE08> {    [     8,    asterisk    ]   };
    key <AE09> {    [     9,    parenleft   ]   };
    key <AE10> {    [     0,    parenright  ]   };
    key <AE11> {    [     minus,    underscore  ]   };
    key <AE12> {    [     equal,    plus        ]   };

    key <AD01> {    [     q,    Q       ]   };
    key <AD02> {    [     w,    W       ]   };
    key <AD03> {    [     e,    E       ]   };
    key <AD04> {    [     r,    R       ]   };
    key <AD05> {    [     t,    T       ]   };
    key <AD06> {    [     y,    Y       ]   };
    key <AD07> {    [     u,    U       ]   };
    key <AD08> {    [     i,    I       ]   };
    key <AD09> {    [     o,    O       ]   };
    key <AD10> {    [     p,    P       ]   };
    key <AD11> {    [ bracketleft,  braceleft   ]   };
    key <AD12> {    [ bracketright, braceright  ]   };

    key <AC01> {    [     a,    A       ]   };
    key <AC02> {    [     s,    S       ]   };
    key <AC03> {    [     d,    D       ]   };
    key <AC04> {    [     f,    F       ]   };
    key <AC05> {    [     g,    G       ]   };
    key <AC06> {    [     h,    H       ]   };
    key <AC07> {    [     j,    J       ]   };
    key <AC08> {    [     k,    K       ]   };
    key <AC09> {    [     l,    L       ]   };
    key <AC10> {    [ semicolon,    colon       ]   };
    key <AC11> {    [ apostrophe,   quotedbl    ]   };

    key <AB01> {    [     z,    Z       ]   };
    key <AB02> {    [     x,    X       ]   };
    key <AB03> {    [     c,    C       ]   };
    key <AB04> {    [     v,    V       ]   };
    key <AB05> {    [     b,    B       ]   };
    key <AB06> {    [     n,    N       ]   };
    key <AB07> {    [     m,    M       ]   };
    key <AB08> {    [     comma,    less        ]   };
    key <AB09> {    [    period,    greater     ]   };
    key <AB10> {    [     slash,    question    ]   };

    key <BKSL> {    [ backslash,         bar    ]   };

    key <CAPS> { [ Escape ] };
    key <ESC>  { [ Caps_Lock ] };
    key <LSGT> { type[Group1]="TWO_LEVEL", [ Multi_key, Multi_key ] };
};

da레이아웃 파일:

// based on a keyboard map from an 'xkb/symbols/dk' file

default  partial alphanumeric_keys
xkb_symbols "basic" {

    include "latin(type2)"

    name[Group1]="Danish";

    key <AE11>  { [      plus,   question,    plusminus, questiondown ] };
    key <AE12>  { [dead_acute, dead_grave,          bar,    brokenbar ] };


    key <AC10>  { [        ae,        AE,   dead_acute, dead_doubleacute ] };
    key <AC11>  { [    oslash,  Ooblique, dead_circumflex, dead_caron ] };
    key <TLDE>  { [   onehalf,   section, threequarters,    paragraph ] };

    key <BKSL>  { [apostrophe,   asterisk, dead_doubleacute, multiply ] };

    key <LSGT>  { [      less,    greater,    backslash,      notsign ] };

    include "kpdl(comma)"

    include "level3(ralt_switch)"

    key <ESC>  { [ Escape ] };
    key <CAPS> { [ Caps_Lock ] };

};

setxkbmap -print -verbose 10

Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      pc105
layout:     vi,da
variant:    ,
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+vi+da:2+inet(evdev)
geometry:   pc(pc105)
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+vi+da:2+inet(evdev)"    };
    xkb_geometry  { include "pc(pc105)" };
};

답변1

동일한 파일에 두 레이아웃을 모두 설정하려면 명시적인 [그룹]을 사용해 보세요.

key <...> { symbols[Group1] = [ ... ], symbols[Group2] = [ ... ] };

관련 정보