開いているすべてのターミナルを前面に表示するショートカット


17

Webページまたはエディターに移動した後、開いているすべての端末を元の位置に前面に戻す方法はありますか?端末アイコンをクリックしてから、それぞれを個別に戻すのは少し面倒です。

ありがとう!

例:

  • 事前ショートカット:

プレイメージショートカット


  • 近道:

ポストイメージショートカット


1
非常に興味深い質問に+1 すると、関連のない質問に対するこの回答が役立つことがあります。既存のGUIツールがない場合、devilspieプログラムはこの問題に関連する可能性があります。
evilsoup

アーカイブの場合:gist.github.com/psi-4ward/18c3a596d28a3cfa772101af755545df最近使用したアプリケーションを尊重するスクリプト
Psi

回答:


9

Alt+ Tabを押してウィンドウを切り替え、Alt+ Shift+ Tabを押してウィンドウを切り替えます。このショートカットは、ほぼすべてのグラフィカルオペレーティングシステムで機能するようになっています。Yowは、同じ目的でSuper+ Wキーと矢印キーを使用することもできます。

1つのターミナルウィンドウを前面に持って来たら、Alt+ ~を押して他のすべてのターミナルウィンドウを前面に1つずつ持ってきます。

ウィンドウに切り替える


開いているすべてのターミナルを自動的に前面に表示するには(前に説明したように1つずつではありません)、次のスクリプトのキーボードショートカット追加する必要があります(スクリプトはAdobe回答から取られ、スクリプトのバージョンが機能しないことを考慮して改善されました)私のために):

#!/bin/bash

if [ $# -ne 1 ];then
  echo -e "Usage: `basename $0` PROGRAM_NAME\n
           For example:\n\t
           '`basename $0` gnome-terminal' for Terminal\n\t
           '`basename $0` firefox' for Firefox\n\t
           '`basename $0` chromium-browser' for Chromium\n\t..."
  exit 1
fi

pids=" $(pidof $@) "

if [ "$pids" = "  " ]; then # the string "  " contain two spaces
    echo "There is no program named '$@' opened at the moment."
    exit 1
fi

wmctrl -lp | while read identity desktop_number PID window_title; do 
    if [ "${pids/ $PID }" != "$pids" ]; then
        wmctrl -ia $identity
    fi
done

スクリプトを実行可能にすることを忘れないでください:

chmod +x /path/to/script/script_name

ターミナルでスクリプトをテストした後、以下を確認する必要があります。


3
感謝しますが、それは基本的に端末アイコンをクリックして、それぞれを選択して前面に表示することと同じです。私はすべての開いているターミナルを前面に移動するショートカットを意味します。たとえば、geditでコードを記述し、別の端末でログの出力を見ながら1つの端末でコンパイルしたい場合があります。
トムセレク

...うーん、誰かがちょうどここに嘘をついた...「スクリーンショットは、1秒で撮影されます」
カルロスCampderrós

1
@Tomcelic私の新しい編集をご覧ください。アドビ回答方法(私にとっては機能していません)を投稿している間に、私はそのようなスクリプトに取り組んでいたと言いたいので、これを間違った方法で受け取らないでください。
ラドゥラデアヌ

8

以下は、タイトルがARGに一致するすべてのウィンドウを前面に表示する小さなbashスクリプトです。

bring-all-windows.bash ARG

スクリプト:

#!/bin/bash

Program=$@

wmctrl -l | while read Window; do
    if [[ "$Window" == *"$Program"* ]]; then
        echo "DEBUG: I bring $Window"
        code=`echo "$Window" | cut -f 1 -d " "`
        wmctrl -i -a $code
    fi
done

バインドできます

bring-all-windows.bash Terminal

ホットキー(ログインシェルPATHにスクリプトを配置することを忘れないでください、またはそれに完全なパスを書いてください)。

スクリプトwmctrlをインストールする必要があります。

編集

ターミナルから何かを実行するには、スクリプトを配置したディレクトリに移動してから、

chmod +x bring-all-windows.bash
./bring-all-windows.bash Terminal

ターミナルから確実に機能することを確認したら、それをホットキーにバインドして、フルパスを指定してください。ホットキーとスクリプトへのフルパスで動作することが確実な場合は、そのディレクトリをログインシェルPATHに追加してみて、そのように動作するかどうかを確認してください。


これはいいですね!すぐに試してみます。私はまだこれにネイティブな方法がない理由について少し困惑しています。それは自然なはずです。
トムセレク

@Tomcelic:wmctrland がありますbash:それは自然です。
アドビ

本当ですが、それはネイティブではありません:P
トムセレック

このスクリプトの使用方法を実行してみたいと思う可能性はありますか?スクリプトを作成してホームフォルダーに保存し、そのパスを/ etc / shellsに追加しました。また、bring_terminals_forwardという名前のキーボード設定にショートカットを追加しました。コマンドはbash /home/michael/Scripts/bring-all-windows.bashですターミナル
TomSelleck

実行中のターミナルからスクリプトを直接実行しても動作しないようです... geditなどのプログラムでは動作しますが、ターミナルでは動作しません
TomSelleck

0

別の方法はを使用することxdotoolです。最初にインストールする必要があるためsudo apt-get install xdotool、必須です。

xdotool search --class "terminal" windowactivate %@
xdotool search --name "braiam@bt" windowactivate %@

最初に呼び出されるバイナリを探し*terminal*、2番目にtitleを持つウィンドウを探します*braiam@bt*。それをbashスクリプトに入れると:

#!/bin/bash

set -e
program=$@

xdotool search --class '$program' windowactivate %@
xdotool search --name '$program' windowactivate %@

これについては、xdotoolマニュアルで詳しく知ることができます。


0

Ubuntuデスクトップでは、デスクトップの左側の余白にアイコンが垂直に配置されています。端末アイコンを左クリックすると、すべての端末ウィンドウが表示されます。次に、作業するものを選択します。端末アイコンを右クリックすると、メニューのリストが表示され、上部に「新しい端末」が表示され、リストの下部に開いているすべての端末が表示されます。どちらをアクティブ端末にするかを選択できます。

この同じ方法は、ブラウザなどの他のアプリケーションでも機能するはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.