Tôi muốn ánh xạ lại khóa mũ để thoát trong X11 (tức là nhấn nút khóa mũ vật lý sẽ được hiểu là esc bởi các ứng dụng và hành vi của esc sẽ không thay đổi). Các giải pháp phải tồn tại một khởi động lại X . xmodmap và setxkbmap là các giải pháp chấp nhận được (như các chương trình tương tự). Tôi không muốn đối phó với GUI, vì tôi muốn giải pháp có thể mang theo được và là một phần của dotfiles của tôi. Nếu tôi đang thiếu một giải pháp tốt hơn / dễ dàng hơn / rõ ràng hơn, xin vui lòng cho tôi biết, mặc dù lưu ý rằng tôi không sử dụng DE (dùng thử i3wm).
Cho đến nay tôi đã thử sử dụng xmodmap và setxkbmap với rất ít thành công.
Đây là nỗ lực của tôi trong việc sử dụng xmodmap:
# ~/.xinitrc
xmodmap ~/.xmodmap
và
# ~/.xmodmap
remove Lock = Caps_Lock
keysym Caps_Lock = Escape
Chạy $ xmodmap ~/.xmodmap
từ dòng lệnh hoạt động và làm những gì tôi muốn. Vấn đề là điều này được thiết lập lại mỗi lần x khởi động lại. Đó là nơi tôi mong đợi xinitrc xuất hiện - không nên tải mỗi lần x bắt đầu và chạy lệnh xmodmap? Nếu lệnh hoạt động, tại sao nó không làm gì khi đọc từ tệp?
Tôi đã thử một vài thứ với setxkbmap, cả hai đều không hoạt động. Hai lần thử bên dưới là trong tập tin vào những thời điểm riêng biệt.
# ~/.xinitrc
setxkbmap -option caps:esc # attempt 1
setxkbmap -option esc:nocaps # attempt 2
Cả hai lệnh đều không làm bất cứ điều gì có thể cảm nhận được từ dòng lệnh, vì vậy tôi cho rằng tôi đã nhận lệnh sai. Tôi thích ý tưởng của giải pháp này vì nó là một lớp lót và không yêu cầu bất cứ điều gì trong một số tệp khác. Nếu chỉ có nó làm việc.
Là .xinitrc tệp sai đang sử dụng? Tôi biết startx đang tải từ ~ / .xinitrc.
Tôi yêu cầu các giải pháp có thể chứa toàn bộ (các) tệp, không chỉ một dòng (nếu có nhiều hơn một yêu cầu trong tệp) vì vậy tôi không làm rối một số bước trung gian. Ví dụ: nếu tôi cần một cái gì đó trong .xinitrc và một cái gì đó trong .xcapsrebind, vui lòng hiển thị cả hai tệp và tất cả các nội dung được yêu cầu (tôi cũng có thể xử lý được yêu cầu nối thêm thứ gì đó vào cuối, nhưng nếu có thể yêu cầu & hoặc tương tự, xin vui lòng cho tôi biết).
xmodmap
vào .xinitrc
nên làm việc. Đó là những gì tôi làm. Có thể ánh xạ một cái gì đó bất thường, để đảm bảo rằng nó thực sự chạy khi bạn bắt đầu x? Ngoài ra, bạn sử dụng trình quản lý cửa sổ / môi trường máy tính để bàn nào? KDE định kỳ, chỉnh sửa bản đồ bàn phím của tôi mà không cần tôi nói với nó. Có thể kiểm tra cài đặt máy tính để bàn của bạn để đảm bảo rằng không có gì đang chạy xmodmap
phía sau lưng bạn.
~/.xinitrc
không được chạy. Tôi đang sử dụng i3wm và không có DE ngay bây giờ, mặc dù điều tương tự đã xảy ra ở Pantheon khi tôi thử. Theo như tôi có thể nói, i3 không gây rối với xinitrc hoặc tự tải (nhưng tôi là một người mới, vậy tôi biết gì?).
Option "XkbOptions" "caps:escape"
trong một X
tập tin cấu hình bàn phím, ví dụ/etc/X11/xorg.conf.d/10-keyboard.conf
.xinitrc
:setxkbmap -option caps:escape