Preserve window layout in Emacs

Emacs

Emacs Problem Overview


I have setup my windows in a certain way. How do I save this setting to be invoked later?

Emacs Solutions


Solution 1 - Emacs

I sometimes still use C-x r w <register> to store a window configuration in a register, and C-x r j <register> (where <register> is a single character) to jump back to it.

While this is a nice way for storing a few window configurations which you want to go back to after some time, I find winner-mode to be more convenient in a few regards. (For example, you won't have to bother naming the configurations).

Just put (winner-mode 1) in your .emacs, bind winner-undo and winner-redo to convenient shortcuts (or use the IMHO awkward C-c <left> and C-c <right> predefined ones), and you'll be able to switch back to previous window configurations.

See also: M-: (info "(emacs) Window Convenience") and M-: (info "(emacs) RegConfig")

Solution 2 - Emacs

I know you allready accepted an answer, however because I understand your question in another way (concerning layout) and this question showed up for me when I was in search for something to persist my emacs window layout, I would like to mention:

workgroups.el

which purpose is to save and restore the way, emacs windows are layed out and many more.

Solution 3 - Emacs

Check out emacs desktop. I have no emacs available but I believe it's part of the standard lisp packages you get when you install emacs.

> Use the desktop library to save the > state of Emacs from one session to > another. Once you save the Emacs > desktop—the buffers, their file names, > major modes, buffer positions, and so > on—then subsequent Emacs sessions > reload the saved desktop.

Solution 4 - Emacs

Give Layout Restore a try if you just want to restore the window layout later.

Solution 5 - Emacs

If you want to persist a layout in your hard-drive, desktop-save is the option.

If you need to store multiple layouts during emacs' process lifetime (e.g. you connect to a long-running emacs daemon using emacsclient), you can use C-x r f <register> to store the frame layout in some register and C-x r j <register> for restore.

Since I now and then remotely connect to the work station to do sth, disconnect for a while and later reconnect, restoring layout helps me continue stuff seamlessly (note in this case window layouts stored by C-x r w would be gone).

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionhekevintranView Question on Stackoverflow
Solution 1 - EmacsdanleiView Answer on Stackoverflow
Solution 2 - EmacseinSelbstView Answer on Stackoverflow
Solution 3 - EmacsNifleView Answer on Stackoverflow
Solution 4 - EmacstangxinfaView Answer on Stackoverflow
Solution 5 - EmacsShellayLeeView Answer on Stackoverflow