web-dev-qa-db-ja.com

xdotoolとgeditを設定してドキュメントを開き、2回保存するにはどうすればよいですか?

次のことを行うスクリプトの作成に支援が必要です。

  1. Geditを開く
  2. Geditでドキュメントを開く
  3. ドキュメントを2回保存します
  4. Geditを閉じる

Xdotoolはドキュメントを保存するためのキーの組み合わせをシミュレートできるため、Geditとxdotoolでどのように実現できるのかと思いまして Ctrl+ S

6
Uri Herrera

それ以外の場合、geditxdotoolによって送信されたXイベントを無視するため、ウィンドウにフォーカスする必要があります。

スクリプトは次のとおりです。

#!/ bin/bash 
 
 gedit -s /path/to/document
# -sはスタンドアロンであり、代わりに新しいウィンドウが開きます既存のgeditのタブ
 
 sleep 5#geditが開くのを待ち、必要に応じて調整します
 
 GEDPID = $! #geditプロセスのPIDを保存します
 
 sleep 2#geditが実際にドキュメントを開くのを待ち、必要に応じて調整します
 
 GEDWINID = `xdotool search --pid $ GEDPID | tail -1` 
#はgeditのウィンドウIDを取得します。3番目の「子」は実際のウィンドウです
 
 xdotool windowactivate --sync $ GEDWINID key --clearmodifiers --delay 100 ctrl + s ctrl + s alt + F4 
#フォーカスgeditウィンドウ、フォーカスされるまで待機してから、2回保存して終了
6
ish