xdotool デスクトップの問題

xdotool デスクトップの問題

私はこの分野に非常に不慣れなので、不快な思いをさせないようにしたいと思います。HTPC (ホームシアター PC) 用の Desktop.desktop アイコンを作成しようとしています。各アイコンは、押すと URL が開き、画面が最大化されるはずです。以下のコードでは最大化されますが、xdotool では最大化されません。ただし、ターミナルで xdotool を実行すると、動作します。コードでは、URL を開いてから最大化するまでに何らかの遅延が必要だと思います。

[Desktop Entry]
Name=YouTube
Type=Link
URL=https://www.youtube.com/
Comment Terminal=false
Icon=/home/babak/Myicons/YouTube.png
Exec=xdotool search "google chrome" windowactivate --sync key F11

前もって感謝します。

答え1

.desktop ファイルは URL を開くか、コマンドを実行しますが、両方を同時に実行することはできません。URL を開いて、作成されたウィンドウで何かを実行するには、行内で両方のアクションを組み合わせますexec =

1 行に 2 つのアクションを組み合わせる方法は 2 つありますExec =

  1. Exec=` 行などの構造を使用して複数のコマンドをシェルに渡すと、sh -c "command 1; command 2". This is a way to pass two commands through a single command: an1 つのコマンドのみが処理されます。
  2. 必要なコマンドを含む bash スクリプトを作成し、自分のExec=行でその bash スクリプトを呼び出します。

したがって、行を削除しURL=Exec=行を次のように変更します。

sh -c 'google-chrome https://www.youtube.com/ && xdotool search "google chrome" windowactivate --sync key F11'

shを に置き換えることができますbash。 の代わりに&&を使用することもできますが、前者を使用すると、最初のコマンドが正常に実行された場合にのみコマンドが実行される;ようになります。xdotool

タイミングの問題がある場合は、一時停止を挿入してみてください。例:

...&& sleep 0.3 && xdotool

実行する前に 0.3 秒待機しますxdotoolxdotool組み込みの sleep コマンドもあるので、これ&& xdotool sleep 0.3 searchも機能するはずです。

関連情報