Ánh xạ lại cả Caps Lock và Shift + Caps Lock trong xkb


13

Tôi đang cố gắng định cấu hình xkb sao cho Caps Lock được ánh xạ tới phím Compose và các chức năng Shift + Caps Lock như Caps Lock truyền thống. Tôi đặt như sau trong một tập tin mới gọi là /usr/share/X11/xkb/symbols/gdwatson:

partial modifier keys
xkb_symbols "compose" {
    key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = [ Multi_key, Caps_Lock ]
    };
};

Sau đó tôi chạy setxkbmap -symbols 'pc+us+gdwatson(compose)', hoàn thành thành công. Caps Lock hoạt động như Compose, nhưng Shift + Caps Lock hoạt động như Compose thay vì Caps Lock. xkbcomp :0.0tiết lộ như sau:

key <CAPS> {
    type= "TWO_LEVEL",
    symbols[Group1]= [       Multi_key,       Multi_key ]
};

Ánh xạ biểu tượng cấp thứ hai đang nhân đôi cái đầu tiên vì một số lý do, thay vì giá trị riêng mà tôi đã cố gắng cung cấp cho nó. Có ai có xkb-fu đủ mạnh để cho tôi biết tôi đã làm gì sai hay cách khắc phục không?


1
Tôi có thể giúp bạn làm điều này trong Xmodmap, nhưng không phải xkb. Nếu bạn muốn điều này, hãy phản hồi tích cực (đừng quên viết @mirabilosphản hồi của bạn để tôi nhận thấy nó) trong một bình luận, sau đó tôi sẽ xóa bình luận này và viết nó như một câu trả lời (sau đó bạn cũng nên xóa phản hồi bình luận của mình).
mirabilos

1
Trên dòng đầu tiên của bạn, partial modifier keysthực sự nên được partial modifier_keys? Không có thay đổi này, setxkbmap -symbols 'pc+us+gdwatson(compose)'thực sự thoát với một lỗi, nhưng với thay đổi, tôi nhận được đầu ra mong muốn từ đó xkbcomp :0.0. Tuy nhiên, tôi nhận được hiệu ứng phụ không mong muốn khi nhấn Capslock đồng thời đưa tôi vào chế độ Capslock và soạn chế độ phím.
billyjmc

Câu trả lời:


11

Điều này dường như để thực hiện những gì bạn đang tìm kiếm.

partial modifier_keys
xkb_symbols "compose" {
    key <CAPS> {
        type[Group1] = "TWO_LEVEL",
        symbols[Group1] = [ Multi_key, Caps_Lock ],
        actions[Group1] = [ NoAction(), LockMods(modifiers=Lock) ]
    };
};

Các tài nguyên sau là vô giá khi giao dịch với XKB (Tôi đã liên kết với máy nhân bản của WayBack Machine trong các trang này để kiểm chứng trong tương lai):


Ngoài ra, nếu bạn thực hiện dòng đầu tiên default partial modifier_keys, thì bạn không cần phải chỉ định rõ ràng setxkbmap -symbols 'pc+us+gdwatson(compose)', bạn chỉ có thể làmsetxkbmap -symbols 'pc+us+gdwatson'
billyjmc
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.