Cuộn giữa nhấp với ThinkPad / tránh dán


11

Tôi có bàn phím ThinkPad USB và tôi muốn có thể sử dụng nhấp chuột giữa để dán và cuộn.

Điều này hoạt động trên máy tính xách tay ThinkPad của tôi. Trên máy tính xách tay, nếu nút bấm giữa được giữ trong một khoảng thời gian đủ ngắn, thì khi phát hành, nó được hiểu là " dán ". Khi được giữ lâu hơn, nó được hiểu là " cuộn ".

Vấn đề là, bằng cách sử dụng bàn phím USB, quyết định để dán xảy ra khi nút giữa được ép , không phải khi nó được phát hành , vì vậy nếu tôi cố gắng cuộn với nhấp chuột giữa, nó sẽ dán trước, sau đó di chuyển khi tôi tiếp tục giữ nó xuống (mặc dù thú vị, dán này không xảy ra nếu tôi đã di chuyển con trỏ, đó là cách giải quyết hiện tại của tôi).

Có cách nào để yêu cầu X11 dán vào phát hành nút giữa thay vì nhấn (với quyết định cuộn thay vì dán được thực hiện dựa trên thời gian được giữ trong bao lâu)?


2
Thật đáng ngạc nhiên khi biết rằng hành vi của X11 sẽ khác nhau tùy thuộc vào loại chuột nào đang được sử dụng. Tôi khuyên bạn nên sử dụng xevđể theo dõi các sự kiện ButtonPressButtonReleasesự kiện để xem nút của máy tính xách tay của bạn có thực sự gửi các sự kiện mà bạn nghĩ đó là vào thời điểm bạn nghĩ hay không. Thay vào đó, có thể nó đang thực hiện một số phép thuật của riêng mình và "nói dối" với X11 về thời điểm các nút được nhấn và nhả ra. Nhân tiện, có vẻ như bình thường là dán xảy ra ngay lập tức khi nhấn nút 2, không phát hành .
Celada

1
Tôi cũng rất muốn biết cách thực hiện điều này khi tôi đang sử dụng Bàn phím theo dõi Bluetooth của Lenovo.
Justin N

Bàn phím USB đó, mô hình chính xác là gì? Nó có bàn di chuột "thật" hay còn gọi là bàn di chuột (không có nút bấm vật lý) không? Ngoài ra, bạn sử dụng distro và môi trường máy tính để bàn nào? Có cấu hình xorg đặc biệt nào không (/etc/X11/xorg.conf và trong /etc/X11/xorg.conf.d/)? Bạn có thể tìm thấy một số gợi ý ở đây: askubuntu.com/questions/2557/thinkpad-middle-button-scrolling và cho clickpad đây: askubuntu.com/questions/380825/...
doktor5000

1
Bất kỳ cập nhật về điều này? Tôi đang gặp vấn đề tương tự với bàn phím ngoài của Lenovo.
lang Ức

FWIW, tôi có hai mẫu bàn phím theo dõi bluetooth và một mẫu có vấn đề này. xevcho thấy ButtonPressnút for 2 ngay khi tôi nhấp, sau đó ButtonReleasekhi tôi bắt đầu cuộn. Điều gì sẽ xảy ra là cả hai sự kiện này đều không được tạo cho đến khi hành động bị phân tán bằng cách di chuyển điểm theo dõi (trong trường hợp không nhấn hoặc phát lại) hoặc nút 2 được phát hành (trong trường hợp đó, cả hai sự kiện đều được gửi khi phát hành).
hầm hầm

Câu trả lời:


1

Điều này hoạt động tốt cho tôi trong /etc/X11/xorg.conf.d/20-thinkpad.conf:

Section "InputClass"
    Identifier  "Trackpoint Wheel Emulation"
    MatchProduct    "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint"
    MatchDevicePath "/dev/input/event*"
    Option      "EmulateWheel"      "true"
    Option      "EmulateWheelButton"    "2"
    Option      "Emulate3Buttons"   "false"
    Option      "XAxisMapping"      "6 7"
    Option      "YAxisMapping"      "4 5"
EndSection

Phần quan trọng là MatchProductmục, bao gồm cả bàn phím USB. Bạn có thể tìm thấy chuỗi sản phẩm bàn phím /var/log/Xorg.0.logbằng cách grepping cho (II) evdev:.


1

Hãy thử bật mô phỏng cuộn với các lệnh sau, hoạt động tốt trên một số kiểu bàn phím trackpoint:

dev="TPPS/2 IBM TrackPoint"
xinput --set-int-prop "$dev" "Evdev Wheel Emulation Axes" 8 6 7 4 5
xinput --set-int-prop "$dev" "Evdev Wheel Emulation Button" 8 2
xinput --set-int-prop "$dev" "Evdev Wheel Emulation" 8 1

Nếu bạn không thích điều đó, bạn có thể hoàn tác nó với

xinput --set-int-prop "$dev" "Evdev Wheel Emulation" 8 0

Bạn có thể cần điều chỉnh dev dựa trên kiểu bàn phím của mình. Chạy

xinput --list | grep TrackPoint

để xem thiết bị trỏ của bạn được gọi là gì.

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.