Alt- `se utiliza para cambiar entre las ventanas de una aplicación en la ventana gráfica actual en Unity.
¿Existe otra combinación de teclas para cambiar entre las ventanas de una aplicación en todas las ventanas gráficas?
No quiero cambiar el comportamiento predeterminado de Alt- `, que consiste en cambiar entre las ventanas de una aplicación en la ventana gráfica actual.
Estoy usando Ubuntu 14.04 y Unity.
Respuesta1
Inspirándome en la respuesta de Pineau, encontré un truco sucio para hacerlo: mantenga Alt+ `para cambiar entre ventanas de aplicaciones en una ventana gráfica y (por ejemplo) Alt+ 1para cambiar entre ventanas de aplicaciones en todas las ventanas gráficas.
El menor inconveniente cosmético es que la capacidad de respuesta es un poco menos precisa, ya que la configuración necesita una fracción de segundo para cambiar. Sin embargo, en la práctica apenas lo notarás.
instalar
xdotool
:sudo apt-get install xdotool
Copie el siguiente fragmento en un archivo vacío y guárdelo como
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
establezca una combinación de teclas para ejecutar el script:
System Preferences > Keyboard > Shortcuts > Custom Shortcuts
. Elijo Alt+ 1, ya que está cerca del otro.Ahora puedes usar Alt+ 1para cambiar entre todas las ventanas de (por ejemplo) gedit:
o Alt+ `para cambiar entre ventanas de gedit solo del espacio de trabajo actual:
nota:
En el script, la clave encima de Tabestá configurada en
key 0x60
. Esto podría ser diferente en otros diseños. En caso de que no funcione, ejecútelo en una terminalxev
, luego presione Returny luego la tecla sobre la pestaña. En el resultado, busque una cadena como(keysym 0x60, grave)
. El valor de keyym es el valor que necesita en la línea (script-):xdotool keydown alt key 0x60
Los valores de
sleep 0.2
ysleep 1
hacen que el script funcione bien en mi sistema, pero pueden estar sujetos a optimización para sistemas más rápidos (reducir).
Mas opciones
Del mismo modo, puede configurar una combinación de teclas para cambiar entre todosventanas de aplicacionesentodas las ventanas gráficasel guión entonces sería:
#!/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 configura, por ejemplo Alt+, Qpara esto, tendrá un buen conjunto de todas las opciones:
Alt+ ` Cambiar entreaplicaciones actualesventanas encendidasventana gráfica actual
Alt+ 1 Cambiar entreaplicaciones actualesventanas encendidastodas las ventanas gráficas
Alt+ Tab Cambiar entretoda la aplicaciónventanas encendidasventana gráfica actual
Alt+ Q Cambiar entretoda la aplicaciónventanas encendidastodas las ventanas gráficas
Alt+ Tab: Cambiar entre todas las ventanas de aplicaciones activadasventana gráfica actual
Alt+ Q: Cambiar entre todas las ventanas de la aplicación en todas las ventanas gráficas
Respuesta2
Solución genérica usandowmctrl
Descripción general
El siguiente script debería ser compatible con todosCumple con EWMHadministradores de ventanas (por ejemplo, xfwm4, openbox, kwin, compiz...). Utiliza wmctrl
y xprop
, que se puede instalar con:
sudo apt-get install x11-utils wmctrl
Instalación
Copie y guarde el siguiente pasaje como 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"
Marque el script como ejecutable y guárdelo en cualquier lugar que desee (preferiblemente en su RUTA, por ejemplo, /usr/local/bin
o ~/bin
).
Uso
Utilice el menú de atajos de teclado de su administrador de ventanas para asignar simple-window-switcher
una tecla de acceso rápido de su elección. Puede utilizar los siguientes parámetros para controlar cómo se comporta el script:
-g
: cambio de ventana global (en todos los espacios de trabajo)-l
: cambio de ventana local (espacio de trabajo actual); Es posible que no funcione con Unity/Compiz (consulte la sección de comentarios para obtener más información)
Respuesta3
Abra una Terminal y escriba el siguiente comando:
dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport false
Alternativamente, puedes instalar la herramienta Unity Tweak:
sudo apt-get install unity-tweak-tool
unity-tweak-tool
Luego habilite elCambiar entre ventanas en todos los espacios de trabajoopción en la pestaña Conmutador: