cách tốt nhất là không sử dụng tập lệnh mà tải một bàn phím hai lớp (ví dụ setxmodmap "us,se"
:) và xác định lại Ctrl- Escđể gửi ISO_Next_group
Xem câu trả lời này trên xkb để biết cách xác định lại một số khóa mà không cần chỉnh sửa các tệp mặc định chính (do đó, không cần phải root). Trong tệp ký hiệu cục bộ (ví dụ ~/.xkb/symbols/mysymbols
:) đặt một phần nhỏ là:
partial modifier_keys
xkb_symbols "ctrl_esc_toggle" {
key <ESC> {
type[Group1]="PC_CONTROL_LEVEL2",
symbols[Group1]= [ Escape, ISO_Next_Group ]
};
};
PC_CONTROL_LEVEL2 cho biết biểu tượng sencond cho khóa đó được lấy bằng Control (thay vì Shift).
và trong tệp sơ đồ bàn phím cục bộ (ví dụ : ~/.xkb/keymap/mykbd
; bạn có thể tạo nó bằng setxkbmap "us,se" ; setxkbmap -print > ~/.xkb/keymap/mykbd
) thay đổi dòng xkb_symbols để thêm "mysymbols (ctr_esc_toggle)" để bạn sẽ có đôi khi như:
xkb_symbols { include "pc+us+se:2+inet(evdev)+terminate(ctrl_alt_bksp)+compose(rwin)+mysymbols(ctr_esc_toggle)" };
(lưu ý "se: 2", ": 2" cho biết tải các định nghĩa ký hiệu "se" là Nhóm2; bạn có thể xếp các nhóm khác nhau).
bây giờ bạn có thể tải nó bằng: xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
sau đó Ctrl-Esc sẽ chuyển đổi giữa bố cục "chúng tôi" và "se".
LƯU Ý tuy nhiên bạn cần nhấn Ctrl (và giữ) trước Esc; theo cách khác nó không hoạt động (nó sẽ yêu cầu xác định một công cụ sửa đổi ảo cho Escape và tôi không biết làm thế nào để làm điều đó)