プログラムへのリンクを、プログラムが実行されているかどうかをチェックするシェル スクリプトへのリンクに置き換えることをお勧めします。 .
このスレッドを見つけて実装し、私のバージョンを共有しました。
実行ファイル /usr/local/bin/run_once.sh
を作成しました 含む
#! /bin/bash
application=$1
if wmctrl -xl | grep "${application}" > /dev/null ; then
# Already running, raising to front
wmctrl -x -R "$application"
else
# Not running: starting
[email protected]
fi
これは wmctrl
を使用してチェックします ps
を使用する代わりに、起動しようとしているアプリケーションが既にウィンドウを開いている場合 (一部の GUI プログラムは、GUI を実行せずにワーカーを保持します) 、 -x を使用して WM_CLASS
を使用します
ウィンドウが 1 つだけ必要なプログラムごとに、システム .desktop
をコピーしました。 ファイルを ~/.local/share/applications
に exec
を変更しました exec=program --arguments
のフィールド exec=/usr/local/bin/run_once.sh program --arguments
へ
通常、アプリケーションのソース コードは変更する必要があります。これは、オペレーティング システムによって行われるものではありません。