Phím Key nào để chọn Cấp độ 5 trong các thuộc tính bàn phím gnome làm gì?


17

Có một tùy chọn để chỉ định một phím được sử dụng để truy cập cấp 5 trên bàn phím trong gnome-keyboard-properties("Bàn phím" trong Phần cứng trong cài đặt Hệ thống):

Ảnh chụp màn hình của hộp thoại cho biết

Nhưng nếu tôi đặt cấp 5 thành AltGrvà cấp thứ ba thành Right Ctrlvà nếu tôi đặt khóa 54 như sau:

xmodmap -e "keycode 54 = 1 2 3 4 5 6 7 8"

Tôi nhận được kết quả sau khi nhấn các biến thể khác nhau:

keycode 54 = 1
keycode 54 + right ctrl = 5
keycode 54 + right ctrl + shift = 6
keycode 54 + shift = 2
keycode 54 + AltGr = 1
keycode 54 + AltGr + shift = 2
  1. Vậy công cụ sửa đổi cấp 5 làm gì?

  2. Làm thế nào để thiết lập nó để tôi có thể nhận được 5 hoặc sáu nhân vật khác nhau ra khỏi một chìa khóa duy nhất (được sửa đổi bởi Shift, Alt GrRight Ctrlví dụ)?

Câu trả lời:


14

1 Vậy công cụ sửa đổi cấp 5 làm gì?

Nó chọn cấp độ thứ năm. Công cụ sửa đổi cấp độ 2 (chỉ là thay đổi thông thường) chọn cấp độ thứ hai và cấp độ thứ ba chọn cấp độ thứ ba.

Lý do mà công cụ sửa đổi cấp 5 chọn cấp thứ năm thay vì cấp thứ tư (ngay sau công cụ sửa đổi cấp 3) là ba công cụ sửa đổi này có thể được kết hợp theo nhiều cách khác nhau để chọn tám cấp khác nhau (bao gồm không sử dụng bất kỳ công cụ sửa đổi nào, mà chỉ cần nhấn một phím mà không có bất kỳ sửa đổi như vậy). Có tám kết hợp kể từ 2 3 = 8. Đối với hai sửa đổi đầu tiên, có bốn kết hợp:

  • Không có sửa đổi (cấp 1)
  • Công cụ sửa đổi cấp độ 2, còn gọi là dịch chuyển (cấp độ 2)
  • Công cụ sửa đổi cấp 3 (cấp 3)
  • Công cụ sửa đổi thứ 2 + 3 (cấp 4)

Thêm công cụ sửa đổi thứ ba (cấp 5) thêm bốn cấp nữa.

Sầu 2. Làm thế nào để thiết lập nó để tôi có thể nhận được 5 hoặc sáu nhân vật khác nhau ra khỏi một chìa khóa duy nhất (được sửa đổi bởi Shift, Alt GrRight Ctrlví dụ)?”

Trước hết bạn cần một bố cục sử dụng năm ký tự trở lên cho mỗi khóa. Bạn có thể chọn bố cục hiện có, nhưng nếu bạn chỉ muốn thêm nhiều cấp độ hơn vào bố cục bạn đang sử dụng, điều đó có thể không tối ưu. Ví dụ: có bố cục bàn phím Neo († 1), nhưng đó được tối ưu hóa cho ngôn ngữ tiếng Đức nên không phù hợp với hầu hết người nói tiếng Anh.

Tuy nhiên, có thể có hướng dẫn để xem Neo đã chọn khóa nào cho công cụ sửa đổi cấp 5.

Bố cục Neo

Neo rõ ràng gọi công cụ sửa đổi cấp 5 cho phiên bản Mod4. Vì vậy, như bạn có thể thấy nó sử dụng phím ở bên phải của phím shift trái ( LSGT) và phím / phím alt bên phải AltGr. Đây là trên một bàn phím châu Âu (105 phím) so với bàn phím Mỹ (104 phím) có sự dịch chuyển trái hẹp và phím trở lại cao và mỏng. Đối với cách bố trí bàn phím dựa trên bàn phím Hoa Kỳ, người ta có thể phải sử dụng hoặc muốn chọn các phím khác.

