Я хочу имитировать горизонтальную прокрутку, когда использую свое (вертикальное) колесо прокрутки и нажимаю 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
.
~/.xbindkeysrc.scm
. В какой-то момент это не удалось, но он может работать в вашей системе.Ответы:
Я нашел приемлемое для меня решение.
Я не нашел способа использовать Shiftлюбую другую клавишу в качестве моего модификатора, чтобы вращать ось колеса, пока она нажата.
Я сейчас использую простую
.xbindkeysrc
с кнопкой переключения:Сценарий toggle.sh выглядит так:
Это позволяет мне переключать поведение. Когда я нажимаю Alt+ X, моя ось колеса мыши поворачивается, и когда я нажимаю ее снова, она устанавливается по умолчанию.
Это должно работать на данный момент.
Если кто-то найдет способ сделать это Shiftкак «модификатор» (ось мыши вращается, пока она нажата), пожалуйста, дайте мне знать.
РЕДАКТИРОВАТЬ: так как Alt+ xэто часто используемая горячая клавиша, я изменил его на:
(Я перешел на настройку guile, так что выше должно быть в файле с именем
.xbindkeysrc.scm
)Это переключит направление колеса прокрутки с помощью Ctrl+ правой кнопки мыши.
источник
Вы могли бы использовать btnx, и это инструмент настройки GUI .
Более свежий пакет Ubuntu и здесь
После того, как вы выполните обнаружение кнопок на вашей мыши с помощью btnx-config, просто сопоставьте «Scroll Up» вместе с модификатором кнопки Shift для любого нажатия кнопки x, которое вы хотите.
источник
Как подсказано здесь , я установил imwheel , затем создал
~/.imwheelrc
со следующим контентом.Я тогда побежал
imwheel -b 45
в терминал. Я проверил, и я не заметил диагональных проблем, связанных с высокой прокруткой и xbindkeys.NB
-b 45
ограничиваетimwheel
захват только прокрутки вверх и вниз, предотвращая блокирование (например)xbindkeys
привязок для кнопок большого пальца.Проблемы
Однако с этим связано несколько проблем.
Control_L, Up, Control_L|Up
в~/.imwheelrc
, но это не работа.imwheel
отправляет события колеса горизонтальной прокрутки в активное окно, а не в окно под курсором мыши. Это противоречит стандартному поведению колеса прокрутки. Это также предполагает, что Ctrlобходной путь в вышеприведенном пункте также будет неоптимальным.imwheel
кажется, больше не в разработке. Он был добавлен в предварительную версию за последние 10 лет (с 2004 года).источник