Làm cách nào để tạo backspace hoạt động như thoát bằng setxkbmap?


8

Dường như có một số tùy chọn setxkbmapnhư -option caps:backspacelàm cho mũ trở thành một khoảng lùi. Tuy nhiên tôi dường như không thể tìm thấy một tùy chọn làm cho backspace trở thành một phím thoát. Làm cách nào để tạo một lệnh setxkbmap duy nhất thay đổi phím xóa lùi thành khóa thoát?

Câu trả lời:


13

Bạn sẽ phải xác định một tùy chọn mới.
Đầu tiên, tạo một tệp ký hiệu mới, ví dụ /usr/share/X11/xkb/symbols/bkspvới nội dung sau:

partial alphanumeric_keys
xkb_symbols "bksp_escape" {
    key <BKSP> { [ Escape ] };
};

Sau đó tạo tùy chọn mới như thế này:

bksp:bksp_escape  =   +bksp(bksp_escape)

(trong đó bksptên của tệp biểu tượng và bksp_escapelà tên nhóm được xác định trong tệp này) và thêm nó vào danh sách tùy chọn trong các quy tắc bạn đang sử dụng - giả sử evdev- vì vậy hãy đặt nó vào /usr/share/X11/xkb/rules/evdevbên dưới ! option = symbols:

! option    =   symbols
  bksp:bksp_escape  =   +bksp(bksp_escape)
  ...........
  grp:shift_toggle  =   +group(shifts_toggle)
  altwin:menu       =   +altwin(menu)

Thêm nó vào /usr/share/X11/xkb/rules/evdev.lst(với một mô tả ngắn) bên dưới ! option(ví dụ ngay trước ctrl):

! option
  ........
  bksp                 Backspace key behavior
  bksp:bksp_escape     Backspace as Escape
  ctrl                 Ctrl key position
  ctrl:nocaps          Caps Lock as Ctrl

Sau đó, bạn có thể chạy, như một người dùng thông thường:

setxkbmap -layout us -option bksp:bksp_escape

để kích hoạt tùy chọn và thực hiện BKSPnhư ESC.
Bạn cũng có thể xác minh nếu:

setxkbmap -query

báo cáo:

rules:      evdev
model:      pc104
layout:     us
options:    bksp:bksp_escape

và nếu

setxkbmap -print

đầu ra:

xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+us+inet(evdev)+bksp(bksp_escape)" };
    xkb_geometry  { include "pc(pc104)" };
};

Trong Gnome 3, bạn có thể đặt tùy chọn vĩnh viễn qua dconf(hoặc gsettingstrong thiết bị đầu cuối), ví dụ: thêm 'bksp:bksp_escape'vào org> gnome> desktop> input-nguồn> xkb-tùy chọn (lưu ý rằng trong dconfcác giá trị được phân tách bằng dấu phẩy + dấu cách).


Cuối cùng, lưu ý rằng cả hai evdevevdev.lstsẽ được ghi đè lên các bản nâng cấp trong tương lai (nhưng không phải bksptệp biểu tượng tùy chỉnh của bạn ) vì vậy bạn sẽ phải chỉnh sửa lại mỗi lần gói sở hữu chúng được nâng cấp (trên archlinux xkeyboard-config). Viết kịch bản thực hiện điều đó dễ dàng hơn, vd

sed '/! option[[:blank:]]*=[[:blank:]]*symbols/a\
  bksp:bksp_escape  =   +bksp(bksp_escape)
' /usr/share/X11/xkb/rules/evdev

sed '/! option/a\
  bksp                 Backspace key behavior\
  bksp:bksp_escape     Backspace as Escape
' /usr/share/X11/xkb/rules/evdev.lst

Nếu bạn hài lòng với kết quả sử dụng sed -i(hoặc -i.baknếu bạn muốn tạo bản sao dự phòng) để thực sự chỉnh sửa các tệp đó tại chỗ .

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.