Como parar de reordenar do mesmo tipo várias janelas de visualização prévia na alternância de tarefas?

21

Ao usar a alternância de tarefas no modo gráfico padrão do Ubuntu 12.04, se houver várias janelas do mesmo tipo, por exemplo. Em várias janelas do Terminal, você pode vê-las todas juntas e selecionar qual delas deseja.

insira a descrição da imagem aqui

Meu problema é que a ordem dessas janelas é alterada constantemente. Segue a ordem do "último uso". Quero-os sempre em uma ordem fixa; como eu posso fazer isso?

n611x007
fonte
3
Recurso muito chato. Fiz a mesma pergunta aqui askubuntu.com/questions/271506/… mas infelizmente ainda não há resposta.
gumkins
5
Esse "problema" também existe na versão 14.04! Essas janelas devem ser realmente ordenadas com base em suas posições relativas na tela e nas áreas de trabalho, quando forem visualizadas janelas de mais de uma área de trabalho. Somente quando uma viúva é colocada em cima de outra (medida dentro de um certo intervalo de pixels) o posicionamento da visualização depende da regra da "última usada". Eu até faria mais um "ajuste" nessa regra: aplique as preferências de idioma regional, do texto "da esquerda para a direita" ou "da direita para a esquerda", para decidir qual lado da tela é considerado "primeiro" - - a esquerda ou a direita.
PJ Singh
1
Uma solução possível seria manter as janelas na ordem em que foram criadas, mas pelo menos mantê-las em ordem. Eu preferiria uma ordem aleatória, mas estável, a essa bagunça, sinto que estou constantemente manipulando as telas.
Minos
1
Eu acredito que isso exigiria alterar o código da unidade. Você pode começar aqui: unity3d.com/learn/documentation
Elder Geek
Ainda estou tendo esse problema em 2018, versão 18.04. Super chato.
Jesse Busman

Respostas:

2

Em vez de alterar a base de código da unidade, considere o uso de áreas de trabalho para chegar ao resultado desejado.

Exemplo usando o Cubo da área de trabalho do Compiz no CompizConfigSettingsManager

Abra CompizConfigSettingsManager ( ccsm) e altere as configurações para corresponder ao seguinte:

ccsm-1

ccsm-2

Terminal aberto 1

Use o atalho de teclado CTRL-ALT -> (seta para a direita) para ir para a próxima área de trabalho à direita.

Terminal aberto 2

Use o atalho de teclado CTRL-ALT -> (seta para a direita) para ir para a próxima área de trabalho à direita novamente.

Terminal aberto 3

Use o atalho de teclado CTRL-ALT - <- (seta para a esquerda) para ir para a área de trabalho anterior que contém o terminal 2 (ou duas vezes para voltar ao terminal 1)

Outra opção

Use o gerenciador de viewport no CompizConfig SettingManager e atribua uma combinação de teclas para ir diretamente para a área de trabalho de sua escolha.

Nota: Até agora, só consegui fazer com que 10 funcionassem, embora 12 devessem ser possíveis com esse método. ccsm-3

Atualização: com base nas preocupações expressas nos comentários:

Basta clicar com o botão direito na barra de título do gedit e escolher sempre na área de trabalho visível ...

Outra opção:

Em vez de abrir terminais separados (ou áreas de trabalho) para suas inúmeras atividades, você também pode usar as guias no terminal gnome. As teclas de atalho para alternar entre guias estão disponíveis nas preferências do terminal. Ver abaixo:

terminal-prefs

