Giả lập cuộn ngang với phím Shift


13

Tôi muốn mô phỏng cuộn ngang khi tôi sử dụng bánh xe cuộn (dọc) của mình và nhấn Shift.

Trong một số ứng dụng (Chrom {e, ium}), điều này đã hoạt động, nhưng tôi đang tìm một giải pháp chung cho các ứng dụng X.

Gần nhất tôi nhận được cho đến nay là xbindkeys+ xdotool.

# ~/.xbindkeysrc
"xdotool click 6"
  shift + b:4

"xdotool click 7"
  shift + b:5

Vấn đề là xbindkeysdường như bỏ lỡ một số sự kiện và đôi khi một cuộn dọc "được thông qua". Điều này rất khó chịu. Có vẻ như xbindkeyslà sử dụng một số loại bỏ phiếu?

Ngoài ra tôi không thích sinh ra hàng trăm lệnh shell mỗi giây.

Tôi có một màn hình nhỏ và phải cuộn theo chiều ngang rất nhiều.

Làm thế nào tôi có thể đạt được cuộn ngang chung?

CẬP NHẬT:

Có một cách khác mà chủ yếu là những gì tôi muốn với xbindkeysxmodmap.

"xmodmap -e 'pointer = 1 2 3 6 7 4 5 8 9 10'"
  c:50
"xmodmap -e 'pointer = default'"
  release + shift + c:50

Khi Shiftđược giữ, các nút con trỏ 4 và 5 được ánh xạ thành 6 và 7. (Các nút 4/5 được xem là cuộn dọc và 6/7 cho cuộn ngang). c:50Shiftchìa khóa bên trái . Khi phát hành khóa, ánh xạ con trỏ mặc định được khôi phục.

Điều này giải quyết vấn đề "quá nhiều sự kiện" độc đáo. Tuy nhiên, phím Shift không hoạt động như công cụ sửa đổi thông thường nữa. Tôi đã cố gắng Shiftphát hành lại các sự kiện báo chí / phát hành xdotoolnhư thế này:

"xmodmap -e 'pointer = 1 2 3 6 7 4 5 8 9 10';  xdotool keydown Shift_L"
  c:50
"xmodmap -e 'pointer = default';  xdotool keyup Shift_L"
  release + shift + c:50

Theo xevcác Shiftsự kiện thông qua, nhưng tôi nghĩ nó không được công nhận là công cụ sửa đổi nữa. Ví dụ: nhấn Shift+ Asẽ không tạo chữ hoa A.


1
Bạn cũng có thể thực hiện cuộn ngang với Ctrl + Mũi tên cho nhiều chương trình.
terdon

1
Cảm ơn, nhưng điều này không làm việc cho tôi trong Firefox. Tôi đang tìm kiếm một Giải pháp "chung chung" hoạt động ở mọi nơi.
Paul Schyska

Nó có phải là một vấn đề để chạy một cái gì đó như root, ví dụ như sử dụng sudo?
brm

Nó không phải là tối ưu để có sudo. Tôi giả sử bạn có nghĩa là sudo-ing mỗi khi Shift được nhấn? Bạn có thể giải thích những gì bạn có trong tâm trí?
Paul Schyska

Điều này có thể là vô nghĩa, nhưng đã có lúc điều này làm việc cho tôi ~/.xbindkeysrc.scm. Tại một số điểm, nó không thành công, nhưng nó có thể hoạt động trên hệ thống của bạn.
Sparhawk

Câu trả lời:


2

Tôi tìm thấy một giải pháp chấp nhận được cho tôi.

Tôi đã không tìm ra cách sử dụng Shifthoặc bất kỳ phím nào khác làm công cụ sửa đổi của mình để xoay trục bánh xe miễn là nó được nhấn.

Tôi hiện đang sử dụng một .xbindkeysrcnút đơn giản với nút chuyển đổi:

"~/toggle.sh"
  alt + x

Kịch bản toggle.sh trông như thế này:

#!/bin/sh
on()
{
  xmodmap -e 'pointer = 1 2 3 6 7 4 5 8 9 10'
}

off()
{
  xmodmap -e 'pointer = default'
}

