GNU/Linux >> Linux の 問題 >  >> Linux

アプリを開く/前面に表示するためのカスタム ホットキー/ショートカット

wmctrl プログラムはまさにあなたが探しているものです (sudo apt-get install wmctrl )。 wmctrl -a "AppTitle" を使用できます アプリを前面に表示するコマンド。 wmctrl -l 使用可能なすべてのウィンドウが一覧表示されるため、プログラムが実行されているかどうかを確認し、起動するか前面に表示するシェル スクリプトを簡単に作成できます。次に、それをキーボード ショートカットにバインドするだけです。

最初に次のスクリプトをどこかに保存します。ここでは /home/jtb/code/bringToFront を使用します .これには 2 つの引数が必要です。1 つ目は、プログラムを起動するためにターミナルで入力するもので、2 つ目はプログラム ウィンドウのタイトルの部分文字列です。タイトルに一定の一意の文字列がない場合は、プログラムのウィンドウを見つけるためにもう少し作業を行う必要があります。

#!/bin/bash
if [ `wmctrl -l | grep -c "$2"` != 0 ]  
then
    wmctrl -a "$2"
else
    $1 &
fi
  1. 現在のディレクトリにあるスクリプトを使用して、chmod +x bringToFront を実行します。 スクリプトを実行可能にします。次に、動作することを確認します。 Firefox を起動/フォーカスするには、./bringToFront firefox "Mozilla Firefox" を実行します。 .

  2. 次に、ショートカット キーをバインドする必要があります。 gconf-editor を実行 フォルダー構造を左に移動して /apps/metacity/keybinding_commands に移動します .

  3. 最初の command をダブルクリックします 空白の値、おそらく command_1 .スクリプトへのフル パスを入力し、2 つのパラメータを指定します。 /home/jtb/code/bringToFront firefox Firefox .

  4. 左側のパネルから global_keybindings を選択します 、次のフォルダ。 run を見つける 定義したばかりのコマンドに一致するエントリ、おそらく run_command_1 .それをダブルクリックして、使用するキーボード ショートカットを入力します。修飾子を山かっこで囲みます。 <Ctrl><Alt>F .

コントロール + Alt + F Firefox ウィンドウを前面に表示するか、まだ実行されていない場合は起動します。


xdotools でそれを行う別の方法を次に示します。 .ポップアップするプロセスは、それを実行するために発行されたコマンド ラインによって認識されます (pid ファイルや一意のウィンドウ タイトルは必要ありません)。

#!/bin/bash

cmd="[email protected]"
# command line to be run. Note that the resulting
# process will hold this in /proc/PID/cmdline 

pid=`pgrep -nf "^$cmd$"`
# most recent process having "$cmd" in /proc/PID/cmdline

if [ -z "$pid" ]; then # no pid
    exec $cmd
    # run command
else
    winid=`xdotool search --all --pid $pid --onlyvisible | head -1`
    # first visible window owned by pid
    xdotool windowactivate $winid
    # give window focus
fi

Linux
  1. LinuxでAppimageを開く方法

  2. カスタムコマンド

  3. USBデバイスプラグインでカスタムスクリプトを実行する方法は?

  1. 64ビットLinuxで32ビットアプリを実行していますか?

  2. Timekpr(復活)-Linux用のオープンソースのペアレンタルコントロールアプリ

  3. qTox –オープンソースのP2PインスタントメッセージングおよびVoIPアプリ

  1. プロット–GNOME用のオープンソースグラフプロットアプリ

  2. ポートをブロックするプロセスが他にない場合でも、Node.js アプリをポート 80 で実行できない

  3. 端末で提案されたコマンドを実行するためのショートカットはありますか?