Alt- `é usado para alternar entre as janelas de um aplicativo na janela de visualização atual no Unity.
Existe outra combinação de teclas para alternar entre as janelas de um aplicativo em todas as janelas de visualização?
Não quero alterar o comportamento padrão de Alt- `, que alterna entre as janelas de um aplicativo na janela de visualização atual.
Estou usando o Ubuntu 14.04 e o Unity.
Responder1
Inspirado pela resposta de Pineau, descobri um truque sujo para fazer isso: mantenha Alt+ `para alternar entre janelas de aplicativos em uma janela de visualização e (por exemplo) Alt+ 1para alternar entre janelas de aplicativos em todas as janelas de visualização.
Uma pequena desvantagem cosmética é que a capacidade de resposta é um pouco menos precisa, já que as configurações precisam de uma fração de segundo para serem alteradas. Na prática, porém, você dificilmente notará.
instalar
xdotool
:sudo apt-get install xdotool
Copie o seguinte script em um arquivo vazio e salve-o 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
defina uma combinação de teclas para executar o script:
System Preferences > Keyboard > Shortcuts > Custom Shortcuts
. Eu escolho Alt+ 1, pois está próximo do outro.Agora você pode usar Alt+ 1para alternar entre todas as janelas do (por exemplo) gedit:
ou Alt+ `para alternar entre as janelas do gedit apenas do espaço de trabalho atual:
observação:
No script, a chave acima de Tabestá definida como
key 0x60
. Isso pode ser diferente em outros layouts. Caso não funcione, execute em um terminalxev
, pressione Return, depois a tecla acima da aba. Na saída, procure uma string como(keysym 0x60, grave)
. O valor do keysym é o valor que você precisa na linha (script-):xdotool keydown alt key 0x60
Os valores de
sleep 0.2
esleep 1
fazem o script funcionar bem no meu sistema, mas podem estar sujeitos a otimização para sistemas mais rápidos (redução).
Mais opções
Da mesma forma, você pode definir uma combinação de teclas para alternar entre todosjanelas de aplicativossobretodas as janelas de visualizaçãoo script seria então:
#!/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
Se você definir, por exemplo Alt, + Qpara isso, terá um bom conjunto de todas as opções:
Alt+ ` Alternar entreaplicativo atualjanelas ligadasjanela de visualização atual
Alt+ 1 Alternar entreaplicativo atualjanelas ligadastodas as janelas de visualização
Alt+ Tab Alternar entretodos os aplicativosjanelas ligadasjanela de visualização atual
Alt+ Q Alternar entretodos os aplicativosjanelas ligadastodas as janelas de visualização
Alt+ Tab: Alternar entre todas as janelas do aplicativo ativadojanela de visualização atual
Alt+ Q: Alternar entre todas as janelas do aplicativo em todas as viewports
Responder2
Solução genérica usandowmctrl
Visão geral
O script a seguir deve ser compatível com todosCompatível com EWMHgerenciadores de janelas (por exemplo, xfwm4, openbox, kwin, compiz...). Ele usa wmctrl
e xprop
, que pode ser instalado com:
sudo apt-get install x11-utils wmctrl
Instalação
Copie e salve a seguinte passagem 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 o script como executável e salve-o em qualquer lugar que desejar (de preferência em seu PATH, por exemplo, /usr/local/bin
ou ~/bin
).
Uso
Use o menu de atalhos de teclado do seu gerenciador de janelas para atribuir simple-window-switcher
uma tecla de atalho de sua escolha. Você pode usar os seguintes parâmetros para controlar como o script se comporta:
-g
: alternância global de janelas (em todos os espaços de trabalho)-l
: troca de janela local (área de trabalho atual); pode não funcionar com Unity/Compiz (veja a seção de comentários para mais informações)
Responder3
Abra um Terminal e digite o seguinte comando:
dconf write /org/compiz/profiles/unity/plugins/unityshell/alt-tab-bias-viewport false
Alternativamente, você pode instalar a ferramenta Unity Tweak:
sudo apt-get install unity-tweak-tool
unity-tweak-tool
Em seguida, ative oAlternar entre janelas em todos os espaços de trabalhoopção na guia Switcher: