Tastenkombination zum Wechseln zwischen den Fenstern einer Anwendung in allen Ansichtsfenstern

Tastenkombination zum Wechseln zwischen den Fenstern einer Anwendung in allen Ansichtsfenstern

Alt`wird verwendet, um in Unity zwischen den Fenstern einer Anwendung im aktuellen Ansichtsfenster zu wechseln.

Gibt es eine andere Tastenkombination, um in allen Ansichtsfenstern zwischen den Fenstern einer Anwendung zu wechseln?

Ich möchte das Standardverhalten von Alt- `, also das Wechseln zwischen den Fenstern einer Anwendung im aktuellen Ansichtsfenster, nicht ändern.

Ich verwende Ubuntu 14.04 und Unity.

Antwort1

Inspiriert durch Pineaus Antwort habe ich einen schmutzigen Trick gefunden, um dies zu bewerkstelligen: Halten Sie Alt+ `gedrückt, um zwischen Anwendungsfenstern in einem Ansichtsfenster zu wechseln, und (zum Beispiel) Alt+ 1, um zwischen Anwendungsfenstern in allen Ansichtsfenstern zu wechseln.

Ein kleiner kosmetischer Nachteil ist, dass die Reaktionsfähigkeit etwas ungenauer ist, da die Einstellungen nur den Bruchteil einer Sekunde zum Ändern benötigen. In der Praxis wird man davon allerdings kaum etwas merken.

  1. Installieren xdotool:

    sudo apt-get install xdotool
    
  2. Kopieren Sie das folgende Skript in eine leere Datei und speichern Sie es unterswitch.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. Legen Sie eine Tastenkombination zum Ausführen des Skripts fest: System Preferences > Keyboard > Shortcuts > Custom Shortcuts. Ich wähle Alt+ 1, da es dem anderen am nächsten liegt.

    Jetzt können Sie mit Alt+ 1zwischen allen Fenstern von (beispielsweise) gedit wechseln:

    Bildbeschreibung hier eingeben

    oder Alt+ `, um zwischen Gedit-Fenstern nur des aktuellen Arbeitsbereichs zu wechseln:

    Bildbeschreibung hier eingeben

Notiz:

  1. Im Skript Tabist die Taste über dem auf gesetzt key 0x60. Dies kann bei anderen Layouts anders sein. Falls es nicht funktioniert, führen Sie es in einem Terminal aus xev, drücken Sie dann Returnund dann die Taste über der Tabulatortaste. Suchen Sie in der Ausgabe nach einer Zeichenfolge wie (keysym 0x60, grave). Der Keysym-Wert ist der Wert, den Sie in der (Skript-)Zeile benötigen:

    xdotool keydown alt key 0x60
    
  2. Mit den Werten von sleep 0.2und sleep 1funktioniert das Skript auf meinem System einwandfrei, sie müssen jedoch möglicherweise für schnellere Systeme optimiert werden (reduzieren).

Mehr Optionen

Ebenso können Sie eine Tastenkombination festlegen, um zwischen allenAnwendungsfensterAnalle AnsichtsfensterDas Skript würde dann lauten:

#!/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

Wenn Sie hierfür beispielsweise Alt+ festlegen Q, erhalten Sie einen schönen Satz aller Optionen:

Alt+ ` Wechseln zwischenaktuelle AnwendungFenster anaktuelles Ansichtsfenster

Alt+ 1 Wechseln zwischenaktuelle AnwendungFenster analle Ansichtsfenster

Alt+ Tab Wechseln zwischenalle AnwendungenFenster anaktuelles Ansichtsfenster

Alt+ Q Wechseln zwischenalle AnwendungenFenster analle Ansichtsfenster

Bildbeschreibung hier eingeben

Alt+ Tab: Wechseln zwischen allen Anwendungsfenstern aufaktuelles Ansichtsfenster

Bildbeschreibung hier eingeben

Alt+ Q: Wechseln zwischen allen Anwendungsfenstern in allen Ansichtsfenstern

Antwort2

Generische Lösung mitwmctrl


Überblick

Das folgende Skript sollte mit allen kompatibel seinEWMH-konformFenstermanager (z. B. xfwm4, openbox, kwin, compiz ...). Es verwendet wmctrlund xprop, die mit folgenden Programmen installiert werden können:

sudo apt-get install x11-utils wmctrl

Installation

Kopieren und speichern Sie den folgenden Abschnitt unter 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"

Markieren Sie das Skript als ausführbar und speichern Sie es an einem beliebigen Ort (vorzugsweise in Ihrem PATH, z. B. /usr/local/binoder ~/bin).

Verwendung

Verwenden Sie das Tastenkürzelmenü Ihres Fenstermanagers, um simple-window-switchereinen Hotkey Ihrer Wahl zuzuweisen. Sie können die folgenden Parameter verwenden, um das Verhalten des Skripts zu steuern:

  • -g: globales Fenster-Umschalten (über alle Arbeitsbereiche hinweg)
  • -l: lokales Fensterwechseln (aktueller Arbeitsbereich); funktioniert möglicherweise nicht mit Unity/Compiz (weitere Informationen finden Sie im Kommentarbereich)

Antwort3

Öffnen Sie ein Terminal und geben Sie den folgenden Befehl ein:

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

Alternativ können Sie das Unity Tweak Tool installieren:

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

Aktivieren Sie dann dieWechseln Sie zwischen Fenstern auf allen ArbeitsbereichenOption im Switcher-Tab:

Bildbeschreibung hier eingeben

verwandte Informationen