すべてのビューポートでアプリケーションのウィンドウを切り替えるキーの組み合わせ

すべてのビューポートでアプリケーションのウィンドウを切り替えるキーの組み合わせ

Alt- `Unity の現在のビューポート内のアプリケーションのウィンドウを切り替えるために使用されます。

すべてのビューポートでアプリケーションのウィンドウを切り替える別のキーの組み合わせはありますか?

現在のビューポートでアプリケーションのウィンドウを切り替えるAlt-のデフォルトの動作を変更したくありません。`

Ubuntu 14.04とUnityを使用しています。

答え1

Pineau の回答に触発されて、私はそれを実現するための汚いトリックを見つけました。1つのビューポート内のアプリケーション ウィンドウを切り替えるにはAlt+ を保持し`、(たとえば)すべてのビューポートのアプリケーション ウィンドウを切り替えるにはAlt+ を使用します。1

見た目上の小さな欠点としては、設定の変更にほんの一瞬かかるため、応答性が少し劣るという点があります。ただし、実際にはほとんど気付かないでしょう。

  1. インストールxdotool

    sudo apt-get install xdotool
    
  2. 次のスクリプトを空のファイルにコピーし、次のように保存します。switch.sh

    #!/bin/bash
    
    dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport false
    sleep 0.2
    xdotool keydown alt key 0x60
    dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport true
    sleep 1
    
  3. スクリプトを実行するためのキーの組み合わせを設定します: 。他のキーに近いので、+ をSystem Preferences > Keyboard > Shortcuts > Custom Shortcuts選択します。Alt1

    Altこれで、 + を使用し1て (たとえば) gedit のすべてのウィンドウを切り替えることができます。

    ここに画像の説明を入力してください

    またはAlt+ を押す`と、現在のワークスペースの gedit ウィンドウのみを切り替えます。

    ここに画像の説明を入力してください

注記:

  1. スクリプトでは、 の上のキーTabは に設定されていますkey 0x60。これは他のレイアウトでは異なる場合があります。動作しない場合は、ターミナルで を実行しxev、 を押してからReturn、上のキーをタブで押します。出力で、 のような文字列を探します(keysym 0x60, grave)。keysym 値は、(script-) 行で必要な値です。

    xdotool keydown alt key 0x60
    
  2. および の値によりsleep 0.2sleep 1スクリプトは私のシステムでは正常に動作しますが、より高速なシステムでは最適化 (reduce) の影響を受ける可能性があります。

より多くのオプション

同様に、すべてのキーを切り替えるキーの組み合わせを設定することもできます。アプリケーションウィンドウの上すべてのビューポートスクリプトは次のようになります。

#!/bin/bash

dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport false
sleep 0.2
xdotool keydown alt key 0xff09
dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport true
sleep 1

Altたとえばこれに+ を設定するとQ、すべてのオプションの適切なセットが得られます。

Alt+` 切り替える現在のアプリケーションの窓がオン現在のビューポート

Alt+1 切り替える現在のアプリケーションの窓がオンすべてのビューポート

Alt+Tab 切り替えるすべてのアプリケーション窓がオン現在のビューポート

Alt+Q 切り替えるすべてのアプリケーション窓がオンすべてのビューポート

ここに画像の説明を入力してください

Alt+ Tab: すべてのアプリケーションウィンドウを切り替える現在のビューポート

ここに画像の説明を入力してください

Alt+ Q: すべてのビューポート上のすべてのアプリケーションウィンドウを切り替える

答え2

一般的なソリューションwmctrl


概要

以下のスクリプトは、すべてのEWMH準拠ウィンドウ マネージャー (例: xfwm4、openbox、kwin、compiz...)。wmctrlおよび を使用しますxprop。これらは、次の方法でインストールできます。

sudo apt-get install x11-utils wmctrl

インストール

次の文章をコピーして保存しますsimple-window-switcher:

#!/bin/bash

# based on a script by Robert Steiniger
# (http://lars.st0ne.at/blog/switch%20between%20windows%20within%20the%20same%20application)

Usage="
  Title:        simple-window-switcher 0.1
  Description:  switch between all windows of active application
  Author:       Copyright Glutanimate 2014 (https://github.com/Glutanimate)
  License:      GNU GPLv3
  Usage:        $(basename "$0") [-g|-l|-h]
                -g: global window switching (across all workspaces)
                -l: local window switching (current workspace)
                -h: display this help message

                If no argument is provided window switching will be set to global.
"

while getopts "lgh" OPTIONS; do
  case $OPTIONS in
    l ) Fields="3-4"
        ;;
    g ) Fields="4"
        ;;
    h ) echo "$Usage"
        exit 0
        ;;
   \? ) echo "$Usage"
        exit 1
        ;;
  esac
done

ActiveWinID="$(xprop -root | sed -n 's/_NET_ACTIVE_WINDOW(WINDOW): window id # 0x//p')"
# fields 3-4: <desktop number> <window class>
ActiveWinClass="$(wmctrl -xl | grep "$ActiveWinID" | cut -d" " -f${Fields})"
WindowList="$(wmctrl -xl | grep "$ActiveWinClass" | cut -d" " -f1)"
NextWindow="$(echo "$WindowList" | grep -A1 "$ActiveWinID" | sed -n 2p)"

if [[ -z "$NextWindow" ]]; then
  NextWindow="$(echo $WindowList | head -n 1)"
fi

wmctrl -i -a "$NextWindow"

スクリプトを実行可能としてマークし、任意の場所に保存します (PATH 内、たとえば/usr/local/binまたは 内が望ましい~/bin)。

使用法

ウィンドウ マネージャーのキーボード ショートカット メニューを使用して、simple-window-switcher任意のホットキーを割り当てます。次のパラメーターを使用して、スクリプトの動作を制御できます。

  • -g: グローバルウィンドウ切り替え(すべてのワークスペースにわたって)
  • -l: ローカルウィンドウの切り替え (現在のワークスペース)。Unity/Compiz では動作しない可能性があります (詳細についてはコメント セクションを参照してください)

答え3

ターミナルを開き、次のコマンドを入力します。

dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport false

あるいは、Unity Tweak Tool をインストールすることもできます。

sudo apt-get install unity-tweak-tool
unity-tweak-tool

次に、すべてのワークスペースのウィンドウを切り替えるスイッチャータブのオプション:

ここに画像の説明を入力してください

関連情報