Lưu ý : Wayland không sử dụng xkb, nhưng nhiều xTools đã ngừng hoạt động bình thường (ví dụ xdotool)
Lưu ý : Đây là một hướng dẫn không đầy đủ. Nó hữu ích nhất cho một cá nhân muốn tạo bố cục tám cấp độ mới và hiểu cú pháp.
Lưu ý: Một giải pháp nhanh chóng và bẩn được cung cấp. Nó bao gồm một bảng tính tự động tạo mã bạn cần.
Hiểu thư mục XKB
cd /usr/share/X11/xkb/ && ls
- types- Làm thế nào các khóa được sản xuất được thay đổi bởi Active Modifier . (Shift, Control, Alt ~)
Quan trọng nếu bạn muốn tùy chỉnh các phím bổ trợ.
- geometry- Được sử dụng để vẽ đồ họa bàn phím.
Quan trọng nếu bạn đang thiết kế một phần cứng bàn phím không chuẩn.
- rules- Tìm nạp cấu hình phù hợp cho thiết lập hiện tại của bạn.
Bạn sẽ cần xác định điều này
- keycodes- Trình thông dịch của mã phím cho phần cứng bàn phím.
Ví dụ: Bàn phím Macintosh hiểu phím cách là 57
. Chúng tôi viết nó tuy nhiên như<SPCE>
- symbols- Giá trị nào được gán cho Mã khóa nào .
Đây là nơi chúng tôi sẽ xác định bố trí tùy chỉnh của chúng tôi.
- compat- Viết tắt của Compatability .
Hành vi bên trong của Công cụ sửa đổi (Shift, Control, Alt ...)
Quy trình làm việc
keycodes > symbols > compat
Tôi chỉ chạm symbols
: Xem bên dưới để biết giải pháp Nhanh và Bẩn .
Bản đồ biểu tượng
/symbols/us Bất kỳ tập tin trong thư mục này theo cùng một cấu trúc.
partial alphanumeric_keys
xkb_symbols "basic" {
name[Group1]= "US/ASCII";
key <TLDE> { [ quoteleft, asciitilde ] };
key <AE01> { [ 1, exclam ] };
modifier_map Shift { Shift_L, Shift_R };
};
partial - Không phải là một bản đồ bàn phím hoàn chỉnh
alphanumeric_keysPhần của bàn phím được ánh xạ. Có thể sử dụng nhiều
Lưu ý: Nếu không *_keys
được chỉ định, một bàn phím hoàn chỉnh được giả sử.
"basic" - Tên của bản đồ biểu tượng
name[Group1]= "US/ASCII";Cung cấp một tên duy nhất cho nhóm bàn phím này.
modifier_mapĐể chỉnh sửa các phím bổ trợ . (ctrl, thay đổi, alt ~)
Shift { Shift_L, Shift_R };Không thông thường cần thiết. Nó ánh xạ cả hai ca sang bộ điều chỉnh ca, hay còn gọi là cấp 2.
key <TLDE> Khóa Tilde - Thường là phím trên cùng bên trái phía trên Tab phía trên
key <AE01> Minh họa - Bao gồm ba phần,AE01
A= khối khóa chữ và số.
KP= Bàn phím
FK= Phím chức năng
E= Hàng trên Bàn phím.
Space Key= Ahàng
Shift Key= Bhàng
Caps Lock= Chàng
Tab Key= Dhàng
01= Vị trí của phím trên hàng.
AE01= 1
AB02= X
AC05= =G
[+ ]- Trong ngôn ngữ C; Dấu ngoặc vuông biểu thị một danh sách, theo đó các mục được phân chia theo ,. Độ dài của danh sách xác định số lượng cấp độ. Ví dụ:
key<AE01> { [ Level 1 , Level 2 , Level 3 , Level 4 , Level 5 ] }
Thông thường, các cấp biểu thị phím nhấn sau với:
- Không có phím điều chỉnh
- Shift
- Alt Gr
- Shift + Alt Gr
- Custom - Không có khả năng nhìn thấy bất cứ điều gì ngoài cấp 4.
Nói tóm lại, nếu bạn muốn ánh xạ một phím để thay đổi + altgr, danh sách của bạn sẽ phải dài ít nhất bốn mục.
CẢNH BÁO - Lỗi thường gặp
Một trong những dòng này sẽ gây ra lỗi nghiêm trọng và sẽ khiến bạn không có bàn phím có thể sử dụng được:
key<AE01> { [ Backspace ] }
key<AE02> { [ a, b, , C ] }
Backspace
nên BackSpace
: Chú ý thêm về chính tả.
- Một mục trống nên được
VoidSymbol
.
Biện pháp an toàn tốt nhất!
Sao lưu tệp của bạn mà bạn đang chỉnh sửa:
sudo /bin/cp /usr/share/X11/xkb/symbols/us /usr/share/X11/xkb/symbols/usBACKUP
Tạo một tập lệnh mà bạn có thể chạy mà không cần mật khẩu root
Cái gì đó như:
#!/bin/bash
sudo /bin/cp -rf /usr/share/X11/xkb/symbols/usBACKUP /usr/share/X11/xkb/symbols/us
Nếu có bất cứ điều gì sai, hãy sử dụng chuột để chạy dòng mã đó (có trong tập lệnh bash mà bạn đã cho phép sudoers. Hãy nhớ chmod +x
cho phép chạy dưới dạng thực thi.)
Chiến lược sao lưu để phục hồi hệ thống bị hỏng
- CẢNH BÁO: Bàn phím & Bàn phím trên màn hình sẽ ngừng hoạt động với một lỗi nhỏ nhất.
- Chuột sẽ hoạt động . Việc gõ có thể được thực hiện bằng cách tô sáng các ký tự và dán chúng bằng cách sử dụng nhấp chuột giữa. Trong Bash, bạn có thể
return
(Nhấn Enter) bằng cách dán ngắt dòng.
- Bàn phím sẽ hoạt động trong chế độ phục hồi trong shell root. (Truy cập từ bash)
- Bạn luôn có thể sử dụng môi trường trực tiếp để sửa tệp.
Giải pháp nhanh và bẩn
- Đến đây
- Tập tin> Tạo một bản sao
- Mapper Trang tính là nơi bạn xác định bố cục của bạn.
- Các mục ký tự đơn được dịch thành mã được hiểu bởi chương trình.
( !
trở thành U0021
). Hỗ trợ Unicode!
- Chuỗi không được dịch và được coi là như vậy. ĐẢM BẢO KHÔNG CÓ lỗi SPELLING hoặc CASE!.
- Hình vuông trống được tự động điền vào
VoidSymbol
.
- XKB-Sort Trang tính chứa các nhóm chính, ví dụ:
key <AE01> { [U0021, U0021, U0021, U0021, U0021, U0021, U0021, U0021] };
key <AE02> { [U005B, U005B, U005B, U005B, U005B, U005B, U005B, U005B] };
key <AE03> { [U005D, U005D, U005D, U005D, U005D, U005D, U005D, U005D] };
key <AE04> { [U0022, U0022, U0022, U0022, U0022, U0022, U0022, U0022] };
key <AE05> { [U002A, U002A, U002A, U002A, U002A, U002A, U002A, U002A] };
key <AE06> { [U007B, U007B, U007B, U007B, U007B, U007B, U007B, U007B] };
key <AE07> { [U007D, U007D, U007D, U007D, U007D, U007D, U007D, U007D] };
key <AE08> { [U002F, U002F, U002F, U002F, U002F, U002F, U002F, U002F] };
key <AE09> { [U0027, U0027, U0037, U0027, U0027, U0027, U0027, U0027] };
key <AE10> { [U0029, U0029, U0038, U0029, U0029, U0029, U0029, U0029] };
key <AE11> { [U0028, U0028, U0039, U0028, U0028, U0028, U0028, U0028] };
key <AE12> { [U005C, U005C, U005C, U005C, U005C, U005C, U005C, U005C] };
Thay đổi điều này trên tất cả 8 cấp độ:
1234567890-= // Physical Keys
![]"*{}/')(\ // Changed to these characters
- XKBTab cũng có dòng. Mọi tab khác có thể được bỏ qua (mã của nó).
sudo vim /usr/share/X11/xkb/symbols/us
- Thay thế một nội dung bố trí. Chọn một cái bạn sẽ không sử dụng. Ví dụ: Tôi đã thay đổi mục nhập colemak giữ nguyên cấu trúc và thay thế các phím.
Dòng quan tâm:
key.type[group1]="EIGHT_LEVEL"; // Enables 8 levels
modifier_map Control { <LFSH>, <RTSH> }; // Maps ctrl`s to shift keys.
key { [Control_R, Control_R, Control_R, Control_R, Control_R, Control_R, Control_R, Control_R] };
key { [Control_L, Control_L, Control_L, Control_L, Control_L, Control_L, Control_L, Control_L] };
include "level3(lalt_switch)" // Hold Left Alt for Level 3
include "level5(ralt_switch)" // Hold Right Alt for Level 5