Suponha que eu esteja usando quatro áreas de trabalho e que, aliás, preciso de mais, existe um processo automatizado ou, se impossível, uma maneira fácil de adicionar acidentalmente mais áreas de trabalho (em vez de instalar Ubuntu tweak
etc. etc.).
14.04
unity
workspaces
automation
workspace-switcher
kernel_panic
fonte
fonte
Respostas:
Defina automaticamente o número de áreas de trabalho; adicione e remova colunas e linhas, dependendo de suas necessidades
Abaixo de uma versão de um script (o) backround que adicionará automaticamente os espaços de trabalho se você inserir a última coluna ou linha da matriz do espaço de trabalho.
É assim que funciona:
Se você chegar à última coluna ou linha, viewports adicionais serão adicionadas:
Se seus espaços de trabalho não forem utilizados por 5 a 10 segundos e não houver janelas, os espaços de trabalho adicionais serão removidos novamente. No entanto, você sempre manterá uma linha extra abaixo e uma coluna extra à direita da sua viewport atual:
O script:
Como usar
add_space.py
Na seção principal do script, edite as linhas se desejar outras configurações (número máximo de áreas de trabalho, matriz padrão, por exemplo, 2x2):
Teste-execute pelo comando:
Se tudo funcionar bem, adicione-o aos aplicativos de inicialização: Dash> Startup Applications> Add the command:
Nota
Como sempre, o script é extremamente "com pouco suco" e não adiciona nenhuma carga perceptível ao seu processador.
Explicação
A história abaixo é um pouco complicada e principalmente uma explicação sobre o conceito e o procedimento , e não sobre a codificação. Leia apenas se estiver interessado.
Como calcular os espaços de trabalho necessários (colunas de exemplo)
A saída de se
wmctrl -d
parece com:Na saída,
VP: 1680,1050
fornece informações sobre onde estamos no espaço de trabalho de abrangência (a matriz de todas as viewports). Esta informação é útil apenas se também tivermos a resolução da tela, pois, por exemplo,1680
pode ter a largura de duas (improvável, mas ainda) ou uma vez a tela.Felizmente, podemos analisar a resolução da tela a partir do comando
xrandr
.Então, se sabemos que o tamanho x da tela é
1680
e atualmente estamos ativadosVP: 1680,1050
, sabemos que estamos na segunda coluna na matriz da área de trabalho. Como também sabemos o tamanho da matriz total (DG: 3360x2100
também da saída dewmctrl -d
), sabemos que a matriz atual inclui duas colunas (3360/1680) e estamos na "última".O script enviará uma instrução para adicionar uma coluna à matriz pelo comando:
Esse é o princípio.
Como calcular os espaços de trabalho a serem removidos (colunas de exemplo)
Uma vez a cada 10 segundos, o script executa o comando para listar todas as janelas abertas no momento, com o comando:
Isso também fornece informações sobre a posição da janela, parecendo:
Na saída,
3425
é a posição x da janela. Esta figura é relativa ao espaço de trabalho atual (lado esquerdo). Para conhecer a posição absoluta da janela (x) na matriz da área de trabalho, precisamos adicionar o primeiro número das informações atuais da viewport (por exemploVP: 1680,1050
, a partir da saída dewmctrl -d
).Vamos, no entanto, por motivos de simplicidade, supor que estamos na janela de exibição
1,1
(topleft viewport), portanto a posição relativa da janela é igual à sua posição absoluta.Como a resolução da tela é
1680
, sabemos que a janela está na coluna3425/1680
, arredondada para cima, pois tudo o que3360 and 5040
está no meio está na mesma coluna na matriz (entre 3 e 4 vezes a resolução). Para um cálculo adequado, usamosmath.ceil()
(python
)Como o script também pratica a regra para sempre ter um espaço de trabalho extra à direita / abaixo, precisamos definir o número de colunas para o valor mais alto de:
E assim o script faz :)
As linhas são gerenciadas exatamente no mesmo procedimento.
fonte
Tecnicamente, não há atalho para redimensionar áreas de trabalho, mas você pode usar o script simples abaixo e vinculá-lo a um atalho.
.local/share/applications
pasta ou onde quiser.chmod 755 /path/to/script
Por exemplo, eu tenho esta configuração:
O script está vinculado a ShiftCtrlAltI. Mas CtrlAltIpoderia funcionar também. Dou o caminho completo para o script, que é
E aqui está como deve ficar:
Roteiro
Muito simples de usar, muito simples de configurar
fonte