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


11

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

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

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

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


ビューポイントとは、Workspaceを意味しますか?
ティム14

2
@Tim askubuntu.com/questions/44102/を参照してください
ジェイコブVlijm 14

回答:


7

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。私はAlt+ を選択します1。これは他の1つに近いからです。

    これで、いずれかの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スクリプトが正常に機能しますが、システムの高速化(削減)の最適化の対象になる場合があります。

より多くのオプション

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

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


5

を使用した一般的なソリューション 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では動作しない可能性があります(詳細についてはコメントセクションを参照)

@Glutanimate様、-lまた他のワークスペースのウィンドウに切り替えます。
カディール14

@Kadirそれは奇妙です。私のシステムにはありません。時間があれば、pastebin.comのwmctrl -xlようなサイトに出力を投稿し、ここにリンクしてください。
グルタニメート14

親愛なる@Glutanimateは、ここにある:pastebin.com/iJBAZ5a7
カディル

@Kadirありがとう!Unity / Compizがワークスペース情報を適切に公開していないように見えるため、wmctrlはそれをピックアップするのに問題があります(そのため、2番目の列にはゼロのみが表示されます。これはワークスペース番号です)。それがバグなのか、そのように設計されたのかはわかりません。LXDEを使用していたため、これに気付きませんでした。答えにメモを追加します。
グルタニメート14

4

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

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

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

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


現在のビューポートでアプリケーションのウィンドウを切り替えるAlt-`のプロパティを保持したい。Ctrl-Alt-`のような別のショートカットが必要です。これは、すべてのビューポートでアプリケーションのウィンドウを切り替えます。
カディール14

1
@Kadir残念ながら、dconfプロパティは両方の設定の共存を許可しません。どちらかの動作です。
シルヴァンピノー14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.