if xmodmap -pp | grep -q '4.*6'; then
  off
else
  on
fi

Điều này cho phép tôi chuyển đổi hành vi. Khi tôi nhấn Alt+ X, trục bánh xe chuột của tôi được xoay và khi tôi nhấn lại, nó được đặt thành mặc định.

Điều đó nên làm việc cho bây giờ.

Nếu ai đó tìm được cách thực hiện với Shifttư cách là "công cụ sửa đổi" (trục chuột xoay miễn là nó được nhấn), vui lòng cho tôi biết.

EDIT: As Alt+ xlà một phím nóng được sử dụng phổ biến, tôi đã đổi nó thành:

(xbindkey '(control "b:3") "toggle-wheel.sh")

(Tôi đã chuyển sang cấu hình guile để ở trên nên có trong một tệp có tên .xbindkeysrc.scm)

Thao tác này sẽ chuyển hướng bánh xe cuộn bằng Ctrl+ nút chuột phải.


0

Bạn có thể sử dụng btnx và đó là công cụ cấu hình gui .

Thêm gói Ubuntu gần đây và tại đây

Sau khi bạn thực hiện phát hiện nút trên chuột bằng btnx-config, chỉ cần ánh xạ "Cuộn lên" cùng với công cụ sửa đổi nút sang bất kỳ nút x nào bạn muốn.


Cảm ơn, tôi đang gặp vấn đề khi xây dựng nó trên fedora.
Paul Schyska

1
Tôi tìm thấy một gói vòng / phút cho btnx bây giờ. Tôi không tìm cách lập bản đồ sửa đổi dưới dạng sự kiện nguồn (ví dụ: Shift + WheelUp). Tôi chỉ có thể ánh xạ từ WheelUp sang Shift + một số phím khác. Tui bỏ lỡ điều gì vậy? Tôi cũng đã cố gắng "phát hiện" Shift + WheelUp ngay từ đầu, nhưng thông báo "Nút đã được ánh xạ". Mã thô là 0x02010008 cho cả hai trường hợp (Nhấn Shift và không nhấn). Tôi không nghĩ btnx có thể xử lý nhiều thiết bị đầu vào (Chuột + Bàn phím)
Paul Schyska

0

Như được gợi ý ở đây , tôi đã cài đặt imwheel , sau đó được tạo ~/.imwheelrcvới nội dung sau.

".*"
Shift_L, Up, Left
Shift_L, Down, Right

Sau đó tôi chạy imwheel -b 45trong nhà ga. Tôi đã thử nghiệm và tôi không nhận thấy các vấn đề đường chéo liên quan đến cuộn cao và xbindkey.

NB -b 45hạn chế imwheelchỉ chụp cuộn lên xuống, ngăn không cho nó chặn (ví dụ) xbindkeyscác ràng buộc cho các nút ngón tay cái.

Các vấn đề

Tuy nhiên, có một số vấn đề liên quan đến điều này.

  • Nó không nhất quán. Tôi có thể làm cho nó hoạt động với Firefox và Gwenview, nhưng Inkscape và GIMP không hoạt động. Tôi có thể sử dụng kết hợp cửa sổ để không khớp với Inkscape / GIMP, nhưng có một số cách để nó hoạt động phổ biến.
  • Thậm chí tệ hơn, nó ngăn chặn một số sự kiện mặc định khác, như Ctrl+ Scroll wheel, thường được sử dụng để phóng to. Tôi đã thử đặt những thứ như thế Control_L, Up, Control_L|Upvào ~/.imwheelrc, nhưng điều này không hiệu quả.
  • imwheelgửi các sự kiện bánh xe cuộn ngang đến cửa sổ hoạt động, không phải cửa sổ dưới con trỏ chuột. Điều này chống lại hành vi mặc định của bánh xe cuộn. Điều này cũng cho thấy Ctrlcách giải quyết ở điểm trên cũng sẽ không tối ưu.
  • imwheeldường như không còn trong sự phát triển Nó đã bị kẹt trên phiên bản tiền phát hành trong 10 năm qua (kể từ năm 2004).
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.