When upgrading to a new version, make sure to follow the directions under the "Upgrading" header of the corresponding version. If there is no "Upgrading" header for that version, no post-upgrade actions need to be performed.
- Add scrollback, tab, and window restoring for the Kitty terminal
(#24)
- Refer to the Kitty Configuration for information on how to enable this feature
- Fix an issue where a window not being swallowed could cause the restore process to exit early
- Restore workspaces on their correct displays, if possible (#17)
- The
--interval
flag was renamed to--save-interval
to reduce confusion about the flag's purpose (#18)
- If you have the
--interval
flag in your i3 config file, it needs to be changed to--save-interval
- A Similar Software and Limitations section has been added to the Readme (#11 and #13)
- Directions on installing on Gentoo Linux using emerge have been added to the Readme (#20 by @vitaly-zdanevich)
- Fix saving windows with classes that aren't retrieved from i3-msg
- Fix log messages messing up the restoring process when using a verbosity
- Fix programs not restoring correctly when the default shell is not Bash
- Official support for Python 3.12
- A help flag (
--help
or-h
) can now be used on either script to get its usage - A verbose flag (
-v
) can be used to show debug messages while running the script. A double verbose flag (-vv
) can be used to additionally show all commands executed by the script - A Features section has been added to the Readme
- The shorthand for the version flag has been changed from
-v
to-V
- The currently focused container is now saved and restored next session
- This project is now licensed under the GPLv3 license instead of the MIT license
- Natively support restoring
pipenv
,sudo
, andsu
in the configuration - More specific criteria is now supported for saving subprocesses, allowing you to include
args
that need to be included in the subprocess command for it to be restored. See the subprocess configuration for more information - The
launch_command
in the subprocess configuration now defaults to{command}
so there is no need to specify that in your configuration file
- Restoring subprocesses is now handled better (and works with the kitty terminal!)
- Subprocess configuration has changed. Please refer to both the Subprocess configuration section and the example configuration file to adjust your configuration correctly
- Python 3.7+ is now needed as a dependency (previously Python 3+)
- The configuration file was changed from
programs/config.py
toconfig.json
, making it much easier to configure i3-restore. Additionally, a Configuration guide was written to facilitate the script's configuration. - Added a note in the Configuration Doc about restoring Vim/Neovim sessions more reliably
- Make sure to transfer your configuration from
programs/config.py
toconfig.json
. Be sure to look at the Configuration.md guide to properly set up the configuration. Most of this can be done by copy-pasting your old configuration into the new file.
- An
--interval
flag can now be specified to automatically save your i3 session every X minutes. See more information on how to use this in the Restoring section of the README - Natively support restoring
ssh
andman
in the configuration - A Contributing.md doc and License were added to clarify how to contribute to this project
- A GitHub workflow was added to ensure the integrity of the code
- Fix restoring not working correctly on setups with multiple outputs/monitors
- Skip saving containers that don't have valid PIDs or access is denied to information about the programs running on them
- New formatting standards were added for Contributors
- Restoring was once again significantly improved. It now works with restoring subprocesses in terminals with different window titles (Vim, Emacs, cmus, etc.)
A couple of changes need to be done when upgrading to this version:
- xdotool is now needed as a dependency
i3-restore.sh
was changed toi3-restore
andi3-save.sh
was changed toi3-save
. Please make the necessary changes within your i3 config
- A button was added to the i3-nagbars that allows the user to run the script manually to view the error that occurred
- Restoring was changed significantly. It is now more efficient and reliable
When upgrading to this version, make sure to delete all files in you i3_Path
that end with programs.json
, as those files
will never be removed (the file names changed).
- A logger was added to make it easier to debug the script
- An i3-nagbar will now appear when an error occurs while running the script, making it easier for the user to see what is wrong.
- Subprocess programs are now saved correctly (e.g vim, cmus, etc.)
- The version can now be retrieved by using the
--version
or-v
flag when running either one of the two shell scripts./i3-save.sh --version
./i3-restore.sh --version
- A changelog has been added to make it easier for users to upgrade to the newest version and to keep track of past changes
- Fix inability to save correctly when there is a
/
in a workspace name (#1)