プログラムへのリンクを、プログラムが実行されているかどうかをチェックするシェル スクリプトへのリンクに置き換えることをお勧めします。 .
このスレッドを見つけて実装し、私のバージョンを共有しました。
実行ファイル /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
example@unixlinux.online
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 へ
通常、アプリケーションのソース コードは変更する必要があります。これは、オペレーティング システムによって行われるものではありません。