web-dev-qa-db-ja.com

Lubuntuの特定の位置(ホットコーナー)にマウスカーソルを移動するときにアクションを実行

マウスカーソルが特定の位置に移動したときに何らかのアクションが実行されるように、Lubuntu(つまりOpenbox)を構成することは可能ですか?

特に、マウスカーソルを左上隅に移動し、それを左上に押し続けたときにスクリプトを実行したいと思います。これは、マウスカーソルを画面のいずれかの側に押したときに別のディスプレイに切り替えることができる一部のウィンドウマネージャーに似ています。

4
DustByte

これを実現する1つの方法は、xdotoolを使用することです。 xdotoolの-​​ manual から:

behave_screen_Edge [options] where command ...

マウスが画面の端または角に当たったときにアクションをイベントにバインドします。

オプションは次のとおりです。

-遅延ミリセコンズ

コマンドを実行する前のミリ秒単位の遅延。これにより、コマンドを実行する前に、特定のエッジまたはコーナーを短時間保持する必要があります。遅延が終了する前にエッジまたはコーナーを離れると、時間がリセットされます。

-MILLISECONDSの静止

次のコマンドが実行されるまでのミリ秒単位の遅延。これにより、誤って余分にコマンドを実行することを防ぎます。非常に短い--delay(デフォルトの0など)がある場合に特に便利です。

イベントのタイムライン

  • マウスがエッジまたはコーナーに当たります。
  • 遅延がゼロ以外の場合、遅延時間が経過するまでマウスはこのエッジまたはコーナーに留まる必要があります。
  • まだエッジ/コーナーにある場合は、トリガーします。
  • 静止がゼロ以外の場合、次のトリガーが発生しないクールダウン期間があります

有効な「where」値は次のとおりです:

  • 左上

  • 右上

  • 左下の

  • 右下

behave_screen_Edgeオプションは、xdotoolコマンドを含むexecの組み込みコマンドと組み合わせることができます。

exec [オプション]コマンド[...]

プログラムを実行します。これは、behave_screen_Edgeと組み合わせて画面のロックなどを行う場合に役立ちます。

オプション:

-sync

子プロセスが終了するまでブロックします。子プロセスの終了ステータスは、それをコピーする親プロセス(xdotool)に渡されます。


そのため、画面の左上隅を押すときにスクリプトをトリガーするには、次のコマンドを使用します。

xdotool behave_screen_Edge top-left exec --sync script.sh

--syncスイッチは、xdotoolがスクリプトが終了するまで待機してからアクションを再度トリガーするようにします。


xdotoolはUbuntuの公式リポジトリの一部であり、次の方法でインストールできます。

Sudo apt-get install xdotool
4
Glutanimate