XKB tính đa dạng bố cục cụ thể của hành vi Capslock


8

Tôi có hai bố cục bàn phím tùy chỉnh, một phiên bản sửa đổi của us(mà tôi đã gọi vi,) một phiên bản sửa đổi của dk(mà tôi đã gọi da.)

Cả hai đều được đăng ký đúng cách, và làm việc. Sau một thời trang.

Các vicó Capslock và thoát hoán đổi giống với cách nó được thực hiện trong capslock(swapescape)bố trí một phần, và có một phím Soạn quy định (các <LSGT>chìa khóa, được unusued ở ustrên pc105, nhưng sử dụng cho <>\¬với dk.)

(Rõ ràng vilà một cái tôi tạo cho các biên tập viên giống Vi. Lý do tại sao tôi không đặt caps:swapescape, compose:102là vì điều đó cũng sẽ ảnh hưởng đến dkbố cục - cụ thể là làm mờ khả năng nhập các ký hiệu <>\¬.)

Vấn đề ban đầu tôi gặp phải là vibố cục của tôi sẽ hoán đổi Capslock và Escape, và điều này sẽ chảy vào dkbố cục gốc .

Sau đó, tôi đã tạo ra dabố cục cố gắng khắc phục điều này, bằng cách chỉ định rằng Capslock thực sự là Capslock, và Escape đó thực sự là Escape.

Và điều này gần như hoạt động. Bây giờ cả hai hoạt động như Capslock khi dabố trí được chọn.

Làm cách nào để đảm bảo Escape là Escape và Capslock là Capslock trong dakhi vẫn duy trì hành vi hoán đổi trong vi?

ETA: Bây giờ tôi đã cố gắng đảo ngược thứ tự của hai bố cục này (vì vậy bố cục đã đọc da,vi) và lỗi đã được chuyển ngay lập tức: bây giờ cả hai đều vilà Capslock và dacó cách thông thường.


Tôi đang dùng Xubfox 14.04

vi tập tin bố trí:

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 tập tin bố trí:

// 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)" };
};

Câu trả lời:


0

Hãy thử đặt cả hai bố cục trong cùng một tệp bằng cách sử dụng [Nhóm] rõ ràng:

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.