Nhiều lớp sửa đổi với XKB (trên bàn phím tiếng Nhật)


7

Tôi có bàn phím sau (HHKB JP).

hình ảnh

Tôi đang sử dụng Lubfox 14.04 và tôi đã chỉnh sửa /usr/share/X11/xkb/symbols/usđể thực hiện bố cục tùy chỉnh .

Bây giờ, tôi muốn sử dụng các khóa sau làm công cụ sửa đổi cấp 5, 6, 7, ... và 20. (Trên Windows, tôi thực hiện điều này với AutoHotkey và bây giờ tôi không thể sống thiếu (ít nhất là một số) chúng.)

nhập mô tả hình ảnh ở đây

Tôi có 2 vấn đề.

  1. Tôi không biết "tên" cho một số phím không chuẩn trên bàn phím (để thêm chúng vào /usr/share/X11/xkb/symbols/us).
  2. Tôi không biết cách thêm các sửa đổi bổ sung với xkb(tôi hiểu xmodmaplà không dùng nữa), đặc biệt là các phím "bình thường" như thế nào 9.

Câu hỏi của tôi là:

  1. Làm cách nào để tìm ra tên / mã cho các khóa bí ẩn (ví dụ key <AC01>:)?
  2. Làm cách nào để thêm số lớp điều chỉnh tùy ý vào bất kỳ khóa đã cho nào?

Lưu ý: có lẽ điều này không thể thực hiện được với XKB. Tôi rất vui mừng khi biết một số công cụ kịch bản có thể thực hiện điều này.


Để tìm tên khóa vật lý XKB, bạn có thể sử dụng xev để tìm mã khóa sau đó tìm kiếm thông qua bảng mã khóa XKB.
Gilles 'SO- đừng trở nên xấu xa'

@Gilles Điều đó đã làm việc, cảm ơn. Nhưng bây giờ tôi không thể tìm ra làm thế nào để tăng cấp độ bổ trợ ...
étale-cohomology

1
Tôi nghi ngờ rằng Xkb có thể cung cấp nhiều sửa đổi khác nhau.
Guildenstern

Câu trả lời:


6

Bố cục XKB được xác định trong một mô hình gọi là RMLVO: Quy tắc, Mô hình, Bố cục, Biến thể, Tùy chọn. Cơ sở dữ liệu XKB của hệ thống thường ở /usr/share/X11/xkb:

/usr/share/X11/xkb/
├── compat       # ??? dark magic here, avoid
├── geometry     # as in physical, eg for generating layout maps
├── keycodes     # helpful for translating keycodes (from xev) to <FOO>
├── rules        # "evdev" is the important one; *.lst & *.xml are descriptions
├── symbols      # main layouts, variants, optional overrides
└── types        # ??? dark magic here, avoid

Thư mục keycodessẽ xác định tên khóa như <CAPS>hoặc <AC01>từ scancodes mà các khóa đang thực sự tạo ra. setxkbmap -query -verbose 10sẽ cho bạn thấy chính xác những tập tin nào được truy cập để xây dựng sơ đồ phím hiện tại của bạn; Khi nó nói keycodes: evdev+aliases(qwerty), nó đang tải ../keycodes/evdevtập tin và khổ qwertythơ từ ../keycodes/aliasestập tin. Nếu bạn sử dụng các công cụ như xevđể xác định mã khóa nào đang tạo, các tệp đó sẽ hiển thị tên khóa nào được ánh xạ tới mã đó.


Câu hỏi sửa đổi của bạn là khó khăn hơn. Tôi chỉ thấy tham chiếu đến 8 cấp độ ISO và tôi không chắc đó là giới hạn XKB hay đơn giản là không có bố cục chung nào sử dụng nhiều hơn mức đó. (Sau khi kiểm tra thêm, tôi chắc chắn rằng bạn phải thay đổi mã XKB để thêm bổ sung

            symbol    press this
level 1       a       key
level 2       A       shift+key
level 3       á       <level3>+key
level 4       Á       <level3>+shift+key
level 5       ??      <level5>+key
level 6       ??      <level5>+shift+key
level 7       ??      <level5>+<level3>+key
level 8       ??      <level5>+<level3>+shift+key

Như bạn có thể thấy, trong bố cục 8 cấp chỉ có 2 phím đóng vai trò là phím "sửa đổi mới". Xem /usr/share/X11/xkb/compat/level5/usr/share/X11/xkb/types/level5, nơi các hành vi thay đổi, chốt và khóa level5 được xác định; sau đó chúng được gắn vào các phím bằng các tùy chọn ký hiệu được xác định trong /usr/share/X11/xkb/symbols/level5.

Nếu bạn đã xác định công cụ level9sửa đổi của riêng mình , thì việc kết hợp với các cấp độ hiện tại sẽ cung cấp cho bạn thêm 8 cấp độ trước khi bạn cần một công cụ sửa đổi cấp độ khác:

            symbol    press this
level 9       ??      <level9>+key
level 10      ??      <level9>+shift+key
level 11      ??      <level9>+<level3>+key
level 12      ??      <level9>+<level3>+shift+key
level 13      ??      <level9>+<level5>+key
level 14      ??      <level9>+<level5>+shift+key
level 15      ??      <level9>+<level5>+<level3>+key
level 16      ??      <level9>+<level5>+<level3>+shift+key

Như bạn có thể thấy, đây là bắt đầu có rất nhiều phím được nhấn cùng một lúc. Sử dụng khóachốt thay cho ca sẽ cắt giảm điều đó, nhưng đây sẽ là một bố cục rất phức tạp và chúng tôi chỉ tưởng tượng thêm một trình chọn cấp độ. Mỗi người chọn bổ sung sẽ tăng gấp đôi mức hiện có.


"Công cụ sửa đổi" mà bạn hình dung có thể đang chọn một cấp độ cụ thể, đó là lý do tại sao bạn nghĩ rằng bạn cần rất nhiều. Bạn có thể xác định các hành động lựa chọn như thế và đưa chúng vào, giả sử, cấp 3 của các phím đó, do đó level3+key9cung cấp cho bạn một level14_latchhành động, và sau đó bất kỳ phím nào bạn nhấn tiếp theo sẽ cung cấp cho bạn cấp 14 của phím đó.

Chỉnh sửa : Một câu hỏi khác được hỏi cụ thể về việc tạo một ISO_Level4_{Shift,Latch,Lock}và tôi đã chứng minh một bản giảISO_Level4_Latch bằng cách sử dụng các từ khóa và hành động XKB hiện có. Phương pháp đó sẽ có hiệu quả cho các cấp 4, 6, 7 và 8.

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.