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