web-dev-qa-db-ja.com

「Super + ArrowDown」をマッピングして、ウィンドウがフォーカスされていてウィンドウが全画面表示されていないときにウィンドウを最小化します

Ubuntu 19.10に条件付きキーマッピングを追加したいと思います。

通常、ウィンドウが全画面モードで、 super+arrowDown ウィンドウモード(またはそれが呼び出されたもの)に入ります。

ウィンドウが「ウィンドウモード」になっているとき、次のコマンドを使用してウィンドウを最小化できるようにしたいのです(そのときだけ)。 super+arrowDown その上に。

のマッピングに影響を与えずにそのようなショートカットを作成することは可能ですか? super+arrowDown 全画面ウィンドウで?

3
baxbear

次のBashスクリプトを Super+Down ショートカット。

#!/bin/bash
active_window_id=$(printf 0x%x "$(xdotool getactivewindow)")
window_state=$(xprop -id "$active_window_id" | grep "_NET_WM_STATE(ATOM)")

if [[ "$window_state" == *"MAXIMIZED"* ]]; then
    wmctrl -ir "$active_window_id" -b remove,maximized_vert,maximized_horz
else
    xdotool windowminimize "$active_window_id"
fi

スクリプトはxdotoolwmctrlおよびxpropを使用します。次のコマンドを実行して、これらがコンピューターにインストールされていることを確認します。

Sudo apt install xdotool wmctrl x11-utils

スクリプトを保存して実行可能にするには:

  • 任意のテキストエディタを開き、スクリプトの内容をコピーして貼り付けます。

  • /home/user/path/to/script.shなどの任意の名前を付けて、コンピューターのどこかにスクリプトを保存します。

  • 次のコマンドを実行して、保存したスクリプトに実行権限を付与します。

    chmod u+x /home/user/path/to/script.sh
    

スクリプトをショートカットに追加するには:

  • 開く設定デバイスキーボード

  • Restore windowショートカットを見つけてクリックし、別のショートカットに設定します。たとえば、 Super+BSetを押します。これを行う必要があります。そうしないと、使用できなくなります。 Super+Down スクリプト用。
    注:ご希望の場合 Super+Down デフォルトの動作にしてスクリプトを別のショートカットに設定するには、この手順をスキップし、次の手順に従って任意のショートカットを追加します。

  • キーボードショートカットウィンドウの下部にある[+]アイコンをクリックして、新しいショートカットを追加します。

  • ショートカットに任意の名前を付けます(例:「代替案を最小化」)。Commandフィールドにスクリプト(/home/user/path/to/script.sh)へのフルパスを追加し、追加するショートカットを設定... Super+Down ショートカットとして、ショートカットウィンドウを閉じます(下のスクリーンショットを参照)。

    Shortcut setting

Super+Down これであなたが望む振る舞いをするはずです!

1
user3140225

それだけを変更するには、おそらく独自の拡張機能を作成する必要があります。ただし、他のいくつかのことを行う以外に、希望どおりに動作する拡張機能があります。 FmstratによるGnomeシェル拡張 WinTile:Windows 10 window tileing for GNOME です。

それはあなたが望むものをどこでも正確に行います Super+Down ウィンドウを最大化モードから外し、次に押すとウィンドウが最小化されます。

それは余分なことをしますが、彼らはあなたがこれらを好きかもしれません。標準のUbuntuのように左右に並べることができます。 Super+Left/Right キー。さらに、 Super+Up/Down タイル張りの半分のウィンドウでは、それを4分の1に並べます。

1
vanadium