マウスを仮想的に揺すってコンピュータがロックされるのを防ぐスクリプトを書きたいのですが。しかし、使用しているコンピューターにxdotool
がなく、rootでないためインストールできません。 xdotool
を使用せずにカーソルを移動する方法はありますか?
Rootでないためにxdotool
をインストールできないということは、特別な特権を必要としないため、プログラムを実行できないという意味ではありません。
ソースから をダウンロードしてコンパイルするだけです。
コンパイラにアクセスできない場合は、システムのパッケージを直接ダウンロードして、パッケージからファイルを抽出できます(.deb
の場合は、最初にar
を使用し、.rpm
から抽出しますrpm2cpio
で実行できます)
this の回答によれば、次の手順でコマンドラインを使用してマウスのポインタを移動できます。
まず、マウス入力デバイスを見つける必要があります
grep mouse /proc/bus/input/devices | grep event
H: Handlers=mouse0 event7
私の場合。複数のマウス(タッチパッドなど)を使用している場合は、複数の行を出力できます。重要な部分はevent7
、それはあなたが/dev/input/event7
。
次に、マウスポインタを100ピクセル右に移動します。
seconds=$(date +%s)
type=2 # EV_REL
code=0 # REL_X
value=100 # 100 pixels
printf '%08X%04X%04X%08X%08X\n' $value $code $type 0 $seconds | xxd -r -p | \
Perl -0777e 'print scalar reverse <>' > /dev/input/event7
type=0 # EV_SYN
code=0 # SYN_REPORT
value=0
printf '%08X%04X%04X%08X%08X\n' $value $code $type 0 $seconds | xxd -r -p | \
Perl -0777e 'print scalar reverse <>' > /dev/input/event7
この手順が、ロックメカニズムを中断するという意味で、実際のマウスの動きと同等であるかどうかはテストしませんでした。