Chọn khóa bổ trợ cấp 5

Trong câu trả lời của sup, anh chọn sử dụng Xmodmap. Ngày nay, các công cụ như Setxkbmap được khuyên dùng trên Xmodmap. Xkb đi kèm với nhiều tùy chọn được xác định trước cho những việc như chọn công cụ sửa đổi cấp 5. Nếu bạn tham khảo man xkeyboard-config và tìm kiếm lv5bạn sẽ tìm thấy các tùy chọn sau:

┌──────────────────────┬───────────────────────────────────────────────────┐
│ Option               │ Description                                       │
├──────────────────────┼───────────────────────────────────────────────────┤
│ lv5:lsgt_switch_lock │ <Less/Greater> chooses 5th level; acts as onetime │
│                      │ lock when pressed together with another 5th level │
│                      │ chooser                                           │
├──────────────────────┼───────────────────────────────────────────────────┤
│ lv5:ralt_switch_lock │ Right Alt chooses 5th level; acts as onetime lock │
│                      │ when pressed together with another 5th level      │
│                      │ chooser                                           │
├──────────────────────┼───────────────────────────────────────────────────┤
│ lv5:lwin_switch_lock │ Left Win chooses 5th level; acts as onetime lock  │
│                      │ when pressed together with another 5th level      │
│                      │ chooser                                           │
├──────────────────────┼───────────────────────────────────────────────────┤
│ lv5:rwin_switch_lock │ Right Win chooses 5th level; acts as onetime lock │
│                      │ when pressed together with another 5th level      │
│                      │ chooser                                           │
└──────────────────────┴───────────────────────────────────────────────────┘

Vì vậy, các tùy chọn được ghi lại là LSGTkhóa, phím alt bên phải, phím Windows phải và phím Windows bên trái. Như chúng ta đã thấy, Neo sử dụng hai tùy chọn đầu tiên.

Nói rằng bạn muốn sử dụng lv5:ralt_switch_locktùy chọn với một số bố cục. Lệnh này thiết lập usbố cục với phím bổ trợ cấp 5 này:

setxkbmap -option "lv5:ralt_switch_lock" us

Vì vậy, đối với bất kỳ tùy chọn nào được ghi lại man xkeyboard-config, hãy sử dụng nó làm đối số -optionkhi sử dụng Setxkbmap.

Trong trường hợp các tùy chọn này là không đủ và bạn muốn xác định một khóa khác là công cụ sửa đổi cấp 5, việc xem xét các khai báo cho các tùy chọn này là điều nên làm. Họ dường như được ở trong /usr/share/X11/xkb/symbols/level5. Tuyên bố cho lv5:ralt_switch_lockhình như thế này:

partial modifier_keys
xkb_symbols "ralt_switch_lock" {
  include "level5(lock)"
  key <RALT> {
    type[Group1] = "EIGHT_LEVEL",
    symbols[Group1] = [ ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift, ISO_Level5_Shift,
                        ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock, ISO_Level5_Lock ]
  };
};

Phía bên phải symbols[Group1]khai báo khóa nào hoặc ký tự mỗi cấp của khóa sẽ tạo ra. Điều này sử dụng tất cả tám cấp độ có thể vì nó được cho là khóa công cụ sửa đổi cấp 5 khi được nhấn cùng với một phím shift cấp 5 khác. Vì vậy, các cấp độ 5 phát ra 8 ISO_Level5_Lockvì tất cả các cấp độ này được truy cập bằng cách giữ phím 5 cấp độ và một số tổ hợp các phím dịch chuyển khác (không có cho tất cả các cấp độ này). Nếu bạn chỉ muốn hành vi thay đổi và không phải là hành vi khóa nếu nhấn hai lần, bạn có thể khai báo đơn giản hơn (từ cùng một tệp):

