Gnome3でキーボードショートカットを使ってウィンドウを開くことはできますか?

Gnome3でキーボードショートカットを使ってウィンドウを開くことはできますか?

最近KDE4からGnome3に切り替えました。 KDEでは、ウィンドウを表示するアプリケーション固有のキーボードショートカットを作成できます。私は通常Firefox、Thunderbird、端末などのために1つを作成します。これにより、ウィンドウをすばやく切り替えることができます。 Gnomeにはそのような機能がないようです。また、Gnome3のウィンドウ切り替え方法(alt-tab)が好きではありません。

もしそうなら、DBUSを介してウィンドウを上げることが可能かどうか疑問に思います。その場合は、スクリプトを作成してここにキーボードショートカットを割り当てることができます。

答え1

Fluxbox Wikiでwmctrlアプリケーションを見つけて、すでに実行している場合は、そのウィンドウを表示するスクリプトが見つかりました。それ以外の場合、スクリプトはアプリケーションを起動します。私はこのスクリプトを使用し、私が持っているパラメータをサポートするように調整しています。私のブログに記録されました

  1. wmctrlインストールされていることを確認してください。

    sudo apt-get install wmctrl
    
  2. パス(おそらく$HOME/bin/find_app.sh)に次のスクリプトを追加して実行可能にします。

    #!/bin/bash
    # Find_app
    
    # Author: Lucas van Staden (lvs at dedmeet.com / http://www.dedmeet.com)
    # This little script will try and find the application attempting to start
    # in the running processes, and if found, focus the application
    # if not found, a new instance will start
    
    # usage:
    # find_app.sh <application with full path>
    
    # params
    # 1 - application to start (full path)
    
    # helper applications
    DOLLARONE=$(echo $1 | sed -e 's/[\t ]*$//') #Delete trailing spaces
    WMCTRL=`which wmctrl`;
    GREP=`which grep`;
    APPLICATION=$(echo $DOLLARONE | cut -d ' ' -f 1)
    if [ "x$APPLICATION" != "x$DOLLARONE" ]; then
      APPARGS=$(echo $DOLLARONE | cut -d ' ' -f 2)
    fi
    BASENAME=`basename $APPLICATION`;
    BASENAME=`echo $BASENAME | tr "[:upper:]" "[:lower:]"`
    FOUND=0;
    function findwindow {
    # 1 = BASENAME
    # 2 = WMCTRL
    # 3 = GREP
            IFS=$'\n';
            for RUNNING in `$2 -l -x`
            do
                    if [ `echo $RUNNING | tr "[:upper:]" "[:lower:]" | $3 -c $DOLLARONE` -gt 0 ]
                    then
                            HOSTNAME=`hostname`
                            WINDOW=${RUNNING#*${HOSTNAME} }
                            $2 -a $WINDOW
                            FOUND=1;
                    fi;
            done
    }
    if [ "x$APPARGS" = "x" ]; then
      findwindow $BASENAME $WMCTRL $GREP;
      if [ $FOUND -eq 0 ]
      then
              $APPLICATION &
              sleep 2;
              # Try and find the application, after opened
              findwindow $BASENAME $WMCTRL $GREP;
              if [ $FOUND -eq 0 ]
              then
                      # Still not found, wait a bit more, and try again
                      sleep 3;
                      findwindow $BASENAME $WMCTRL $GREP;
              fi
      fi
    else
      $APPLICATION $APPARGS &
    fi
    
  3. 上記のスクリプトを使用して、アプリケーションが呼び出されるように単一の実行ショートカットを使用したいアプリケーションのデスクトップアイテムファイルを更新します。

    たとえば、

    cp /usr/share/applications/firefox.desktop ~/.local/share/applications/
    

    この行を編集して引用符にfirefox.desktop変更します。~/.local/share/applications/Execfind_app.sh

    Exec=find_app.sh "firefox %u"
    
  4. ここで、メインブラウザにキーボードショートカットを追加します。

    システム設定|キーボード|ショートカット|ランチャー|ウェブブラウザを起動

  5. GNOMEシェルの再起動:Alt r実行ダイアログを表示するにはクリックします。を入力しrてタップしますEnter

これで、単一のキーボードショートカットを使用してブラウザを起動/実行できます。

答え2

同様のツールがあります。xdoツール。 wmctrlと非常に似ているようです。おそらく後者と比較して最大の利点は、文字列の代わりにX Window IDを使用してウィンドウを処理することです。これがあなたのケースにとって重要かどうかはわかりません。ただし、Chromeを使用してタイトルにMozillaを含むウェブサイトを開いたとすると、ウィンドウのタイトルでアプリを識別できない可能性があります。

関連情報