特定のイベントのタスクを自動化する方法は?

特定のイベントのタスクを自動化する方法は?

PlayonlinuxとWINEはどちらも素晴らしいです。デュアルブートやWindowsジャンクでディスクを複雑にすることなく、ついにお気に入りのゲームやLinuxを楽しめるようになりました!しかし、一部は非常に古く、低解像度でのみ実行されます。幸いにも、ターミナルエミュレータを開いたまま実行してくださいxrandr -s 1366x768。しかし、時には難しいです。800x600下にスクロールして作成中のコンテンツを表示できません。解像度が変わる過程を正確に知っています。私はこれを自動化できますか?という考えをしました。

crontab特定の時間または開始時にジョブをスケジュールできることを知っています。しかし、特定のスクリプトが実行または終了するタイミングをどのようにスケジュールしますか?または、システムが停止したときに有罪プロセスを終了することができますか?イベントのタスクをスケジュールする方法は?別のプログラムが必要ですか?

よろしくお願いします。

答え1

スクリプトをシェルスクリプトでラップし、シェルスクリプトを実行します。

#!/bin/bash

### xrandr command to set display size downsized
xrandr -s 800x600

... run program ...

### xrandr command to reset display back to normal size
xrandr -s 1366x768

答え2

複数のスクリプトを実行するときに一緒に実行できます。

;例:更新が完了した後にシステムをシャットダウンする場合は、中間コマンドを使用して一緒に実行できます。良い sudo apt-get update; sudo poweroff

同様に、ワインプログラムを呼び出すときに端末を介して実行するか、シェルスクリプトを作成して同じことを実行できます。

xrandr -s 800x600; path/to/program -parameters; xrandr -s 1366x768

プログラムが終了すると(終了コードでエラーが返されない)、端末は上記のスクリプトの最終コードを実行する必要があります。プログラムが自動的に解像度を800x600に変更する場合、上記のコードの最初の部分は必要ありません。

編集:@slmが指摘したように、コマンドの1つがfalseを返した場合、残りのコマンドは実行されませんので、代わりに;使用してください。&&それに応じて私の答えを修正しました。

関連情報