Bố cục xkb tùy chỉnh trong đó một khóa tạo hai điểm mã unicode


14

Tôi đang viết một bố cục bàn phím tùy chỉnh mới cho Xorg, nhưng có một glyph cụ thể không tồn tại trong Unicode. Tuy nhiên, thật dễ dàng để tạo ra nó bằng cách sử dụng một chữ cái tiêu chuẩn cộng với một dấu phụ kết hợp.

Ví dụ, nếu tôi muốn chữ cái vcó macron bên dưới, chuỗi U0073+U0331sẽ tạo ra ký tự mà tôi muốn.

Trong định nghĩa bố cục xkb của tôi, tôi có thể chỉ định một điểm Unicode duy nhất (ở đây altgr+dđược liên kết với và altgr+shift+dvới):

key <AC03>  { [         d,          D,        U1E0F,        U1E0E ] }; // d with macron below

Nhưng dường như tôi không thể chỉ định glyph Unicode 'kết hợp' cho một khóa duy nhất:

key <AB04>  { [         v,          V,  U0076+U0331,  U0056+U0331 ] }; // v with macron below

Có thể tạo một định nghĩa xkb toàn hệ thống như thế này không?

Câu trả lời:


11

BIÊN TẬP:

Vẫn đang cố gắng ...

Thử nghiệm cho thấy rằng sơ đồ phím sẽ CHỈ lấy một phím duy nhất ở mỗi vị trí.

NHƯNG, nếu bạn sử dụng một keyym hiếm / chưa bao giờ được sử dụng trong định nghĩa sơ đồ bàn phím, thì Xmodmap toàn cầu để làm cho THAT keyym xuất ra các ký tự unicode khác nhau mà bạn cần, điều này sẽ hoạt động.

Trong sơ đồ chính:

key <AB04>  { [ v, V, XF86LaunchA, XF86LaunchB ] };

Trong Xmodmap toàn cầu: (có lẽ được tải từ /etc/profile.d?)

keysym XF86LaunchA = U0056 U0331
keysym XF86LaunchB = U0076 U0331

Có khá nhiều keyyms không được sử dụng / sử dụng đặc biệt, tôi đã chọn LaunchA / B làm ví dụ.


Cảm ơn câu trả lời. Một nhược điểm là đây sẽ là một thiết lập cho mỗi lần sử dụng, phải không? Làm điều đó với xkb sẽ làm cho nó toàn hệ thống và có nghĩa là nó có thể được phân phối trong một tệp duy nhất. Tất nhiên, những điều kiện đó là trong câu hỏi ban đầu của tôi!
SigueSigueBen

2
Tôi tìm hiểu mã nguồn, dường như không có bất kỳ sự hỗ trợ nào để bao gồm nhiều tổ hợp phím trong các định nghĩa chính của sơ đồ bàn phím. Tất nhiên, bạn có thể tự viết lại để thực hiện khả năng đó!
lornix

Không phải câu trả lời tôi muốn nhưng dù sao đó cũng là câu trả lời. Tôi sẽ tự chọc quanh mã nguồn một chút và xem xét các tùy chọn bạn đã đề xuất. Cảm ơn.
SigueSigueBen

4

Mặt khác, bạn có thể đính kèm vào một khóa nhất định, chính ký tự unicode kết hợp ký tự diactityics, và sau đó bạn có thể nhập nó sau bất kỳ ký tự nào khác. Thật vậy, đó là cách mà các ký tự kết hợp unicode được thay thế để hoạt động.

Trong X11 có các phím chết, các phím chết hoạt động theo cách khác: đầu tiên là phím chết, sau đó là chữ cái cơ sở. Có một <dead_belowmacron>, bạn có thể gắn nó vào một số phím.

Sau đó, bạn cần chỉnh sửa tệp Soạn cho ngôn ngữ của mình (nếu ai đó biết cách nối các định nghĩa vào Soạn tệp từ vị trí do người dùng xác định tôi sẽ cung cấp) và thêm các dòng như:

# when the output is a single unicode char, you put also the corresponding
# X11 symbol name
# <symbol> <symbol> : "one-char-string" <symbol>
<dead_belowmacron> <d> : "ḏ" U1E0F
<dead_tilde> <n> : "ñ" <ntilde>
# when the output is a multicharacter string, you put just the string
# <symbol> <symbol> : "string"
<dead_belowmacron> <v> : "v̱"

tệp Compose sẽ sử dụng được xác định bởi miền địa phương trong tệp /usr/share/X11/locale/compose.dir (đường dẫn có thể thay đổi).

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.