2009-10-13 35 views
7

Tôi đang tìm cách thêm một "bố cục" khác vào bàn phím của mình. Tôi đã sử dụng bố cục sử dụng altgr cho các chữ cái trong bảng chữ cái địa phương. Những gì tôi muốn thêm là một bàn phím bên phải được nhân đôi được kích hoạt bằng nắp khóa (được mô tả trong http://xkcd.com/mirrorboard.xkb)Sắp xếp lại bàn phím với nhiều công cụ sửa đổi

Thật không may ISO_LEVEL3_SHIFT đã được chụp bằng bảng chữ cái địa phương. (AFAIK) Nếu tôi sử dụng mode_shift để thay đổi nhóm, tôi không thể sử dụng nhiều hơn 2 cấp độ trong một nhóm nữa. Có cách nào để tạo các nhóm khác nhau cho cả altgr và mode_shift?

+0

Câu hỏi này về cơ bản là biên dịch sơ đồ bàn phím theo cách khá bất thường cần có các hacks cấp thấp. Tôi nghĩ về việc đưa nó vào superuser, nhưng nó sẽ không nhận được bất kỳ câu trả lời ở đó. Nó gần gũi hơn với lập trình (có - đây là cơ bản lập trình xkb) hơn là chỉ tinh chỉnh các thiết lập của bạn (đó là những gì superuser chuyên về). – viraptor

Trả lời

11

Đối với mỗi định nghĩa mã phím, bạn có thể có tối đa tám từ khóa. Chúng được tổ chức theo từng cặp thành bốn nhóm. Có một họ các keyyms ISO_Next_Group, ISO_Prev_Group, ISO_First_GroupISO_Last_Group, khi được nhấn, hãy quay vòng đầu ra keysym bằng cách đánh dấu phím giữa các nhóm keysym. Các phím này là cách bạn đạt được nhiều bố cục.

Như một ví dụ, giả sử ISO_Next_Group đã được ràng buộc với một keycode và gán cho một sửa đổi, sau đó cho định nghĩa này:

keycode 53 = x X Greek_xi Greek_XI multiply U2297 U24E7 U24CD

nhấn phím bàn phím của tôi với nhãn hiệu “X” trên các loại ra “x” . Sau khi nhấn phím ISO_Next_Group, tôi nhận được “ξ”. Nhấn nó một lần nữa, tôi nhận được “×”. Nhấn lại lần nữa, “ⓧ”. Cuối cùng, nhấn nó lần thứ tư để mọi thứ trở lại bình thường.


Có dành vài ngày (vì Xkb¹ có tài liệu khủng khiếp, cuối cùng tìm thấy một hướng ổn here), bạn có thể tạo một tập tin định nghĩa biểu tượng với mục như thế này:

 
    key <SPCE> { 
// Level I  II  III IV 
     [ space, space, U2395, U2592 ], // Group 1 
     [ U2423, emspace, U2420, hairspace ] // Group 2 
    }; 

    key <RALT> { 
     [ Mode_switch, Mode_switch ] 
    }; 

    key <RCTL> { 
     [ ISO_Level3_Shift, ISO_Level3_Shift ] 
    }; 

Các dấu ngoặc kèm theo một đĩa đơn nhóm. Thông thường, nhóm đầu tiên đang hoạt động. Nhóm có thể tạm thời được tăng thêm một với ISO_Group_Shift, a.k.a. Mode_switch. Trong một nhóm, các biểu tượng được phát ra được xác định ở các mức tăng. Cấp I là với một phím bấm trần. Shift thêm một cấp độ hiện tại. ISO_Level3_Shift đặt cấp thành III.

Ví dụ trên bản đồ Bảy biểu tượng để thanh không gian cộng với phím shift khác nhau như rằng:

gian ⟨⟩ U + 0020 SPACE
Shift + không gian ⟨⟩ U + 0020 SPACE
R. Alt + không gian ⟨␣⟩ U + 2423 MỞ BOX
R. Alt + Shift + không gian ⟨⟩ U + 2003 EM KHÔNG gIAN
R. CTL + không gian ⟨⎕⟩ U + 2395 APL CHỨC NĂNG SYMBOL QUAD
R. CTL + Shift + không gian ⟨▒⟩ U + 2592 VỪA SHADE
R. Alt + R. Ctl. + Space ⟨␠⟩ U + 2420 SYMBOL CHO SPACE
R. Alt + R. Ctl.+ Shift + không gian ⟨⟩ U + 200A TÓC SPACE

Ngoài ra còn có một phím ISO_Level5_Shift cho cấp V. Vì vậy, bạn có thể có ít nhất sáu biểu tượng cho một cấp. Với phím shift mode, điều này ngụ ý rằng bạn có thể cấu hình bàn phím của mình để loại bỏ khoảng 1.200 biểu tượng riêng biệt, nhưng tại thời điểm đó giữ quá nhiều công cụ sửa đổi có khả năng sẽ làm mất một vài phím.

P.S. Tên của tất cả các ký hiệu được đặt tên được lưu trữ trong /usr/include/X11/keysymdef.h.


¹ Chỉ ra rằng xmodmap (1) bị lỗi và không dùng nữa.

+0

Chỉ cần tự hỏi - là có một cách để làm cho một số phím một sửa đổi theo cách đó? Vì vậy, nó làm ISO_Next_Group trên báo chí và ISO_Prev_Group ngày phát hành? – viraptor

Các vấn đề liên quan