Biến khóa capslock của bạn thành phím phát / tạm dừng
Giải pháp này sẽ ánh xạ lại mã scancode của khóa capslock của bạn sang một mã khóa khác trong trình điều khiển đầu vào kernel, trong trường hợp này là phát / tạm dừng.
Ưu điểm
- Không cần sửa đổi các tệp hệ thống hiện có (chỉ cần tạo một tệp mới)
- Các ứng dụng sẽ không biết rằng đó thực sự là một phím capslock nhưng nghĩ rằng một phím phát / tạm dừng thực sự đã được nhấn
- Không cần tắt capslock, không có khả năng làm rối
xkb
cấu hình
Nhược điểm
- Phải được thực hiện cho từng bàn phím riêng lẻ (tùy theo tình huống, cũng có thể là một lợi thế)
Điều kiện tiên quyết
- evtest (có thể được cài đặt qua
sudo apt-get install evtest
)
Thủ tục
Trong một thiết bị đầu cuối, chạy sudo evtest
và chọn bàn phím của bạn. Nếu không có đầu ra khi bạn nhấn phím, bấm Ctrl+ Cvà thử một thiết bị khác. Hãy nhớ số sự kiện thiết bị bạn đã chọn, chúng tôi sẽ cần nó sau đó. Nhấn phím capslock. Một số dòng như sau sẽ xuất hiện:
Event: time 1529406021.187148, -------------- SYN_REPORT ------------
Event: time 1529406021.218427, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70039
Event: time 1529406021.218427, type 1 (EV_KEY), code 58 (KEY_CAPSLOCK), value 0
Chúng ta cần giá trị từ MSC_SCAN
dòng trước KEY_CAPSLOCK
dòng. Trong ví dụ trên, đây sẽ là 70039, nhưng scancode trên bàn phím của bạn có lẽ khác.
Bây giờ hãy chạy lệnh sau, nhưng thay thế X bằng số sự kiện thiết bị bạn đã sử dụng cho evtest
lệnh:
grep "" /sys/class/input/eventX/device/id/*
... điều này sẽ đầu ra bustype
, product
, vendor
và version
của bàn phím.
Tạo một file có tên 65-keyboard-custom.hwdb
trong /etc/udev/hwdb.d/
(quyền root yêu cầu) với nội dung sau:
evdev:input:b[bustype]v[vendor]p[product]e[version]*
KEYBOARD_KEY_[scancode]=playpause
...Ở đâu
- [xe buýt], [nhà cung cấp], [sản phẩm] và [phiên bản] có chính xác 4 ký tự và chữ cái cần viết hoa
- [scancode] phải viết thường
- các
evdev:...
dòng có không gian trước
- các
KEYBOARD_KEY...
dòng có đúng một không gian trước
Ví dụ:
evdev:input:b0003v046DpC228e0110*
KEYBOARD_KEY_70039=playpause
Cuối cùng, biên dịch cấu hình mới vào cơ sở dữ liệu phần cứng:
sudo systemd-hwdb update
Nếu bạn muốn áp dụng các thay đổi ngay lập tức, hãy thông báo cho udev:
sudo udevadm trigger
Nếu bạn muốn hoàn nguyên các thay đổi, chỉ cần xóa tệp bạn đã tạo và khởi động lại.
Bạn có thể tìm thấy thông tin chi tiết hơn trong câu trả lời ban đầu của tôi về chủ đề này.
vlc --key-play-pause <key-string>
, nhưng tôi đã không tìm thấy một chuỗi mà VLC chấp nhận là capslock ...