Pergunta
Usando uma linguagem de script shell, python ou qualquer outra coisa, como posso mover uma janela de uma viewport para outra?
Embora eu seja bastante desesperado, prefiro que a solução funcione em segundo plano. Como em, não activate window 1, move window 1, active window 2, move window 2, ...
, enquanto eu tenho que sentar e esperar que tudo isso aconteça. (Vou me referir a isso como o problema de ativação lenta.)
Eu até aprecio referências a onde mais eu deveria fazer essa pergunta, como fóruns de pessoas com conhecimento sobre Linux e gerenciadores de janelas.
Ambiente
Estou usando o Gnome Flashback com o Compiz (não o Unity ou o Metacity). Eu estou no Ubuntu 14.04, mas espero que as soluções funcionem em outras versões como pretendo atualizar.
O que eu tentei
Apenas coisas de linha de comando com programas existentes.
wmctrl
Primeiro, wmctrl
não funciona aparentemente com compiz. Aqui está o que eu recebo com wmctrl -d
:
$ wmctrl -d
0 * DG: N/A VP: N/A WA: N/A N/A
wmctrl -l
não é completamente inútil, mas não mostra todas as janelas. Por exemplo, eu corri apenas agora e ele relatou 8 janelas do Chrome, mas eu sei que tenho pelo menos 21. Slack está aberto, mas não está na lista de janelas.
plugin compiz-dbus
Eu usei o plug-in compiz-dbus com o put
plugin, e tentei usar ./compiz-send.py put put_viewport_1_key
, mas isso tem vários problemas:
- Funciona apenas com a janela ativa, portanto, fornece o problema de "ativação lenta" mencionado acima. E presumindo que eu poderia usar outra ferramenta para encontrar uma janela por título e ativá-la.
- É um buggy para janelas maximizadas, que são 95% das minhas janelas. Para mim, às vezes é possível mover a janela de visualização da janela, mas sempre colocá-la no monitor do meio, mesmo que tenha começado no monitor direito. Outras vezes, ele moverá a viewport e depois a moverá de volta! (e ainda colocá-lo no monitor do meio). Obviamente isso não é bom.
História de fundo
Eu odeio reiniciar meu computador, porque todas as janelas começam em uma única viewport, e levo vários minutos para mover todas as minhas janelas de volta para as viewports em que estavam anteriormente. Por exemplo, eu terei várias janelas do Chrome na viewport 1, várias na janela de visualização 2 etc. Isso é muito movimento de janelas, toda vez que eu reinicio meu computador.
Muitas vezes, não reinicio meu computador por períodos prolongados devido a esse problema, que é ruim para correções de segurança, etc. Por que tenho tantas janelas abertas? Sou empreiteiro e trabalho em vários projetos simultaneamente, cada um com suas próprias preocupações, exigindo pesquisa na web, escrita de código, material de linha de comando, etc. Tenho 32 GB de RAM e muitas janelas não são um problema de desempenho.
Geralmente, as janelas são fáceis de identificar por título, onde eu gostaria que elas fossem. Por exemplo, eu sempre quero que o "Gmail - Google Chrome" esteja na viewport 1.