LXDEショートカットはアプリケーションを起動するか、すでに実行されている場合はそのアプリケーションに切り替えます。

LXDEショートカットはアプリケーションを起動するか、すでに実行されている場合はそのアプリケーションに切り替えます。

私はWindows 7+のWin+(1..9)ショートカットに精通しており、LXDEでも同様の機能を実装したいと思います。

したがって、ショートカットを定義する必要があります。

  • まだ起動していない場合は、定義されたアプリケーションを起動します。または

  • アプリケーションがすでに実行されている場合は、そのアプリケーションに切り替えます。

どうすればいいですか?

を使用してアプリケーションが実行されていることを確認できますがps -e | grep appname、コマンドラインを使用して名前またはPIDでLXDEをアプリケーションに切り替える方法はありますか?それともこれを行う別の方法がありますか?

私はWinXPでこの動作を達成するためにAutoHotkeyを使用してきました。 Win7/Win8ではデフォルトです。非常に便利なので、私のDebianでも使用したいと思います。

ベストアンサー1

Unix「アプリケーション」の完全な概念はありません。。トップレベルのウィンドウは、プロセスを使用するよりも優れた指標です。正確に検出するのは簡単で、誤って他のユーザーのアプリを検出することもありません。

各ウィンドウには、対応するアプリケーションを識別するクラスがあります。アプリケーションのクラス名を表示するには、端末で次のコマンドを実行して[アプリケーション]ウィンドウをクリックします。

xprop WM_CLASS

これにより、インスタンス名とクラス名の2つの文字列が表示されます。

ウィンドウに関する情報を表示し、いくつかの基本的なタスクを実行するための最も便利なツールは次のとおりです。xdotoolそしてwmctrl

を使用すると、特定のインスタンスとクラスを使用してウィンドウのいずれかをアクティブにwmctrlできます。wmctrl -F -x -a "$instance.$class"一致するウィンドウがない場合は、wmctrlプログラムの開始を選択できるようにエラー状態が返されます。例:

wmctrl -F -x -a Navigator.Firefox || firefox &

同等のxdotoolコマンド:

xdotool search --class --maxdepth 2 Firefox windowactivate || firefox &

最上位のウィンドウが複数ある場合、どのウィンドウをアクティブにするかを簡単に判断することはできません。最新バージョンを有効にするには、ウィンドウマネージャの協力が必要です。 LXDE のデフォルト値は Openbox です。私はOpenboxに慣れていませんが、かなり単純化されているため、最近アクティブなウィンドウを報告する方法を提供できない可能性があります。 LXDEは、次のような他のウィンドウマネージャで使用できると思います。トップサメプログラミングが可能なので、数行のコードでウィンドウマネージャでこの機能を書くことができます。

使用ウィンドウマネージャのキーバインディング設定メカニズム必要なキーを次のいずれかのコマンドにバインドします。

おすすめ記事