シェルスクリプトで起動したプログラムにキーメッセージを送る方法

xdotool を使えばよい

インストール方法

xdotoolはUbuntu系だとaptでインストールできるようです。 なので、コマンド一発。

sudo apt-get install xdotool

シェルからメッセージを送る。

どうも、送る対象のウィンドウをアクティブにする必要があるみたい。 そのために、対象アプリケーションのWindowIDを調べます。

今回はluvcviewに[p]キーを送りたかったので、

xdotool search --name 'luvcview'

これで返ってきたWindowIDを使って、

xdotool windowfocus WindowID
xdotool key p

これでキーが送られる。

シェルスクリプトにまとめると、こんな感じ

#! /bin/bash
# /dev/video1とvideo2を開いて、それぞれのファイル名で動画を保存する

luvcview -d /dev/video1 -o video1.avi & luvcview -d /dev/video2 -o video2.avi & 

sleep 10
for winID in $(xdotool search --name 'luvcview')
do
  xdotool windowfocus $winID;xdotool key p
done