Hi,

On Mon, Dec 16, 2013 at 5:11 AM, Michael Stapelberg <mich...@i3wm.org> wrote:
> Hi,
>
> I have been working on layout/session saving/restoring this
> weekend. The title is a mouthful, but what it’s about is saving parts of
> your layout (say, an entire workspace) to a JSON file and later loading
> that into i3.
>
> This is useful for multiple things:
>
> 1) Restoring a certain layout when starting up your x session.
>    People used to do this with shell scripts and hacks such as
>    i3-exec-wait until now.
>
> 2) Defining a more elaborate default layout for certain workspaces. As
>    an example, on my big screen I like to have three columns of stacked
>    containers with terminals in them, where the middle one is larger
>    than the left and right ones.
>
> I uploaded a video to demonstrate how it looks:
> http://youtu.be/CaDOfwxXc9g
>
> To save a layout, there is i3-save-tree(1), which requires the Perl
> modules AnyEvent::I3¹ and JSON::XS². i3-save-tree --workspace=1 prints
> workspace 1’s layout to stdout. You are expected to edit that layout
> file briefly, especially the “swallows” sections of each container. The
> criteria should be familiar to you, e.g. from for_window.
>
> Once you have done that, you can use the append_layout command to load a
> layout file.
>
> As for the code, I just pushed the branch “session-saving”, which you
> can build and use right now. It’s stable enough that I’m using it on my
> main machine. But, since this is a very new feature, be prepared to
> encounter some stability issues (e.g. layout files that could crash
> i3). You have been warned! :)
>
> Also note that I reserve the right to break this feature in any way that
> I deem necessary, and you have no right to complain about layout file or
> new command breakage :).
>
> As for the release plan: I intend to release i3 4.7 soonish (maybe in a
> week or so). After that is done, I’ll merge the session-saving branch
> into the “next” branch, i.e. the earliest i3 release that can possibly
> have this feature will be 4.8.
>
> ① http://michael.stapelberg.de/cpan/#AnyEvent::I3
> ② http://michael.stapelberg.de/cpan/#JSON::XS

This is great.

It will be better if i3 could automatically start all the programs for
me. I think it's possible for programs that support startup
notification.

Could this feature be added, or is it too much to integrate into i3?

>
> --
> Best regards,
> Michael

Regards
Yuxuan Shui

Reply via email to