web-dev-qa-db-fra.com

Combinaison de touches pour basculer entre les fenêtres d'une application dans toutes les fenêtres

Alt-` est utilisé pour basculer entre les fenêtres d'une application dans la fenêtre actuelle dans Unity.

Existe-t-il une autre combinaison de touches permettant de basculer d'une fenêtre d'application à l'autre dans toutes les fenêtres?

Je ne veux pas changer le comportement par défaut de Alt-`, qui bascule entre les fenêtres d’une application dans la fenêtre actuelle.

J'utilise Ubuntu 14.04 et Unity.

11
Kadir

Inspiré par la réponse de Pineau, j’ai trouvé un sale tour pour le faire: garder Alt+` pour passer d'une fenêtre d'application à une autre, et (par exemple) Alt+1 pour basculer entre les fenêtres d’application dans toutes les fenêtres.

L'inconvénient mineur de l'aspect esthétique est que la réactivité est un peu moins précise, car les réglages nécessitent une fraction de seconde pour changer. En pratique cependant, vous remarquerez à peine.

  1. installer xdotool:

    Sudo apt-get install xdotool
    
  2. Copiez le scipt suivant dans un fichier vide et enregistrez-le sous le nom 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. définissez une combinaison de touches pour exécuter le script: System Preferences > Keyboard > Shortcuts > Custom Shortcuts. je choisis Alt+1, puisqu'il est proche de l'autre.

    Maintenant, vous pouvez utiliser soit Alt+1 pour basculer entre toutes les fenêtres de (par exemple) gedit:

    enter image description here

    ou Alt+` pour basculer entre les fenêtres gedit de l'espace de travail currect uniquement:

    enter image description here

note:

  1. Dans le script, la clé au-dessus du Tab est réglé sur key 0x60. Cela pourrait être différent sur d'autres lauyouts. Si cela ne fonctionne pas, lancez dans un terminal xev, puis appuyez sur Return, puis la touche ci-dessus. Dans la sortie, recherchez une chaîne telle que (keysym 0x60, Grave). La valeur de keysym est la valeur dont vous avez besoin dans la ligne (script-):

    xdotool keydown alt key 0x60
    
  2. Les valeurs sleep 0.2 et sleep 1 permettent au script de fonctionner correctement sur mon système, mais elles peuvent être optimisées pour des systèmes plus rapides (réduire).

Plus d'options

De même, vous pouvez définir une combinaison de touches pour basculer entre toutes les fenêtres d'application sur toutes les fenêtres d'affichage :

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

Si vous définissez par exemple Alt+Q pour cela, vous avez un bel ensemble de toutes les options:

Alt+` Basculer entre les fenêtres de l'application actuelle sur la fenêtre d'affichage actuelle

Alt+1 Basculer entre les fenêtres de l'application actuelle sur toutes les fenêtres

Alt+Tab Basculer entre toutes les fenêtres de l'application sur la fenêtre courante

Alt+Q Basculer entre toutes les fenêtres d'applications sur toutes les fenêtres

enter image description here

Alt+Tab : Bascule entre toutes les fenêtres d’application sur la fenêtre courante

enter image description here

Alt+Q: Basculer entre toutes les fenêtres d'application dans toutes les fenêtres

7
Jacob Vlijm

Solution générique utilisant wmctrl


Vue d'ensemble

Le script suivant doit être compatible avec tous les gestionnaires de fenêtres compatibles EWMH (par exemple, xfwm4, openbox, kwin, compiz ...). Il utilise wmctrl et xprop, qui peut être installé avec:

Sudo apt-get install x11-utils wmctrl

Installation

Copiez et enregistrez le passage suivant sous le nom 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"

Marquez le script comme exécutable et enregistrez-le où bon vous semble (de préférence dans votre PATH, par exemple /usr/local/bin ou ~/bin).

Utilisation

Utilisez le menu des raccourcis clavier de votre gestionnaire de fenêtres pour attribuer simple-window-switcher à un raccourci clavier de votre choix. Vous pouvez utiliser les paramètres suivants pour contrôler le comportement du script:

  • -g: commutation de fenêtre globale (dans tous les espaces de travail)
  • -l: commutation de fenêtre locale (espace de travail actuel); peut ne pas fonctionner avec Unity/Compiz (voir la section commentaire pour plus d'informations)
5
Glutanimate

Ouvrez un terminal et tapez la commande suivante:

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

Sinon, vous pouvez installer l'outil Unity Tweak:

Sudo apt-get install unity-Tweak-tool
unity-Tweak-tool

Puis activez l’option Basculer entre les fenêtres de tous les espaces de travail dans l’onglet Switcher:

enter image description here

4
Sylvain Pineau