Elder Geek
fonte
Se eu entendi corretamente, isso me deixaria com a necessidade de usar um atalho diferente ou um caminho clicável para alternar tarefas. Pode ser feito, eu acho. No entanto, como clonaria todas as janelas não terminais de que preciso, que normalmente têm apenas 1 instância para todos os desktops, quando preciso ou desejo essa interação rápida e possível entre o (s) terminal (ais) e a (s) outra (s) janela (s)?
N611x007 03/03
Quantas instâncias você precisa? O uso do gerenciador do Viewport forneceria até 12. Teclado ativado. Isso é "clicky"?
Elder Geek
Veja também askubuntu.com/questions/34572/…
Elder Geek
Eu acho que não entendi ... Os espaços de trabalho são suficientes. Deixe-me tentar colocar assim. Exemplo hipotético. Antes: 3 terminais, 't1', 't2', 't3', + 1 janela gedit. Copio e colo para frente e para trás entre o gedit e 't1' e 't2'. A ordem da troca de tarefas está incorreta. Depois (aplicando sua solução alternativa): Eu tenho os 3 terminais nos 3 espaços de trabalho 'w1', 'w2', 'w3' respectivamente, uma janela do gedit em 'w1'. Preciso copiar e colar entre o gedit e 't1' e 't2'. Como copiar e colar entre 't2' e gedit no 'w2' da maneira mais confortável?
N611x007
Não tive problemas para copiar e colar entre os espaços de trabalho; portanto, não tenho certeza do que você está perguntando. Como "a maneira mais confortável" é mais uma questão de opinião do que um fato mensurável, você tem minhas desculpas, mas acho que não posso responder logicamente a isso.
Elder Geek
1

Outra opção, se a área de trabalho for grande o suficiente, é definir algumas janelas para "sempre em cima" e organizá-las para que você possa alternar usando o mouse. É um erro ... mas às vezes acho útil quando se trabalha com várias janelas do mesmo tipo.

Ainda outro é definir vários perfis de terminal com esquemas de cores diferentes e usar um diferente para cada terminal ... isso facilitaria sua identificação. insira a descrição da imagem aqui Sim, este também é uma solução alternativa.

rir
fonte
1

Eu acho que você pode conseguir isso modificando o código fonte do Unity 7 . Basta seguir as etapas descritas no site do desenvolvedor, mas antes de iniciar o processo de construção: ./trunk/plugins/unityshell/src/unityshell.cppe dê uma olhada na SetUpAndShowSwitcherfunção:

void UnityScreen::SetUpAndShowSwitcher(switcher::ShowMode show_mode)
{
  RaiseInputWindows();

  if (!optionGetAltTabBiasViewport())
  {
    if (show_mode == switcher::ShowMode::CURRENT_VIEWPORT)
      show_mode = switcher::ShowMode::ALL;
    else
      show_mode = switcher::ShowMode::CURRENT_VIEWPORT;
  }

  auto results = launcher_controller_->GetAltTabIcons(show_mode == switcher::ShowMode::CURRENT_VIEWPORT,
                                                      switcher_controller_->show_desktop_disabled());

  if (switcher_controller_->CanShowSwitcher(results))
    switcher_controller_->Show(show_mode, switcher::SortMode::FOCUS_ORDER, results);
}

Aqui você pode ver claramente que essa é exatamente a função que estávamos procurando. A parte superior é responsável pela alternância dos modos de viewport:

Mostrar modos

Essa alternância aparece sempre que entramos em um grupo de aplicativos ou se saímos do grupo. optionGetAltTabBiasViewportindica quando isso acontece. Então GetAltTabIconsestá envolvido para obter os ícones certos. E, finalmente, a Showfunção com o SortMode::FOCUS_ORDERé chamada para exibir nossos ícones classificados. SortMode é uma enumeração:

enum class SortMode
{
  LAUNCHER_ORDER,
  FOCUS_ORDER,
};

e mudar FOCUS_ORDERpara LAUNCHER_ORDERdeve resolver seu problema. Você pode inserir uma instrução if adicional antes de ligar Showpara impedir a classificação da ordem do iniciador ShowMode::ALL.

Observe que o código fonte do Unity 8 parece completamente diferente. Portanto, esta solução pode funcionar apenas para o Unity 7. Depois de meia hora corrigindo dependências ausentes e depois de mais uma hora lutando com o cmake, decidi não arruinar meu sistema e testá-lo na VM amanhã;)

Dimitri Podborski
fonte