当我使用(垂直)滚轮并按时,我想模拟水平滚动Shift。
在某些应用程序(Chrom {e,ium})中,这已经可以使用,但是我正在寻找针对X应用程序的通用解决方案。
到目前为止,我最接近的是xbindkeys
+ xdotool
。
# ~/.xbindkeysrc
"xdotool click 6"
shift + b:4
"xdotool click 7"
shift + b:5
问题是xbindkeys
似乎错过了一些事件,有时垂直滚动会“通过”。这很烦人。好像xbindkeys
正在使用某种轮询?
我也不喜欢每秒产生数百个shell命令。
我的屏幕很小,必须水平滚动很多。
如何实现通用水平滚动?
更新:
还有另一种方法可以满足我和xbindkeys
and的大部分需求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
。