Save and restore session of the Gnome Terminal

      2 min read      ·      · ·

INFO: Unfortunately „–save-config” option is no longer supported in the new versions of gnome-terminal so this script will not work.

I use terminal quite often in my work. I have a specific way how I work with terminal. I usually have about 10 tabs open in different directories so I can quickly switch between them. I felt quite frustrated when I was in the middle of something, but I had to reboot the PC for some reason. It is because it means I would need to set-up my perfect multi-tab terminal from scratch.

Fortunately I found very easy solution for this issue. This article describes easy way to save and restore the terminal session.

Disclaimer:

It is a basic solution. It allows you to restore all the tabs from the Gnome Terminal in the working directories, but it will not restore the content of the terminals.

Quick how-to:

Installation:

Usage:

Every time you want to save a session execute (in any tab):

save-terminal

It will create a new file in the .terminal-session directory containing information about all currently opened Gnome Terminal tabs.

When you want to restore all tabs from the last saved session execute:

load-terminal

It will load the Gnome Terminal session from the latest file from .terminal-session directory.

Details:

Both save-terminal and load-terminal scripts use gnome-terminal commands with --save-config=PATH and --load-config=PATH parameters.

gnome-terminal command should be available on any GNU Linux distribution with Gnome packages installed.

Main responsibility of the save-terminal and load-terminal scripts is to properly save the file and then choose the latest file to load the terminal session from it. These scripts are extremely simple.

save-session:

TERMINAL_SESSIONS_DIR=~/.terminal-sessions
gnome-terminal --save-config=$TERMINAL_SESSIONS_DIR/$(date +"%m%d%Y-%H%M%S")
</pre>
<p></p>


This code will create new file in the ~/.terminal-sessions directory with the current time as a file name.


**load-session**:


    TERMINAL_SESSIONS_DIR=~/.terminal-sessions
    NEWEST_FILENAME=$(ls -t $TERMINAL_SESSIONS_DIR | head -1)
    echo $NEWEST_FILENAME
    gnome-terminal --load-config=$TERMINAL_SESSIONS_DIR/$NEWEST_FILENAME</pre>
    <p></p>


    This code will find the newest file from the ~/.terminal-sessions directory and use it to load Gnome Terminal session using gnome-terminal.


    Complete source code can be found in [GitHub repository][2].
comments powered by Disqus