web-dev-qa-db-ja.com

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

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

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

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

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

11
Kadir

ピノーの答えに触発されて、私はそれを成し遂げるために汚いトリックを見つけました: Alt+` 1つのビューポートでアプリケーションウィンドウを切り替えるため、および(たとえば) 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を設定します。私は選ぶ Alt+1、もう一方に近いので。

    今、あなたはどちらかを使用することができます Alt+1 (たとえば)geditのすべてのウィンドウを切り替えるには:

    enter image description here

    または Alt+` 現在のワークスペースのみのgeditウィンドウを切り替えるには:

    enter image description here

注:

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

    xdotool keydown alt key 0x60
    
  2. sleep 0.2およびsleep 1の値は、システムでスクリプトを正常に動作させますが、より高速なシステム(削減)の最適化の対象になる場合があります。

その他のオプション

同様に、すべてのapplication windows on all viewportsを切り替えるキーの組み合わせを設定できます。スクリプトは次のようになります。

#!/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 すべてのアプリケーション上のウィンドウを切り替えるすべてのビューポート

enter image description here

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

enter image description here

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

7
Jacob Vlijm

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"

スクリプトを実行可能としてマークし、任意の場所に保存します(/usr/local/binまたは~/binなどのPATHに保存することをお勧めします)。

使用法

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

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

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

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

次に、Switcherタブですべてのワークスペースのウィンドウを切り替えるオプションを有効にします。

enter image description here

4
Sylvain Pineau