// The right Alt key (while pressed) chooses the fifth shift level.
partial modifier_keys
xkb_symbols "ralt_switch" {
  key <RALT> {
    type[Group1]="ONE_LEVEL",
    symbols[Group1] = [ ISO_Level5_Shift ]
  };
  include "level5(modifier_mapping)"
};

Thêm cấp độ bổ sung cho bố cục

Bố cục Xkb là mô-đun khá. Bạn có thể bao gồm các bố trí hiện có và thay đổi chúng. Vì vậy, chúng ta có thể chọn một bố cục hiện có với ít hơn 5 cấp độ và thêm một số cấp độ cho nó.

Bạn có thể tạo bố cục mới bằng cách sao chép tệp cùng với bố cục của mình /usr/share/X11/xkb/symbols/hoặc bất cứ nơi nào công cụ Xkb của bạn tìm bố cục. Nhưng điều này đòi hỏi đặc quyền sudo vì vậy nó không phải là giải pháp tốt nhất. Ngoài ra, bạn có thể sao chép cấu trúc thư mục của xkb/ và đặt bố cục của bạn vào thư mục thích hợp bên dưới xkb/, cụ thể là symbols/. Vì vậy, nói rằng bạn đã thực hiện một tập tin xkb-tree/symbols/my-layouts. Để sử dụng bố cục được xác định trong tệp này, bạn có thể sử dụng -print tùy chọn setxkbmapvà sau đó chuyển đầu ra sang xkbcomp. Kịch bản trình bao bọc này lấy bố cục làm đầu vào:

#!/bin/sh

# `-option ""` resets all options.
setxkbmap -option "" -layout "$1" \
    -print |
    xkbcomp -I"<path-to-project>/xkb-tree" - "$DISPLAY"

Đối với các tập tin có bố cục có liên quan, giả sử rằng chúng tôi muốn mở rộng bố cục của International US US, sử dụng bốn cấp độ. Trước hết, chúng tôi thiết lập các phím shift cấp 3 và cấp 5 giống như cách Neo thực hiện:

partial alphanumeric_keys
xkb_symbols "mine" {
    // US international
    include "us(intl)"
    // Set up level 3 modifiers.
    include "level3(modifier_mapping)"
    include "level3(bksl_switch)"
    include "level3(caps_switch)"
    // Set up level 5 modifiers.
    include "level5(modifier_mapping)"
    include "level5(lsgt_switch)"
    include "level5(ralt_switch)"
};

Bây giờ chúng tôi muốn thêm một số nhân vật. Chúng ta hãy sử dụng bốn khóa đầu tiên của bố cục Qwerty làm ví dụ. Những phím Qđể R, tương ứng với <AD01>tới <AD04>. Đầu tiên chúng ta cần tạo các khóa có khả năng sử dụng tới tám cấp độ:

key.type[Group1] = "EIGHT_LEVEL";

Đối với bốn cấp độ đầu tiên, để không xác định lại chúng, chúng tôi ánh xạ chúng tới NoSymbol. Sau đó, chúng tôi thêm hai cấp độ. Trên cấp 5, chúng tôi thêm các mũi tên ←↓↑→(2). Trên cấp 6, chúng tôi thêm các phím điều hướng. Bố cục của chúng tôi kết thúc như thế này:

partial alphanumeric_keys
xkb_symbols "mine" {
    // US international
    include "us(intl)"
    // Set up level 3 modifiers.
    include "level3(modifier_mapping)"
    include "level3(bksl_switch)"
    include "level3(caps_switch)"
    // Set up level 5 modifiers.
    include "level5(modifier_mapping)"
    include "level5(lsgt_switch)"
    include "level5(ralt_switch)"

    // Make the following keys capable of using eight levels.
    key.type[Group1] = "EIGHT_LEVEL";

    key <AD01> { [
        NoSymbol, NoSymbol, NoSymbol, NoSymbol,
        leftarrow, Left
    ] };
    key <AD02> { [
        NoSymbol, NoSymbol, NoSymbol, NoSymbol,
        downarrow, Down
    ] };
    key <AD03> { [
        NoSymbol, NoSymbol, NoSymbol, NoSymbol,
        uparrow, Up
    ] };
    key <AD04> { [
        NoSymbol, NoSymbol, NoSymbol, NoSymbol,
        rightarrow, Right
    ] };

};

