Định cấu hình các nút chuột phụ trong Wayland


10

Tôi sử dụng chuột 10 nút (Logitech M705). Trong X11, tôi có thể định cấu hình một trong các nút phụ để hoạt động như một lần nhấp giữa thứ hai bằng cách sửa đổi các tệp trong etc/X11/xorg.conf.d.

Theo Wayland, điều này không còn hoạt động. Nghiên cứu của tôi cho thấy rằng tôi cần phải làm một cái gì đó với libinput. Tôi nghĩ rằng đây sẽ là một vấn đề phổ biến nhưng không thể tìm thấy câu trả lời ở bất cứ đâu.

Ai đó có thể giải thích làm thế nào để ánh xạ lại các nút chuột hoặc giải thích tại sao nó không thể được thực hiện?


Tôi đang sử dụng Wayland được một thời gian và tôi không thể tìm thấy cách sắp xếp lại các nút cho đến nay.
paulodaguani

Câu trả lời:


6

Các nút ánh xạ lại nếu bạn đang chạy Wayland có thể được thực hiện như thế này:

  1. Chạy xev | grep buttonđể đăng nhập các sự kiện nhấp chuột và nhận số lượng sự kiện bằng cách nhấp vào trong cửa sổ. Trong trường hợp của tôi, nút giữa là:

    state 0x10, button 2, same_screen YES
    

    và tôi muốn ánh xạ nó lên:

    state 0x10, button 13, same_screen YES
    
  2. Sau đó chạy xinput --listvà tìm thiết bị con trỏ của bạn, của tôi là:

    Logitech Performance MX  id=9  [slave pointer  (2)]
    
  3. xinput get-button-map 9 trả về:

    1 2 3 4 ... 20
    
  4. xinput set-button-map:

    $ xinput set-button-map 9  1 13 3 4 .. 12 2 14 .. 20
    

LƯU Ý: thay thế số 9cho số được trả về bởiid=

Và nếu hành vi của khóa đó được xác định, sự kiện của bạn được ánh xạ. Nếu không, đó là một vấn đề hơi khác một chút. Theo Wayland TBH, tôi chưa tìm được cách thực hiện lệnh cho một sự kiện (khá dễ dàng với Xorg xbindkeys) và do đó hoàn toàn tùy chỉnh hành vi của sự kiện phím và chuột .. Tôi tin rằng Wayland đang cố gắng bảo mật hơn và vô hiệu hóa hành vi này .

Trong mọi trường hợp, bạn vẫn có cơ hội chuyển sang Xorg khá dễ dàng và tận hưởng chức năng.


Làm việc cho tôi, nhưng làm thế nào để bạn thay đổi vĩnh viễn? Có vẻ như tôi phải chạy xinput set-button-mapcho mỗi phiên Wayland mới ...
mgasms

1
Có, bạn cần phải chạy nó mọi lúc. Để tự động hóa việc này, bạn có thể đặt tập lệnh này vào tập lệnh và tạo tệp dịch vụ hoặc đặt tập tin này vào thư mục init chạy khi khởi động tương ứng với bản phân phối của bạn (trên HĐH dựa trên systemd sẽ là /etc/rc.d/init .d /)
CermakM

Bạn có thể đặt một tùy chọn trong các tệp xconf: Option "ButtonMapping" "1 2 3 ..."
le hollandais volant

Điều này chỉ thay đổi trình điều khiển đầu vào xorg, không phải bất kỳ ứng dụng nào thường sử dụng thành phần wayland, như Gnome Shell hoặc Nautilus
Ray Foss

3

Tôi đã tạo một tập lệnh shell nhỏ + tập tin đơn vị systemd mà tôi gọi là wayland-mouse-mapper .

trích đoạn mathportillo / wayland-mouse-mapper

Một tập lệnh nhỏ để ánh xạ các nút chuột vào tổ hợp phím trên Wayland.

Tôi tự làm để sử dụng các nút phụ chuột của tôi cho các công cụ hữu ích. Nó đã được thử nghiệm và hoạt động với Logitech MX Master 2S trên Fedora 27 bằng Gnome và cũng hoạt động trên Logitech Performance MX cũ của tôi. Nó có thể hoạt động trên mọi chuột Wayland và Any Logitech (hoặc bất kỳ chuột nào nếu bạn chỉnh sửa ánh xạ) vì không có phương pháp nào khác (xdotools, xbindkeys, v.v.) dường như hoạt động.

Nó hoạt động bằng cách đọc từ các sự kiện gỡ lỗi libinput và kích hoạt các sự kiện chính bằng cách sử dụng evemu tùy thuộc vào nút được nhận dạng từ thiết bị được nhận dạng.

nút

Đây chỉ là các cài đặt mặc định, bạn có thể tùy chỉnh chúng khi bắt đầu tập lệnh mousemapper.sh.

  • Chuyển tiếp: Di chuyển đến không gian làm việc ở trên ( Super+ Page up)
  • Quay lại: Di ​​chuyển đến không gian làm việc bên dưới ( Super+ Page down)

0

Hãy thử sửa đổi các quy tắc udev hwdb. Thao tác này đăng ký các nút chuột dưới dạng phím bàn phím như Launch8 / F16 và vô hiệu hóa chức năng của chúng trong tất cả các chương trình, đường đi hoặc cách khác.

# /usr/lib/udev/hwdb.d/71-mouse-local.hwdb

evdev:input:*
 KEYBOARD_KEY_90004=key_f16
 KEYBOARD_KEY_90005=key_f17

sau đó là root systemd-hwdb update; udevadm triggervà rút chuột sau đó cắm lại.

Kiểm tra độ tỉnh táo bổ sung : sudo udevadm info /dev/input/by-path/*-usb-*-mouse | grep -A3 -P3 KEYBOARD_KEY, hoặc truy vấn nó như vậy, systemd-hwdb query "evdev:input:v046dp406a*xem nguồn để biết chi tiết về cách kéo id.

Nguồn: https://yulistic.gitlab.io/2017/12/linux-keymicking-with-udev-hwdb/

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.