Я хочу имитировать горизонтальную прокрутку, когда использую свое (вертикальное) колесо прокрутки и нажимаю Shift.
В некоторых приложениях (Chrom {e, ium}) это уже работает, но я ищу общее решение для приложений X.
Ближайшее, что я получил, это xbindkeys
+ xdotool
.
# ~/.xbindkeysrc
"xdotool click 6"
shift + b:4
"xdotool click 7"
shift + b:5
Проблема в том, что xbindkeys
кажется, что пропускаются некоторые события, и иногда вертикальная прокрутка «проходит». Это очень раздражает. Похоже, xbindkeys
использует какой-то опрос?
Также я не люблю порождать сотни команд оболочки в секунду.
У меня маленький экран, и мне приходится много прокручивать по горизонтали.
Как мне добиться обычной горизонтальной прокрутки?
ОБНОВИТЬ:
Есть другой способ, который делает в основном то, что я хочу, xbindkeys
и xmodmap
.
"xmodmap -e 'pointer = 1 2 3 6 7 4 5 8 9 10'"
c:50
"xmodmap -e 'pointer = default'"
release + shift + c:50
Когда Shiftудерживается, кнопки указателя 4 и 5 отображаются на 6 и 7. (Кнопки 4/5 предназначены для вертикальной прокрутки и 6/7 для горизонтальной прокрутки). c:50
это левый Shiftключ. При отпускании ключа отображение указателя по умолчанию восстанавливается.
Это хорошо решает проблему «слишком много событий». Однако клавиша Shift больше не работает как обычный модификатор. Я попытался переиздать Shiftсобытия пресс-релиза xdotool
так:
"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
Согласно xev
с Shiftсобытиями пройти, но я думаю , что это не признается в качестве модификатора больше. Например, нажатие Shift+ Aне будет отображаться в верхнем регистре A
.