it-swarm.com.de

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 zum Wechseln zwischen den Fenstern einer Anwendung in allen Ansichtsfenstern?

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

Ich benutze Ubuntu 14.04 und Unity.

11
Kadir

Inspiriert von Pineaus Antwort, fand ich einen schmutzigen Trick, um es zu erledigen: behalten Alt+` zum Umschalten zwischen Anwendungsfenstern in einem Ansichtsfenster und (zum Beispiel) Alt+1 um in allen Ansichtsfenstern zwischen Anwendungsfenstern zu wechseln.

Ein kleiner kosmetischer Nachteil ist, dass das Ansprechverhalten etwas ungenauer ist, da das Ändern der Einstellungen nur einen Bruchteil einer Sekunde dauert. In der Praxis werden Sie es jedoch kaum bemerken.

  1. install xdotool:

    Sudo apt-get install xdotool
    
  2. Kopieren Sie den folgenden Code in eine leere Datei und speichern Sie ihn als 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. 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 nahe kommt.

    Jetzt können Sie entweder verwenden Alt+1 So wechseln Sie zwischen allen Fenstern von (zum Beispiel) gedit:

    enter image description here

    oder Alt+` So wechseln Sie nur zwischen gedit-Fenstern des richtigen Arbeitsbereichs:

    enter image description here

Anmerkung:

  1. Im Skript steht der Schlüssel über dem Tab ist auf key 0x60 eingestellt. Dies kann bei anderen Lauyouts anders sein. Wenn dies nicht funktioniert, führen Sie ein Terminal xev aus und drücken Sie dann Return, dann die Taste über der Registerkarte. 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. Die Werte von sleep 0.2 und sleep 1 sorgen dafür, dass das Skript auf meinem System einwandfrei funktioniert, sie können jedoch für schnellere Systeme optimiert werden (Reduzierung).

Weitere Optionen

Ebenso können Sie eine Tastenkombination festlegen, um zwischen allen zu wechseln Anwendungsfenster on alle Ansichtsfenster das 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 zum Beispiel festlegen Alt+Q Dafür haben Sie alle Optionen:

Alt+` Wechseln zwischen aktuellen Anwendungen Fenstern in aktuellen Ansichtsfenstern

Alt+1 Wechseln zwischen aktuellen Anwendungen Fenstern in allen Ansichtsfenstern

Alt+Tab Wechseln zwischen alle Anwendungen Fenstern in aktuelles Ansichtsfenster

Alt+Q Zwischen alle Anwendungen Fenstern wechseln alle Ansichtsfenster

enter image description here

Alt+Tab : Wechseln Sie zwischen allen Anwendungsfenstern in aktuelles Ansichtsfenster

enter image description here

Alt+Q: Wechselt in allen Ansichtsfenstern zwischen allen Anwendungsfenstern

7
Jacob Vlijm

Generische Lösung mit wmctrl


Übersicht

Das folgende Skript sollte mit allen EWMH-konformen Fenstermanagern kompatibel sein (z. B. xfwm4, openbox, kwin, compiz ...). Es verwendet wmctrl und xprop, die installiert werden können mit:

Sudo apt-get install x11-utils wmctrl

Installation

Kopieren Sie die folgende Passage und speichern Sie sie als 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/bin oder ~/bin).

Verwendung

Verwenden Sie das Tastaturkürzelmenü Ihres Fenstermanagers, um einem Hotkey Ihrer Wahl simple-window-switcher zuzuweisen. Mit den folgenden Parametern können Sie das Verhalten des Skripts steuern:

  • -g: globale Fensterumschaltung (über alle Arbeitsbereiche)
  • -l: lokale Fensterumschaltung (aktueller Arbeitsbereich); funktioniert möglicherweise nicht mit Unity/Compiz (weitere Informationen finden Sie im Kommentarbereich)
5
Glutanimate

Ö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 die Option In allen Arbeitsbereichen zwischen Fenstern wechseln auf der Registerkarte Switcher:

enter image description here

4
Sylvain Pineau