Các bước cần thiết để tạo bố cục bàn phím mới trên Ubuntu là gì?


43

Bàn phím tôi đang cố gắng tạo ra có rất nhiều Unicode và trông như thế này: Bàn phím tôi đang cố gắng tạo

Không thành công với hướng dẫn sau:

Tôi đã tự hỏi nếu có ai sẽ rất tử tế để cung cấp một hướng dẫn tốt hơn với hướng dẫn từng bước?


2
Mmh, điều này trông giống như một bản sao với tôi . Quá tệ, bạn đã đặt tiền thưởng cho câu hỏi của mình: /.
Glutimate

@Glutanimate Ôi gọn gàng; đã không nhìn thấy điều đó. Tôi vẫn sẽ trả tiền cho một câu trả lời tốt hơn mặc dù.
Akiva

Bạn có thể sử dụng liên kết này. help.ubuntu.com/community/ComposeKey
Anandu M Das

Câu trả lời:


69

Trong Ubuntu 14.04 , bố trí bàn phím được giữ trong

/usr/share/X11/xkb/symbols/


Mỗi tệp trong thư mục này chứa một loạt các mục nhập sau:

    khóa <AC01> {[a, A, aacute, Aacute]};

Mục này ánh xạ một phím trên bàn phím tới một số ký tự cụ thể bằng các quy ước sau:

  1. < Một C01> Chữ cái đầu tiên Achỉ ra chúng tôi đang tìm trong khối chính tự chữ và số (tùy chọn khác bao gồm KP [for keypad]FK [for Function Key]);

  2. <A C 01> Chữ cái thứ hai Ccho biết hàng, tính từ dưới cùng trong đó tìm thấy khóa. (Trong bàn phím tiêu chuẩn của Hoa Kỳ, thanh không gian nằm trong hàng AAvà các phím số nằm trong hàng AE).

  3. <AC 01 > Các số 01cho biết vị trí của khóa, đếm từ bên trái và bỏ qua bất kỳ khóa có tên đặc biệt nào như TABhoặc ~(dấu ngã): AC01nằm ở hàng thứ ba trở lên, phím đầu tiên ở bên trái (bỏ qua Caps Lock, nếu có); trên một bàn phím tiêu chuẩn của Hoa Kỳ, đây là phím được đánh dấu là một tên lửa.

  4. Dấu ngoặc bao gồm danh sách các ký tự được gán cho mỗi khóa. Điều này chứa tối đa bốn mục, được phân tách bằng dấu phẩy:

    1. a - Khóa không sửa đổi.
    2. A - Nhân Shiftvật.
    3. á - Nhân Alt Grvật. ( aacute )
    4. Á - Nhân vật Shift+ Alt Gr. ( Aacute )

Tạo bản đồ bàn phím tùy chỉnh dễ dàng như thay thế các ký tự bạn không muốn trong một dòng nhất định bằng các ký tự bạn làm!

Ví dụ:

Là một người Anglo-Saxonist, tôi gõ áÁít thường xuyên hơn tôi gõ æÆ.

Để thêm các ký tự Anglo-Saxon vào danh sách của tôi, tôi chỉ cần thay thế aacuteAacutevới những cái tên thực thể hoặc các điểm mã Unicode cho æÆ( “aelig” hoặc U00E6 và “AElig” hoặc U00C6 , tương ứng):

    khóa {[a, A, aelig, AElig]};

hoặc là

    khóa {[a, A, U00E6, U00C6]};

Khi tôi hoàn tất sửa đổi bố cục bàn phím của mình, tôi lưu tệp với tên mới, "oe" trong cùng thư mục.

Thêm một bố trí bàn phím mới vào evdev.xmltập tin.

Để sử dụng bố cục bàn phím mới, chúng tôi cần nói X11rằng nó tồn tại. Trong Ubuntu 14.04 X11theo dõi các bàn phím được cài đặt trong /usr/share/X11/xkb/rules/evdev.xmltệp. Sau đó cho phép thêm bố cục mới trong đó.

  1. Mở X11/xkb/rules/evdev.xmltrong một trình soạn thảo
  2. Đi đến cuối <layoutList>phần (tìm kiếm </layoutList>). Thêm phần sau vào </layout>thẻ cuối cùng , Xtên tệp bố trí bàn phím của bạn ở đâu /usr/share/X11/xkb/symbols(trong trường hợp của tôi oe); Ymột tên ngắn phù hợp; và Zmột cái tên dài thích hợp trong một hoặc nhiều ngôn ngữ và aaamột ba bức thư pháp (ISO 639-2) mã ngôn ngữ (ví dụ eng cho tiếng Anh):

    <layout>
     <configItem>
       <name> X </name>
       <shortDescription> Y </shortDescription>
       <description> Z </description>
       <languageList>
          <iso639Id> aaa </iso639Id>
       </languageList>
     </configItem>
     <variantList/>
    </layout>
    

