Este é um acompanhamento de uma pergunta anterior sobre como iniciar automaticamente aplicativos em áreas de trabalho individuais com o gerenciador de janelas i3 e o que pode e não pode ser feito dentro do ~/.i3/config
arquivo de configuração.
Primeiro, a solução fornecida com base na documentação do Arch Linux e uma atualização fornecida pelo op, onde ele aprimora a lógica:
exec --no-startup-id i3-msg 'workspace 1:Web; exec /usr/bin/firefox'
exec --no-startup-id i3-msg 'workspace 1; exec firefox; workspace 2; exec urxvt; workspace 1'
Também é interessante essa discussão sobre como alavancar parte disso diretamente na linha de comando sem duplicar:
i3-msg workspace 3; i3-msg exec firefox
i3-msg workspace 9; i3-msg exec chromium
Mas nunca vi uma configuração que inicie automaticamente muitas janelas / aplicativos em cada área de trabalho, de acordo com o layout vertical ou horizontal desejado. Meu objetivo é iniciar automaticamente essa configuração simples que eu uso:
_____ _____ ___________ ___________
| lx | lx | | |u_| | | | proportions:
|_____|_____| | FF |lx| |spacefm | 1- 25% each
|medit| lx | | |__| | | vlc | 2- 75/25 x 25/50/25
|_____|_____| |________|u_| |_____|_____| 3- 50/50
1 2 3
Então começa com algo assim no config
arquivo:
exec --no-startup-id i3-msg 'workspace 1; exec i3-sensible-terminal; layout toggle split; layout splitv; split vertical; exec i3-sensible-terminal; exec i3-sensible-terminal; exec i3-sensible-terminal; workspace 2; exec firefox; exec urxvt; exec i3-sensible-terminal; exec urxvt; workspace 3; exec spacefm; exec vlc'
Mas como você consegue o tipo de layout e a divisão vertical / horizontal que deseja? Estou tentando, mas não está claro como você "mistura" a execução e o layout. A sintaxe parece idiossincrática ao iniciar, porque você está executando i3-img
na configuração do i3. Você usa split h
(ou v) - layout split v
- exec layout split v
- focus down
(ou direita) entre cada exec
chamada?
Para um único espaço de trabalho, a configuração inicia todos os aplicativos na vertical ou na horizontal e não consigo influenciar o layout - ou o último split
comando da cadeia decide se as janelas são adicionadas na vertical ou na horizontal. i3-msg
aparentemente ignora partes do comando que não são formatadas corretamente em alguns casos, por isso é difícil depurar. Isso é ainda mais agravado pelo fato de que você realmente precisa sair do X startx
todas as vezes para verificar os resultados, pois apenas atualizar a configuração mod+shift+R
não será suficiente, mesmo que você feche tudo em cada um dos espaços de trabalho.
Qual é a maneira correta de configurar isso? Alguém tem uma solução que implementa algo assim? A documentação é bastante boa, mas não fornece um exemplo detalhado que combine execução e layout em vários espaços de trabalho.
Respostas:
Acredito que você esteja procurando pelo novo recurso de economia de layout que foi introduzido no i3 v4.8 (15/06/2014). A documentação vinculada parece bastante completa.
Citando a partir da documentação:
... e as notas de versão :
1. Você pode precisar dos pacotes perl-anyevent-i3 e perl-json-xs para usar o
i3-save-tree
utilitário.fonte
lxterminal
ouurxvt
para um único espaço de trabalho, será necessário diferenciá-los usando--name something
quando executá-los em .i3 / config. O exemplo no documento funciona, mas quando uso uma exportação de um dos meus espaços de trabalho, não consigo fazê-lo funcionar. Você usa classe para o nome e instância para o que usou com --name. Nesse caso, só posso esperar seriamente por uma ferramenta de GUI, pois o formato json tem tantos colchetes!.i3/config
também nas versões anteriores, mas, quando estou conectado corretamente, tudo funciona bem. O que fiz foi organizar alguns layouts e salvá-los, depois editar apenas as variáveis de classe dos arquivos json. Então, algo comoi3-msg workspace 2\; append_layout mylayout.json\;
e, em seguida,i3-msg exec lxterminal\; exec lxterminal\; exec lxterminal\; exec medit
deve restaurar o seu primeiro layout desejado. // Obrigado por melhorar minha resposta, btw.