Trong Windows, tôi thường bấm vào nút giữa và nó cung cấp tùy chọn "cuộn nhanh" lên hoặc xuống. Làm thế nào tôi có thể có hành vi này trên Linux? Hiện tại nó dường như sử dụng nút quay lại khi nhấp vào trung tâm.
Tôi sử dụng Gnome theo CentOS.
Trong Windows, tôi thường bấm vào nút giữa và nó cung cấp tùy chọn "cuộn nhanh" lên hoặc xuống. Làm thế nào tôi có thể có hành vi này trên Linux? Hiện tại nó dường như sử dụng nút quay lại khi nhấp vào trung tâm.
Tôi sử dụng Gnome theo CentOS.
Câu trả lời:
Tính năng Windows này chưa bao giờ thực sự xâm nhập vào thế giới Unix. Trong thế giới Unix, mục đích chính của nút chuột giữa là dán nội dung clipboard (hay chính xác hơn là văn bản được chọn bằng chuột, được sao chép tự động). Một vài ứng dụng đa nền tảng như Firefox và Chrome hỗ trợ nút chuột giữa kiểu Linux trong Windows và ngược lại, nhưng khác với hầu hết các ứng dụng không hỗ trợ kiểu cuộn mịn này.
Tuy nhiên, bạn có thể khá gần ở cấp hệ thống. Có thể thiết lập một nút chuột sao cho khi nhấn, chuyển động của chuột được chuyển thành các sự kiện bánh xe. Đây là tính năng tương tự mà bạn đã từng sử dụng, nhưng bạn có thể tìm thấy chuyển động bị biến dạng, bởi vì các ứng dụng nhận các sự kiện bánh xe, thường được hiểu là cuộn theo toàn bộ một dòng hoặc cột.
Để chơi với cấu hình này, hãy sử dụng chương trình xinput (Tôi không biết nếu có giao diện GUI cho nó). Đầu tiên, chạy lệnh sau để xem tên của thiết bị trỏ của bạn:
$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Generic USB Mouse id=8 [slave pointer (2)]
⎜ ↳ Macintosh mouse button emulation id=12 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ USB Keyboard id=9 [slave keyboard (3)]
Ví dụ, trong đầu ra ở trên, thiết bị con trỏ là Generic USB mouse
. Bạn có thể chạy lệnh sau để liệt kê các thuộc tính có thể điều chỉnh:
xinput --list-props 'Generic USB Mouse'
Tập hợp các thuộc tính mà bạn đang tìm kiếm là các mô phỏng mô phỏng Bánh xe Evdev. Với các cài đặt sau, khi nhấn nút chuột giữa (nút 2), di chuyển chuột sẽ gửi các sự kiện bánh xe (4 = lên, 5 = xuống, 6 = trái, 7 = phải).
xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation' 1
xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Button' 2
xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Axes' 6 7 4 5
Bạn có thể muốn điều chỉnh các tham số khác (quán tính, thời gian chờ).
Bạn có thể đặt các lệnh này trong một tập lệnh. Thêm #!/bin/sh
dưới dạng dòng đầu tiên và làm cho tệp tập lệnh thực thi (ví dụ chmod +x ~/bin/activate-wheel-emulation.sh
). Sau đó thêm tập lệnh đó vào danh sách các lệnh sẽ chạy khi phiên của bạn bắt đầu ( gnome-session-properties
cho phép bạn định cấu hình tập lệnh đó).
Nếu bạn có quyền truy cập root và bạn muốn thực hiện thay đổi cho tất cả người dùng (chấp nhận được trên máy gia đình), việc thực hiện thông qua tệp cấu hình máy chủ X.org sẽ đơn giản hơn . Với quyền root, hãy tạo một tệp /etc/X11/xorg.conf.d/wheel-emulation.conf
có tên chứa cài đặt cho trình điều khiển chuột . Các cài đặt giống nhau nhưng chúng được tổ chức hơi khác nhau.
Section "InputClass"
Identifier "Wheel Emulation"
MatchProduct "Generic USB Mouse"
Option "EmulateWheel" "on"
Option "EmulateWheelButton" "2"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
EndSection
Evdev Wheel Emulation Timeout
tham số quá nhiều, bạn có thể mất hoàn toàn chức năng nút chuột giữa (nhấp chuột). Ví dụ: nếu bạn giảm Evdev Wheel Emulation Timeout
xuống dưới giá trị Evdev Middle Button Timeout
thì bạn sẽ không còn tạo các sự kiện Nhấp vào nút giữa. Từ kinh nghiệm cá nhân, những điều sau đây có vẻ hoạt động khá tốt:
xinput --set-prop 'Generic USB Mouse' 'Evdev Middle Button Emulation' 1
. xinput --set-prop 'Generic USB Mouse' 'Evdev Middle Button Timeout' 50
. xinput --set-prop 'Generic USB Mouse' 'Evdev Wheel Emulation Timeout' 100
. Điều đó cung cấp chức năng nhấp và cuộn hợp lý, mặc dù nếu bạn thấy nó kích hoạt quá nhanh, thì hãy thử tăng Evdev Wheel Emulation Timeout
(tôi nghĩ 200 là mặc định)
Device "evdev"
và đặt dấu ngoặc kép xung quanh "EmulateWheelButton"
giá trị của "2"
. (Xin lỗi, tôi không có thời gian để điều tra xem một hoặc cả hai thay đổi này có khắc phục được sự cố không.)
Device "evdev"
có thể có ý nghĩa, ý bạn là Driver "evdev"
gì? Tôi nghĩ rằng đây sẽ là một thay thế cho MatchProduct
chỉ thị đặt các tùy chọn cho tất cả các thiết bị đầu vào thay vì chỉ chuột USB chung.
Pointer_EnableKeys
(google nó hoặc hỏi một câu hỏi mới ở đây) và bạn có thể thiết lập hành vi fancier với XKB (tìm kiếm keybord : mousekey, hoặc hỏi một câu hỏi mới ở đây mô tả chính xác những gì bạn muốn và những gì bạn sẽ giải quyết nếu bạn không thể có chính xác).
để chrome
bạn có thể sử dụng tiện ích mở rộng này để tự động đăng ký
đừng quên khởi động lại chrome sau khi cài đặt tiện ích mở rộng