Save and restore session of the Gnome Terminal
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:
- Download and extract save-terminal and load-terminal files.
- Save both files in
~/bin
directory. - Create
.terminal-session
directory in your home directory. - Add
~/bin
to $PATH:-
add following line to your
~/.bashrc
file export PATH=$PATH:~/bin -
execute
source ~/.bashrc
-
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].