web-dev-qa-db-ja.com

Linuxで半分のページをスクロールする方法は?

できればページを上下にシフトするようなキーの組み合わせを使用して、半分のページをスクロールできる方法を探しています。 Windowsでは これはautohotkeyを介して実行可能です 、OSの場合、すべての 私が見つけたのはこれでした ほど簡単な解決策はないようです。

Ubuntu 14.04(win7から)の使用に切り替えるだけです。これを実現する最も簡単な方法は、xdotool/xbindkeysスクリプトをいくつか作成することです。このスクリプトは、それぞれ半ページ分のマウススクロールまたは矢印クリックをエミュレートします。次に、これらをカスタムホットキーにバインドします。

しかし、Ubuntuに切り替えたばかりなので、何かが足りないのではないかと思います。したがって、Linuxでハーフページスクロールを有効にするための好ましい方法はどれですか?

更新:マウスホイールのスクロールを数回エミュレートするスクリプトを作成しました。

#!/bin/bash
xdotool click 4
xdotool click 4
xdotool click 4
xdotool click 4

それはきちんと機能しますが、2つの問題が残っています:

  1. マウスが置かれているウィンドウを常にスクロールします。アクティブなウィンドウをスクロールさせようとしましたが、うまくいきませんでした。

  2. マウスホイールのスクロールを送信するため、他のプログラムによって解釈され、ズームするため、ホットキーとして制御できなくなります。これは、すべてのホットキーが理想的に使用されるプログラムの問題です。マウスホイールのスクロールをエミュレートせずに、スクロール距離を指定したいと思います。

3
joelostblom

私はついに、ほとんどのユースケースで非常にうまく機能するソリューションを思いつきました。 xdotoolsを使用して、2つのスクリプトを作成しました。1つは各方向にスクロールするためのものです。これは下にスクロールするためのスクリプトです(上にスクロールするには、「4」の代わりに「5」を使用します)。

#!/bin/bash

#Get active window id
win=`xdotool getactivewindow`

#Move the mouse to the active window
xdotool mousemove --window $win 45 110 

#Scroll active window several times
xdotool click --clearmodifiers 5
xdotool click --clearmodifiers 5
xdotool click --clearmodifiers 5
xdotool click --clearmodifiers 5
xdotool click --clearmodifiers 5
xdotool click --clearmodifiers 5
xdotool click --clearmodifiers 5
xdotool click --clearmodifiers 5
xdotool click --clearmodifiers 5
xdotool click --clearmodifiers 5
xdotool click --clearmodifiers 5

#Send click to specific window. Finicky.
#xdotool click --window $win 5

基本的に、xdotoolsはactivewindow idを取得し、そこに移動してから、マウスのスクロール信号を数回送信します。クリックを送信するウィンドウを直接指定しても機能しなかったため、代わりにマウスカーソルを移動して解決しました。 Linuxは自動的にマウスの下でウィンドウをスクロールするので、これは私の質問にリストされている問題1を解決します。 --clearmodifiersパラメータは、ホットキーの組み合わせで使用されている修飾キーを解放するため、送信されるキーはxdotoolからのものだけです。これにより、問題番号2が解決されます。

残っている唯一の小さな煩わしさは、一部のウィンドウに複数のパネルがあり、このスクリプトでは左上のパネルしかスクロールできないことです。これはブラウジング時には問題ではありませんが、スパイダーなどのIDEでは問題になります。ですから、誰かがより良いアプローチをしているなら、共有してください!

5
joelostblom