(垂直)スクロールホイールを使用して押すと、水平スクロールをエミュレートしたい Shift。
一部のアプリケーション(Chrom {e、ium})では、これはすでに機能しますが、Xアプリケーションの一般的なソリューションを探しています。
私がこれまでに得た最も近いものはxbindkeys
+ xdotool
です。
# ~/.xbindkeysrc
"xdotool click 6"
shift + b:4
"xdotool click 7"
shift + b:5
問題は、xbindkeys
がいくつかのイベントを見逃しているように見え、場合によっては垂直スクロールが「通過」することです。これは非常に迷惑です。 xbindkeys
が何らかのポーリングを使用しているようです。
また、1秒あたり何百ものシェルコマンドを生成するのは好きではありません。
画面が小さく、水平方向にたくさんスクロールする必要があります。
一般的な水平スクロールを実現するにはどうすればよいですか?
更新:
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
は生成されません。
私は私にとって許容できる解決策を見つけました。
使い方が見つかりませんでした Shift または、ホイール軸が押されている間、ホイール軸を回転させるための修飾子としてのその他のキー。
現在、トグルボタン付きの単純な.xbindkeysrc
を使用しています。
"~/toggle.sh"
alt + x
Token.shスクリプトは次のようになります。
#!/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
これにより、動作を切り替えることができます。押すと Alt + X、マウスホイールの軸が回転し、もう一度押すとデフォルトに設定されます。
それは今のところうまくいくはずです。
誰かがそれを行う方法を見つけた場合 Shift 「モディファイア」(マウス軸は押されている間回転します)として、教えてください。
編集: Alt+x よく使われるホットキーですが、次のように変更しました。
(xbindkey '(control "b:3") "toggle-wheel.sh")
(私はギル構成に切り替えたので、上記は.xbindkeysrc.scm
という名前のファイルにあるはずです)
これでスクロールホイールの方向が切り替わります Ctrl +マウスの右ボタン。
ヒントとして ここ 、 imwheel をインストールし、次の内容で~/.imwheelrc
を作成しました。
".*"
Shift_L, Up, Left
Shift_L, Down, Right
次に、ターミナルでimwheel -b 45
を実行しました。テストしましたが、高スクロールとxbindkeysに関連する斜めの問題に気づいていません。
N.B. -b 45
はimwheel
を制限して、上下のスクロールのみをキャプチャし、サムボタンのxbindkeys
バインディングをブロックしないようにします(例)。
ただし、これに関連するいくつかの問題があります。
Control_L, Up, Control_L|Up
のようなものを~/.imwheelrc
に入れてみましたが、うまくいきませんでした。imwheel
は、マウスカーソルの下のウィンドウではなく、アクティブなウィンドウに水平スクロールホイールイベントを送信します。これは、スクロールホイールのデフォルトの動作とは逆です。これはまた、 Ctrl 上記の点での回避策も最適ではありません。imwheel
は現在開発中ではないようです。過去10年間(2004年以降)、プレリリースバージョンにとどまっています。btnx を使用でき、それは gui config tool です。
最近の buntuパッケージ および ここ
Btnx-configを使用してマウスでボタン検出を行った後、「上にスクロール」とシフトボタン修飾子を任意のxボタンの押下にマップします。