Có thể ánh xạ lại hệ thống phím CapsLock rộng sao cho khi nhấn nút CapsLock, nó đóng vai trò là phím thoát và khi nhấn bằng một phím khác, nó có tác dụng như phím điều khiển không?
Có thể ánh xạ lại hệ thống phím CapsLock rộng sao cho khi nhấn nút CapsLock, nó đóng vai trò là phím thoát và khi nhấn bằng một phím khác, nó có tác dụng như phím điều khiển không?
Câu trả lời:
Tôi đã tìm thấy một giải pháp rất tốt gọi là xcape . Từ README:
xcape chạy như một daemon và chặn phím Control. Nếu phím Control được nhấn và tự phát hành, nó sẽ tạo ra một sự kiện phím Escape.
Điều này có ý nghĩa hơn nếu bạn đã ánh xạ lại phím Caps Lock để Điều khiển. Các phiên bản tương lai của chương trình này có thể thực hiện việc lập bản đồ đó cho bạn, nhưng bây giờ đây là điều mà bạn phải tự làm.
Tôi đã ánh xạ Caps thành Escape để tôi có thể thoải mái hơn khi gõ Vim. Tôi đã sử dụng xmodmap
, và đặt nó vào ~/.Xmodmap
.
clear Lock
keycode 0x42 = Escape
Để áp dụng : xmodmap ~/.Xmodmap
. Bạn có thể đặt tệp này vào một tệp như ~ / .bash_profile (Tôi đã nhập ~ / .xinitrc, vì tôi không sử dụng trình quản lý đăng nhập.
Để ánh xạ CapsLock + [Khóa khác], hãy xem xét sử dụng xbindkeys
.
Một giải pháp chỉ dành cho Linux để ánh xạ lại các khóa trên toàn hệ thống là viết quy tắc udev đơn giản. Nó sẽ không phụ thuộc vào X, sẽ hoạt động trên mọi thiết bị đầu cuối hoặc ứng dụng và có thể di chuyển giữa mọi cài đặt Linux gần đây bằng cách sao chép hai tệp.
Bạn cần phải viết 2 tệp: một tệp chứa quy tắc udev cho hạt nhân sắp xếp lại các khóa và một tệp chứa ánh xạ thực tế bạn cần.
Sử dụng phương pháp này Tôi đã ánh xạ lại toàn bộ bàn phím của mình, có thể mã này hữu ích như nguồn cảm hứng http://git.adirat.com/carpalx-keyboard
Tôi đã xây dựng một công cụ trong C đặc biệt cho mục đích này để khắc phục nhiều vấn đề với giải pháp xcape / xmodmap :
Tôi đã chạy qua một câu hỏi khác nhau trên AskUbfox có câu trả lời hay , nhưng tôi phải sửa đổi nó một chút để hoạt động trên hệ thống của mình.
Theo nhận xét của Louis và Sergiy ở đó, tôi đã đưa ra giải pháp này phù hợp với tôi trên Ubuntu 16.04 (Xenial) và tôi sẽ mang nó đến các hệ thống Linux khác mà tôi sử dụng.
Tôi đã cài đặt xcape và đặt các dòng mã sau vào .profile
tệp của mình trong thư mục chính.
Do các trình quản lý hiển thị khác nhau (gdm / kdm / sddm / etc) hoạt động theo những cách lạ và đặt lại setxbmap
sau khi tạm dừng / tiếp tục hoặc khóa / mở khóa, tôi đã phát hiện ra cách đặt các tùy chọn theo cách chúng kế thừa nó và không ' T thiết lập lại tất cả các thời gian. Bởi vì tôi tạm ngưng và tiếp tục rất nhiều, tôi cần đảm bảo rằng tôi đã không nhận được nhiều bản sao xcape
chạy được giải quyết trong tập lệnh mới bên dưới.
Đầu tiên sửa đổi cấu hình bàn phím với sudo gedit /etc/default/keyboard
và đặt XKBOPTIONS="ctrl:nocaps"
và sau đó ~/.xprofile
đặt dòng đơn bên dưới.
ps aux | grep -i '[x]cape' && killall -9 xcape; hash xcape 2>&1 >/dev/null && xcape -e 'Control_L=Escape' -t 100 &
Hy vọng rằng các phần khác nhau của tập lệnh giúp bạn tiết kiệm thời gian / rắc rối và ngăn chặn thông tin đăng nhập bị mắc kẹt. Đầu tiên, nó kiểm tra xem đã có phiên bản nào chạy chưa và giết nó, vì điều duy nhất xcape
là ánh xạ Ctrl sang Esc, điều này an toàn, sau đó hash
phần đảm bảo rằng bạn đã xcape
cài đặt nếu không hệ thống của bạn có thể bị treo khi bạn cố đăng nhập vì tất cả khởi động kịch bản dự kiến sẽ thoát sạch.
setxkbmap -option 'caps:ctrl_modifier'; xcape -e '#66=Escape'
Trung sĩ:
Tôi đã sử dụng công cụ gnome-tinh chỉnh để ánh xạ Caps Lock sang Ctrl vì không có bố cục Bàn phím trong Cài đặt hệ thống trên Ubuntu 14.04. Sau đó xcape -e 'Control_L = Escape' không hoạt động, nhưng sau khi sử dụng xcape -d tôi đã phát hiện ra rằng Caps Lock tạo mã khóa 66 và ánh xạ lại tương ứng: xcape -e '# 66 = Escape'. - Sergiy Byelozyorov ngày 4 tháng 9 năm 14 lúc 10:08
Louis:
Theo bài đăng trên blog này, có thể làm điều này chỉ với xcape: setxkbmap -option 'caps: ctrl_modifier'; xcape -e 'Caps_Lock = Escape' setxkbmap -option 'mũ: ctrl_modifier'; xcape -e 'Caps_Lock = Escape; Control_L = Escape; Control_R = Escape' - Louis Simoneau ngày 4 tháng 8 năm 15 lúc 10:06