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'
Also of interest is this exchange about leveraging some of that directly on the command line without duplicating:
i3-msg workspace 3; i3-msg exec firefox i3-msg workspace 9; i3-msg exec chromium
But I have never seen a configuration which autostarts many windows/apps in each workspace according to a desired vertical or horizontal layout. My goal is to autostart this simple configuration I use:
_____ _____ ___________ ___________ | 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
So it starts with something like this in the
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'
But how in the world do you achieve the type of layout and vert/horizontal splitting you want? I'm trying, but it's not clear how you "mix" execution and layout. The syntax feels idiosyncratic to start because you're executing
i3-img within i3's configuration. Do you use
split h (or v) -
layout split v -
exec layout split v -
focus down(or right) in between each
For a single workspace, the configuration starts all applications either vertically or horizontally and I can't seem to influence layout - or the last
split command in the chain decides whether the windows are added vertically or horizontally.
i3-msg seemingly ignores parts of the command that aren't properly formatted in some cases so it's hard to debug. This is further compounded by the fact that you really need to quit X and
startx again every time to verify the results as just refreshing the configuration with
mod+shift+R won't cut it even if you close everything on each of the workspaces.
What is the proper way of configuring this? Does anyone have a solution which implements something like that? The documentation is pretty good but it doesn't provide that I can see a detailed example which mixes execution and layout on multiple workspaces.