Como você implementa o layout com o início automático de aplicativos no gerenciador de janelas do i3?

22

Este é um follow-up de uma pergunta anterior sobre como iniciar automaticamente aplicativos em áreas de trabalho individuais com o < um gerenciador de janelas do i3 e o que pode e não pode ser feito dentro do arquivo de configuração ~/.i3/config .

Primeiro, a solução fornecida com base no Arch Linux documentation e uma atualização fornecida por op onde ele leva a lógica adiante:

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 de interesse é esta troca sobre como aproveitar um pouco disso diretamente a linha de comando sem duplicar:

i3-msg workspace 3; i3-msg exec firefox
i3-msg workspace 9; i3-msg exec chromium

Mas eu nunca vi uma configuração que autoinicia muitas janelas / aplicativos em cada área de trabalho de acordo com um layout vertical ou horizontal desejado. Meu objetivo é iniciar automaticamente essa configuração simples que 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 parecido com isto no arquivo config :

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 vert / divisão horizontal desejada? Estou tentando, mas não está claro como você "mistura" a execução e o layout. A sintaxe parece idiossincrática para iniciar porque você está executando i3-img dentro da 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 uma única área de trabalho, a configuração inicia todos os aplicativos vertical ou horizontalmente e parece que não consigo influenciar o layout - ou o último comando split na cadeia decide se as janelas são adicionadas vertical ou horizontalmente. i3-msg aparentemente ignora partes do comando que não são formatadas corretamente em alguns casos, por isso é difícil depurá-lo. Isso é ainda mais agravado pelo fato de que você realmente precisa sair do X e do startx novamente para verificar os resultados, já que apenas a atualização da configuração com mod+shift+R não será cortada, mesmo se você fechar tudo em cada um dos espaços de trabalho.

Qual é a maneira correta de configurar isso? Alguém tem uma solução que implemente algo assim? A documentação é muito boa, mas não fornece um exemplo detalhado que mistura a execução e o layout em vários espaços de trabalho. .

    
por Community 07.06.2014 / 12:51

1 resposta

10

Acredito que você está procurando o novo recurso de economia de layout que foi introduzido em i3 v4.8 (2014-06-15). A documentação vinculada parece bastante completa.

Citando a documentação:

Layout saving/restoring allows you to load a JSON layout file so that you can have a base layout to start working with after powering on your computer. Dynamic use-cases also come to mind: if you frequently (but not always!) need a grid layout of terminals with ping/traceroute commands to diagnose network issues, you can easily automate opening these windows in just the right layout.

... e as notas de lançamento :

tl;dr: export1 your current layout as JSON file, load it into new i3 sessions, get placeholder windows that will be replaced by the actual apps once you start them.

1. Você pode exigir que os pacotes perl-anyevent-i3 e perl-json-xs usem o utilitário i3-save-tree .

    
por 02.07.2014 / 09:06

Tags