Làm thế nào để liên kết các nút chuột với các phím?


19

Tôi có Chuột Laser Logitech MX400 có 5 nút + 4 để cuộn dọc / ngang. Tôi muốn nó được thiết lập để thay vì cuộn ngang, nhấn phải vào con lăn sẽ gửi Ctrl+ Tabvà bên trái sẽ gửi Ctrl+ Shift+ Tab, điều này sẽ cho phép tôi chuyển qua các tab trong trình duyệt.

Ngoài ra, thật tuyệt nếu tôi có thể ánh xạ lại nút giữa cho một trong những nút ở bên cạnh vì nó rất khó để nhấn xuống.

Một phần thưởng khác là nếu tôi có thể viết một tập lệnh cho phép tôi xác định các nút nào làm gì phụ thuộc vào cửa sổ nào hiện đang hoạt động.

Tôi đã thử sử dụng xmodmapnhưng tôi chỉ có thể thấy cách sắp xếp lại các nút, không để chúng gửi tín hiệu chính.

Cảm ơn trước.


Bản đồ nút (sử dụng xev):

Left        1
Middle      2
Right       3
ScrollUp    4
ScrollDown  5
ScrollLeft  6
ScrollRight 7
Backward    8
Forward     9

Câu trả lời:


18

Các xbindkeysXTE có thể giúp bạn.

Ví dụ: tệp .xbindkeysrc của tôi trông như thế này:

# close the window under the mouse cursor
"xte 'mouseclick 1' && xte 'keydown Alt_L' 'key F4' 'keyup Alt_L'"
  b:8+Release

# double click
"xte 'mouseclick 1' 'mouseclick 1'"
  b:9

Điều này thật tuyệt vời và có thể mở rộng, cảm ơn rất nhiều
Callum Rogers

1
Để có xte trên Ubuntu 16.x, bạn sẽ phải cài đặt xautomation từ apt .
1111161171159459134

Điều đó không hoạt động tốt như tôi thích, vì nó không hoạt động giống nhau nếu tôi nhấn nút xuống. Con chuột cũ của tôi có một nút cho phép bánh xe cuộn quay tự do, thật tuyệt nếu tôi chỉ muốn khởi động nó thật nhanh và di chuyển một quãng đường dài. Nhưng cái mới của tôi không có cái đó, vì vậy tôi đã buộc hai nút ở bên cạnh (tôi nghĩ chúng được thiết kế dưới dạng nút quay lại / chuyển tiếp để duyệt Web) với các phím PGUp / PGDn. Nhưng tôi phải nhấn chúng liên tục nếu tôi muốn tiếp tục cuộn; Tôi không thể giữ chúng xuống. Làm thế nào để tôi làm cho nó giữ phím miễn là tôi giữ nút?
flarn2006

5

Cảm ơn mọi người vì giải pháp. Dưới đây là hướng dẫn kết hợp / hoàn hảo hơn (được thực hiện trên Xubfox 18.04).

  1. Mở một thiết bị đầu cuối (như xterm / terminal / terminator), trở thành root ( sudo su -) hoặc sử dụng sudo trước lệnh:

    apt install xbindkeys xautomation
  2. Kiểm tra ánh xạ nút với xev, vì điều này bạn không cần quyền root để thoát phiên gốc (với exit) hoặc mở một thiết bị đầu cuối khác với tư cách người dùng.

    xev | grep button
  3. Một cửa sổ nhỏ sẽ xuất hiện. Bạn phải di chuyển chuột vào cửa sổ đó và nhấn nút bạn muốn ánh xạ lại. Một ví dụ đầu ra trong thiết bị đầu cuối sẽ là:

    state 0x0, button 8, same_screen YES

    Đây là nút bên thứ 2 trên chuột mà tôi muốn sử dụng làm PAGE_DOWN.

    state 0x0, button 9, same_screen YES

    Đây là nút bên thứ 1 (có, thứ tự được đảo ngược) tôi muốn sử dụng làm PAGE_UP.

  4. Khi bạn có tất cả các nút bạn muốn ánh xạ lại, bạn có thể đóng cửa sổ xev nhỏ. Mở trình soạn thảo yêu thích của bạn (ví dụ gedit / vi / nano) và chỉnh sửa tệp cấu hình.

    vi .xbindkeysrc
  5. Nếu bạn đã có một số nội dung trong tệp, hãy xem nếu đã có một ràng buộc như nó (không chắc, không phải theo mặc định) và thêm vào cuối.

    #Pagedown press
    "xte 'keydown Next'"
    b:8
    
    #Pagedown release
    "xte 'keyup Next'"
    b:8 + Release
    
    #Pagedup press
    "xte 'keydown Prior'"
    b:9
    
    #Pageup release
    "xte 'keyup Prior'"
    b:9 + Release

    Lưu ý: bạn cần hai mục, một cho nhấn nút và một cho phát hành.

  6. Các nút 8 + 9 sẽ được ánh xạ tới các phím "Tiếp theo" (là PAGE_DOWN) và "Ưu tiên" (PAGE_UP). Nếu bạn muốn ánh xạ các phím khác nhau, bạn có thể tìm các phím bấm với xev.

    xev | grep keysym
  7. Giống như trước đây, khởi động nó trong một thiết bị đầu cuối, di chuyển chuột đến cửa sổ nhỏ và nhấn phím mong muốn.

    state 0x0, keycode 117 (keysym 0xff56, Next), same_screen YES,
  8. Lưu và giết xbindings.

    killall xbindkeys ; xbindkeys

Bây giờ bạn có thể sử dụng các nút bên bổ sung trên chuột. Cài đặt sẽ được tải tự động vào lần khởi động lại / đăng nhập tiếp theo. Bạn chỉ cần killall [...]lệnh từ trên nếu bạn thay đổi cài đặt.

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.