Bạn không thể làm điều đó chỉ với tùy chọn setkxbmap, vì không có tùy chọn mặc định nào làm những gì bạn muốn.
Nhưng bạn có thể làm điều đó bằng cách xác định hành vi chính ở cấp độ thấp hơn.
Trang http://madduck.net/docs/extending-xkb/ đã giúp tôi hiểu và tìm ra cách để làm điều đó.
Tạo một tệp ~ / .xkb / keymap / mykbd nơi bạn đặt đầu ra của setxkbmap, nó sẽ là định nghĩa bàn phím cơ sở của bạn; ví dụ:
setxkbmap -print > ~/.xkb/keymap/mykbd
sau đó chúng tôi sẽ tạo một ~/.xkb/types/mytypes
tập tin và đặt như sau:
partial
xkb_types "super_level2" {
Virtual_modifiers Super;
type "SUPER_LEVEL2" {
modifiers= Super;
map[Super]= Level2;
level_name[Level1]= "Base";
level_name[Level2]= "Super";
};
};
nó xác định loại SUPER_LEVEL2 sẽ cho phép dễ dàng xác định các ký hiệu được gửi khi nhấn phím Super.
sau đó, ~/.xkb/symbols/mysymbols
đặt các dòng sau:
partial modifier_keys
xkb_symbols "super_arrows_home_end" {
key <LEFT> {
type[Group1] = "SUPER_LEVEL2",
symbols[Group1] = [ Left, Home ]
};
key <RGHT> {
type[Group1] = "SUPER_LEVEL2",
symbols[Group1] = [ Right, End ]
};
};
(lưu ý việc sử dụng loại "SUPER_LEVEL2 mà chúng tôi đã xác định, điều đó có nghĩa là biểu tượng thứ hai (cấp 2) trên dòng ký hiệu được kích hoạt khi nhấn phím Super (thay vì phím Shift).
Cuối cùng, chỉnh sửa ~/.xkb/keymap/mykbd
tệp để tải đoạn mã chúng tôi đã viết:
- trong
xkb_types
dòng thêm +mytypes(super_level2)
vào bên trong dấu ngoặc kép
- trong
xkb_symbols
dòng thêm +mysymbols(super_arrows_home_end)
vào dấu ngoặc kép.
Bây giờ bạn có thể tải nó với
xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
Kiểm tra các phím trái / phải của bạn, chúng sẽ hoạt động như bạn muốn.
gtktextview
phím tắt: Ctrl + Shift + PageUp và Ctrl + Shift + PageDown để chọn (hoặc tiếp tục chọn) cho đến đầu và tương ứng ở cuối dòng. Tôi không nghĩ đó là những gì bạn đang theo đuổi, mặc dù ... :)