i3
How to save layout and reload at boot
First, save the current layout of any workspace with:
i3-save-tree --workspace 1 > ~/.config/i3/i3-workspace-1.json
Where 1 refers to the workspace number. Make sure that all the clients you
want to be run on that workspace are open and visible before running the
command.
After that, the workspace json file will be created but all the classes and proprieties of the clients caught will be commented. Uncomment the minimum you need to recognize all the clients before using the file.
To enable then the workspace file at startup, add this to your i3 configuration:
exec --no-startup-id "i3-msg 'workspace 1; append_layout ~/.config/i3/i3-workspace-1.json'"
Have this line before the one that launches the actual clients named in the workspace file and you are all set for next i3 startup.
More info on the official documentation for layout saving.