Đây là, làm theo giới thiệu đầy đủ

Các liên kết khác có liên quan:
http://ubuntuforums.org/showthread.php?t=188761&p=1092145#post1092145 http://www.charvolant.org/~doug/xkb/html/index.html


Tôi đã làm việc trên bài đăng này một chút; nội dung bạn cung cấp có chất lượng rất cao, nhưng theo tôi thì nó vẫn cần công việc. Các hướng dẫn bạn liên kết đến rất cũ và lỗi thời, và đầy đủ "Nếu bạn đang sử dụng 8.04, hãy làm xy và z". Tôi muốn xem một câu trả lời hướng dẫn đầy đủ (tôi chỉ ước mình có thể tăng tiền thưởng)
Akiva

@Akiva Không giúp câu trả lời này cho bạn? Bạn có vấn đề ở đâu?
αғsнιη

3
Câu trả lời đã giúp; Giải thích về AC01 thực sự được viết tốt, nhưng tôi muốn có một câu trả lời đầy đủ với tất cả các bước. Khi bạn liên kết với các hướng dẫn khác; họ đã già, và có ba người trong số họ. Vì lợi ích của những người dùng khác, tôi muốn có một câu trả lời đầy đủ được cung cấp ở đây. Ví dụ; có nhiều phần tử được tìm thấy trong tệp văn bản ngoài Khóa <ac01> {[a, b, c, d]}, và cũng có một tệp XML cần được chỉnh sửa. Ngoài ra còn có câu hỏi làm thế nào để kiểm tra điều này. Như đã nói; Tôi nên đặt một khoản tiền thưởng 500 rep cho việc này, bởi vì đây là một nhiệm vụ khá lớn để tạo ra một hướng dẫn tốt.
Akiva

2
Tôi sẽ đi xung quanh để trả lời đầy đủ điều này bởi vì tôi phải xác định cách bố trí bàn phím của mình. Khi tôi nhận được nó, tôi sẽ trả lời đúng.
Akiva

Nó chỉ hoạt động cho Xorg, hoặc cũng cho ttys?
Narcolessico

18

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
  1. 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ợ.
  2. 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.
  3. 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
  4. 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>
  5. 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.
  6. 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

  1. A= khối khóa chữ và số.
    KP= Bàn phím
    FK= Phím chức năng

  2. 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

  3. 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:

  1. Không có phím điều chỉnh
  2. Shift
  3. Alt Gr
  4. Shift + Alt Gr
  5. 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 ] }
  • Backspacenê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!

  1. 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

  2. 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 +xcho 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

  1. Đến đây
  2. Tập tin> Tạo một bản sao
  3. 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.
  4. 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
  5. XKBTab cũng có dòng. Mọi tab khác có thể được bỏ qua (mã của nó).
  6. sudo vim /usr/share/X11/xkb/symbols/us
  7. 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


Dòng trên cùng của câu trả lời của bạn nói: "(WIP - Không bỏ phiếu.)". Câu trả lời có vẻ như tương đối đầy đủ với tôi - có lẽ nên xóa ghi chú này?
MattKelly

1
@MattKelly Ahh Tôi chỉ loay hoay cập nhật nó thôi. Tôi thực sự đã tạo một bảng tính tự động tạo mã dựa trên những ký tự bạn đặt vào bố cục bàn phím giả.
Akiva

Nghe có vẻ như một bảng tính hữu ích - nó có công khai không?
MattKelly

@MattKelly Đây là một bản sao. Nó cần rất nhiều hành trình được đưa ra ngoài, và có thể một số tay lái được thêm vào, nhưng như bạn có thể thấy nó tạo ra mã: docs.google.com.vn/s dàn tính / d / Lỗi
Akiva

Cách tiếp cận này không cho phép thiết lập RALT hoạt động như một khoảng lùi khác hoặc đặt phím chèn để hoạt động như backquote / dấu ngã.
Craig Hicks
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.