Để sử dụng nó, chúng ta có thể sử dụng tập lệnh bao bọc mà chúng ta đã tạo:

./setxkbmap-wrapper "my-layouts(mine)"

† 1: Neo nằm de(neo)trong Xkb; setxkbmap "de(neo)".

2: Để tìm tên tượng trưng mà Xkb sử dụng, hãy tìm kiếm một tệp có tên keysymdef.h. Nó nên nằm dưới một thư mục có tên X11/. Bạn cũng có thể sử dụng tên Unicode, ví dụ U2192cho U + 2192.


1
Cảm ơn đã dành thời gian để soạn câu trả lời này. Bây giờ tôi đang tìm cách sử dụng các phím JKLI của mình làm phím mũi tên, vì vậy điều này rất hữu ích. Hãy tận hưởng những điểm thêm 50! (Tôi sẽ có thể chỉ định tiền thưởng vào ngày mai.)
Glutanimate

1
Chà, cảm ơn, đây là một công cụ tuyệt vời ngay cả khi đến hơi muộn nhưng đó chính xác là những gì tôi đang tìm kiếm hơn (nhưng hiện tại Gnome thực sự không hỗ trợ cài đặt công cụ sửa đổi - nhưng miễn là nó hoạt động bằng các tệp cấu hình, tất cả là tốt).
sup

8

Vâng, sau một chút đào:

(1) Chìa khóa để chọn cấp 5 thực hiện một số nội dung kỳ lạ (liên quan đến một số bố cục của Pháp) không liên quan đến những gì tôi muốn làm. Về cơ bản, nó đặt khóa nào sẽ hoạt động như ISO_Level5_Shift. ISO_Level5_Shift được sử dụng trong một số bố cục tối nghĩa. Câu trả lời này dựa trên số lượng kết quả mà google đưa ra khi tìm kiếm "ISO_Level5_Shift" và trên các liên kết này .

(2) Không thể sử dụng để lấy 6 biểu tượng trong một khóa vật lý. Một cách để đạt được điều này là sử dụng tệp .xmodmap được đặt trong thư mục $ HOME.

Đầu tiên, lệnh

xmodmap -pm

đưa ra những gì keyymbols hoạt động như các sửa đổi khác nhau. Trên hệ thống của tôi, nó như sau:

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x9)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3        
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c)

mod3 cần thiết lập để sử dụng 6 ký hiệu với một phím. Điều này cần phải được đặt vào tệp .xmodmap:

clear mod3
clear mod5
keycode 94 = Mode_switch
add mod3 = Mode_switch
add mod5 = ISO_Level3_Shift

Sau đó xmodmap -pm đưa cho tôi:

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x9)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3        Mode_switch (0x5e),  Mode_switch (0xcb)
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  ISO_Level3_Shift (0x6c)

Trong đó keycode 94 là khóa tôi chọn để hoạt động như mod3. Mã khóa của các khóa vật lý khác nhau có thể được tìm thấy bằng công cụ dòng lệnh xev (chỉ cần chạy nó và nhấn các phím khác nhau, mã khóa sẽ hiển thị).

Sau đó, nếu tôi đặt vào tệp .xmodmap

keycode 54 = 1 2 3 4 5 6

hoặc chạy

xmodmap -e "keycode 54 = 1 2 3 4 5 6"

Tôi nhận được sáu biểu tượng khác nhau trong một khóa bằng cách sử dụng altgr, shift và mã khóa 94 (đó là một phím vô dụng bên cạnh dịch chuyển trái trên bố cục vật lý của tôi).

CẬP NHẬT: nếu bạn chỉ cần năm biểu tượng, sẽ rất tiện để thiết lập nó như thế này:

keycode 54 = 1 2 3 3 5 6

Nó xảy ra với tôi rằng tôi nhận được 4 thay vì 3 nếu không.

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.