Sau khi đọc tất cả các câu trả lời ở đây, tôi khá ngạc nhiên khi thấy rằng bạn có thể làm như sau.
<keybind key="Num_Lock">
<action name="Execute">
<command>numlockx on</command>
</action>
</keybind>
Vì vậy, mỗi khi bạn nhấn Num, sẽ tắt numlock. Nó sẽ thực thi numlockx on
, kích hoạt lại numlock.
Tên đến từ đầu ra của xev
tôi đã cho tôi mã khóa 77 và tênNum_Lock
Trong trường hợp @MartinVegters, anh ta cần đợi vài giây để numlockx on
chắc chắn được thực thi sau khi sự kiện Numđược xử lý. Vì có một điều kiện chạy đua giữa việc xử lý numlock trong kernel và thực thi numlockx
.
Trong trường hợp này, bạn có thể viết một tập lệnh nhỏ denumlock.sh
như
#!/bin/sh
sleep "$1"
numlockx on
và sử dụng nó trong liên kết khóa
<command>/bin/sh denumlock.sh 1</command>
Điều này là bẩn nhưng nó hoạt động.
Những gì tôi khuyên là sau đây tôi không thể tự kiểm tra. Bạn tốt hơn nên làm theo các câu trả lời đầu tiên mà đề nghị sử dụng
xmodmap -e 'keycode 77 = Escape'
Nhưng đối với LXDE, bạn cần sử dụng cơ chế tự khởi động LXDE khác với cách chỉnh sửa Openbox ~/.config/openbox/autostart
.
Trong LXDE, rõ ràng bạn cần chỉnh sửa ~/.config/lxsession/LXDE/autostart
hoặc với Lubfox ~/.config/lxsession/Lubuntu/autostart
, nơi chứa các lệnh để khởi động. (Xem tài liệu Arch và tài liệu LXDE ) Bạn có thể cần tạo tệp đó và thêm dòng này.
@xmodmap -e 'keycode 77 = Escape'
Đáng buồn thay, như tôi đã nói tôi không thể kiểm tra nếu điều này hoạt động, vì tôi chỉ có một VM chạy với LXDE.