Combinação de teclas para alternar entre as janelas de um aplicativo em todas as viewports

Combinação de teclas para alternar entre as janelas de um aplicativo em todas as viewports

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á.

  1. instalar xdotool:

    sudo apt-get install xdotool
    
  2. Copie o seguinte script em um arquivo vazio e salve-o comoswitch.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. 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:

    insira a descrição da imagem aqui

    ou Alt+ `para alternar entre as janelas do gedit apenas do espaço de trabalho atual:

    insira a descrição da imagem aqui

observação:

  1. 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 terminal xev, 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
    
  2. Os valores de sleep 0.2e sleep 1fazem 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

insira a descrição da imagem aqui

Alt+ Tab: Alternar entre todas as janelas do aplicativo ativadojanela de visualização atual

insira a descrição da imagem aqui

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 wmctrle 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/binou ~/bin).

Uso

Use o menu de atalhos de teclado do seu gerenciador de janelas para atribuir simple-window-switcheruma 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:

insira a descrição da imagem aqui

informação relacionada