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.
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.
installer xdotool
:
Sudo apt-get install xdotool
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
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:
ou Alt+` pour basculer entre les fenêtres gedit de l'espace de travail currect uniquement:
note:
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
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
Alt+Tab : Bascule entre toutes les fenêtres d’application sur la fenêtre courante
Alt+Q: Basculer entre toutes les fenêtres d'application dans toutes les fenêtres
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)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: