restaura as janelas do chromium / firefox para o espaço de trabalho original / desktop

7

Eu tenho uma configuração de três monitores, com dois monitores acionados diretamente pelo Ubuntu 12.04 para uma área total de área de trabalho / área de trabalho de 3840x1200¹. Eu costumo trabalhar com 5 espaços de trabalho virtuais, muitas vezes mais se eu trabalhar em vários projetos em paralelo. Eu normalmente tenho pelo menos 15 janelas do navegador abertas (principalmente Firefox-nightly, mas também padrão 12.04 Firefox e Chrome).

Sempre que os navegadores precisarem reiniciar como resultado de uma atualização (c.q. falha) ou precisar iniciar após um login, as janelas do navegador retornarão às posições originais, mas todas estarão na mesma área de trabalho. Depois disso, tenho que mover tediosamente pelo menos 80% das janelas para outros espaços de trabalho².

Nem o Firefox nem o Chrome salvam as informações adicionais EWMH necessárias para a restauração do espaço de trabalho original. Eu li relatórios de bug não resolvidos que datam de 4-5 anos atrás sobre isso.

Parece que, pelo menos há alguns anos, o KDE gerenciava espaços de trabalho como grandes deslocamentos (mais largos do que a (s) largura (s) da tela), o que permitia ao navegador restaurar a área de trabalho correta. Mas isso não parece mais ser o caso (deduzido de um relatório de bug, não por experiência pessoal).

Existe um espaço de trabalho / gerenciador de área de trabalho que não tem esse comportamento de restaurar tudo para um único espaço de trabalho com o Firefox e o Chrome (de preferência no Ubuntu ou no Linux Mint)?

Ou há outra maneira de melhorar o Firefox e o Chrome (por exemplo, o complemento) para impor esse comportamento?

A minha não é um layout fixo, onde o Navegador X na área de trabalho Y sempre se abre para uma URL específica. A função de restauração me dá as janelas, posições e URLs exatamente do jeito que eu quero. Eles "apenas" precisam estar no espaço de trabalho correto.

¹ Um terceiro monitor 1200x1920 está em uma máquina separada com x2vnc usado para compartilhar um único mouse e teclado. Isso mantém meu material de leitura como páginas de manual e documentação disponíveis (no modo retrato).
² Todo material U & L está no espaço de trabalho 3. Normalmente, deixo a máquina em funcionamento e fico conectado por semanas a fio, uma das razões para isso é a restauração das várias janelas.

    
por Anthon 28.09.2014 / 20:58

1 resposta

4

Não parece haver muita motivação para implementar algum suporte ao EWMH no Firefox nem no Chrome, mesmo que isso resolva o problema de restauração do espaço de trabalho com um grande número de desktops. Um bug está aberto para o Firefox desde 2007 e um para o Chrome desde 2009.

O que você pode fazer fora do Firefox e do Chrome, se as TABs ativas em diferentes janelas do navegador apontam para URLs diferentes, é usar tendência de URLs diferentes normalmente terem títulos diferentes associados às páginas e, portanto, com a janela em que são exibidos.

Começando com essa ideia, você pode usar a saída de wmctrl -l -G -p que fornece a você

  • id da janela
  • número da área de trabalho
  • id do processo
  • x, y posição da janela
  • largura e altura da janela
  • nome da máquina
  • título da janela (se houver)

para cada janela. Dado um ID de processo PID, você pode ver para onde o link /proc/PID/exe aponta e filtrar as janelas que não são do navegador. Para as janelas relacionadas ao navegador, salve pelo menos o título da janela e o número da área de trabalho (possível também o tipo de navegador e todas as outras informações).

Depois de um navegador (re) iniciar, quando todas as janelas forem restauradas, mas ativadas em um espaço de trabalho, use os dados salvos para procurar o ID da nova janela, WID, associado a um título específico e empurre-o para o título relacionado recuperado. área de trabalho com wmctrl -i -r WID -t workspacenumber .

Se você não quiser implementar o que está acima (na maioria das vezes é um processamento de texto e uma pesquisa de link simbólico) em sua linguagem shell ou scripting de escolha, você pode faça o download de um programa que faz tudo isso para você (e um pouco mais). Ou você pode instalá-lo em PyPI usando:

sudo pip install ruamel.bws

após o qual o comando bws deve estar disponível com opções para save (vários salvamentos são mantidos, 10 por padrão), list (mostra as datas salvas com o número de janelas salvas) ou restore ( por padrão, as últimas informações salvas).

    
por 28.09.2014 / 21:41