web-dev-qa-db-ja.com

一度に複数のウィンドウを最小化する

Ubuntu 18.04とGNOMEを使用しています。ウィンドウの1つが最小化されたときに他のウィンドウもすべて最小化され、ウィンドウが他のすべてのウィンドウも復元されるような方法で複数のウィンドウを関連付けることができる機能があるかどうか知りたいのですが。

つまり私は複数のターミナルウィンドウで作業しています。ターミナルグループを最小化すると、そのグループに属する他のすべてのターミナルウィンドウも最小化されるように、ターミナルをNグループにグループ化したいと考えています。

次の手順は、$ XDG_SESSION_TYPE x11専用です。

ノート:

  • ユニバースリポジトリにあるxdotoolを使用します。
  • これは、各グループのタイトルに共通の文字列があるように(他の開いているウィンドウにはない)、ターミナルウィンドウを分類していることを前提としています。
  • 以下の例では、2つのグループがあり、それぞれに3つのgnome-terminalウィンドウが開いています:
    • 地球1
    • 地球2
    • Earth 3および
    • 風1
    • 風2
    • 風3

重要:
ターミナルウィンドウのタイトルが変更されないようにするために、〜/ .bashrcの次の行を最初にコメント化する必要がありました。これが行われない場合、タイトルは設定したタイトルを保持するのではなく、現在の作業ディレクトリを反映します。

case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

私は使用して各ウィンドウに名前を付けました

echo -en "\033]0;New title\a"

ここで使用されているxdotoolは、次を使用して名前が付けられたウィンドウを処理しないことに注意してください

wmctrl -r :ACTIVE: -N "New title"

完全な説明については、 ターミナルウィンドウのタイトルの設定:wmctrlとxdotool の回答を参照してください。

次のアニメーションgifは、画像の画面上部にある別の「マスター」ターミナルを使用して、特定のウィンドウグループを最小化または最大化するコードを発行する方法を示しています。

そのために、次の関数を〜/ .bashrcに追加しました。

mmm(){
    echo "enter KEYWORD" && read KEYWORD && xdotool search --name --onlyvisible "$KEYWORD" > /tmp/tmp.txt
}

xwn() {
    while read p; do xdotool windowminimize "$p"; done </tmp/tmp.txt
}

xwx() {
    while read p; do xdotool windowactivate "$p"; done </tmp/tmp.txt
}
  • mmmは、xdotoolを使用して、ユーザーが提供した文字列「KEYWORD」を検索します。この例の「earth」は、対象となるターミナルウィンドウのoneグループに共通です。 xdotoolは、一時ファイルに送信されるウィンドウ識別子を生成します。
  • xwnは、xdotoolwindowminimizeアクションを使用して、一時ファイルで指定されたウィンドウを最小化します。
  • xwxは、xdotoolwindowactivateアクションを使用して、一時ファイルで指定されたウィンドウを最大化します。
  • 他に何が行われたかによっては、mmmまたはxwnの直前にxwxを実行する必要がある場合があることに注意してください。

Using xdotool to minimize/maximize groups of terminal windows


mogrify -type Grayscale -depth 7 *.pngは、gifのサイズを縮小します。

4
DK Bose

私はあなたが探しているものを正確に提供するものは何も知りませんが、次の手順に従うことでこのちょっと醜い回避策を試すことができます。

  1. Ubuntuドックがウィンドウを表示するように設定 現在のワークスペースからのみ
  2. クリックで最小化を有効にする Ubuntuドックで有効にします。これを実行すると、アイコンをクリックして、現在のワークスペースから特定のアプリケーションに属するすべてのウィンドウを最小化または復元できます。ドックで。
  3. 別のワークスペースを使用 ウィンドウをグループ化します。ワークスペース1の最初のグループに属するすべてのターミナルウィンドウを保持し、ワークスペース2の2番目のグループを続けます。
3
pomsky

Ubuntu 19.04私はこのスクリプトをテストしていません。これらのキーストロークを自由に修正してください。スクリプトを使用して、ウィンドウと他のウィンドウを名前リストから選択し、最小化キーストロークをそれらに送信することにより、ウィンドウを最小化できます。残念ながら、Gnomeキーボードショートカットに最小化ウィンドウショートカットが表示されません。このスクリプトを実行するには、Gnomeにショートカットキーを設定します。 keydown alt + space release then m(または最小化が私のウィンドウの最初のmin/max/moveリストで最初に入力される)でもトリックが得られますが、xdotoolキーストロークはここで役立ちます https://www.linux.org/threads /xdotool-keyboard.10528/

#!/bin/bash
names="Firefox Thunderbird Kate Konsole"
echo "$names"
for name in $names
 do
    #         id=$(xdotool search --onlyvisible --name 
"$name")
             id=$(xdotool search --desktop 0 --class  
"$name")
    echo $name $id
if  [ "x$id" = "x" ]
    then
        echo " window not found for "$name""
    else
          xdotool windowactivate --sync $id key  -- 
 clearmodifiers  --delay 100 keydown alt+space 
 xdotool windowactivate --sync $id key  -- 
 clearmodifiers  --delay 100 key enter
     # you can set sleep by a lesser value here like a 
  fraction 0.1   
  sleep 1
  fi
done
0
pierrely