Package: xsession-manager
xsession-managerSave and restore windows for X11 desktop environment like Gnome, and many other features.This project was written inBashoriginally. But now I'm completely rewriting it inPythonwhich obviously makes it way more flexible, extensible.If you are a Gnome 3 user and also want to use these similar features on Wayland, please giveAnother Window Session Managera try, it's a Gnome extension, much more faster thanxsm, and much more native experience on Gnome.InstallInstall dependenciesFedoradnfinstallpython3-develpython3-tkinterwmctrlInstallxsession-managervia PyPipip3installxsession-managerInstall xsession-manager via source codeMethod-1: Using pip.This method install xsession-manager in~/.local/lib/python3.9/site-packagesif you are a normal user, in/usr/local/lib/python3.9/site-packagesif you are root.cdthe_root_of_source_code
pipinstall.Method-2: Using setup.pyThis method install xsession-manager in/usr/local/lib/python3.9/site-packages.cdthe_root_of_source_code
sudopython3setup.pyinstallCommon usageSave running windows as a X sessionSave all running GUI windows toxsession-defaultxsm-sSpecify a session name like,my-session-name, restore it later on by runningxsm -s my-session-name. This feature should be very helpful when you have multiple tasks to do and each task needs different GUI apps.xsm-smy-session-nameNote:It will save some window states, which include Always on Top and Always on Visible Workspace and will be used when executingxsm -rorxsm -ma.Close running windows except those apps with mutiple windows. It's better to leave them to the user to close by hand, some apps like JetBrain's IDEs may have their own session.xsm-cClose running windows include those apps with mutiple windows.xsm-c-imRestore the saved X sessionRestore all GUI apps using the saved session namedxsession-defaultxsm-rRestoregnome-system-monitorusing the saved session namedmy-session-namexsm-rmy-session-name-ignome-system-monitorMove running windows to their Workspaces according to the saved X sessionxsm-maList saved X sessionsxsm-lView the details of a saved X sessionsxsm-txsession-defaultFull usage:usage: xsm [-h] [-s [SAVE]] [-c [CLOSE_ALL ...]] [-im] [-r [RESTORE]] [-ri RESTORING_INTERVAL] [-pr [PR]] [-l] [-t [DETAIL]]
           [-x EXCLUDE [EXCLUDE ...]] [-i INCLUDE [INCLUDE ...]] [-ma [MOVE_AUTOMATICALLY]] [--version] [-v] [-vv]

options:
  -h, --help            show this help message and exit
  -s [SAVE], --save [SAVE]
                        Save the current session. Save to the default session if not specified a session name.
  -c [CLOSE_ALL ...], --close-all [CLOSE_ALL ...]
                        Close the windows gracefully. Close all windows if only -c/--close-all present. Or close one or more
                        apps if arguments provided, which supports <window_id>, <pid>, <app_name> or <title_name> exactly the
                        same as -x. For example: `xsm -c gedit 23475 0x03e00004`
  -im, --including-apps-with-multiple-windows
                        Close the windows gracefully including apps with multiple windows
  -r [RESTORE], --restore [RESTORE]
                        Restore a session gracefully. Restore the default session if not specified a session name.
  -ri RESTORING_INTERVAL, --restoring-interval RESTORING_INTERVAL
                        Specify the interval between restoring applications, in seconds. The default is 2 seconds.
  -pr [PR]              Pop up a dialog to ask user whether to restore a X session.
  -l, --list            List the sessions.
  -t [DETAIL], --detail [DETAIL]
                        Check out the details of a session.
  -x EXCLUDE [EXCLUDE ...], --exclude EXCLUDE [EXCLUDE ...]
                        Exclude apps from the operation according to <window_id>, <pid>, <app_name> or <title_name>. Require
                        at least one value
  -i INCLUDE [INCLUDE ...], --include INCLUDE [INCLUDE ...]
                        Include apps from the operation according to <window_id>, <pid>, <app_name> or <title_name>. Require
                        at least one value
  -ma [MOVE_AUTOMATICALLY], --move-automatically [MOVE_AUTOMATICALLY]
                        Auto move windows to specified workspaces according to a saved session. The default session is
                        `xsession-default`
  --version             show program's version number and exit
  -v, --verbose         Print debugging information
  -vv                   Print more debugging information, could contain sensitive infoIf you want to restore the previous X session automatically after loginHere is a solution. If you are using Fedora, create a file namedauto-restore-working-state.desktopand theExecshould be:xsm-prThen put this file into~/.config/autostart.For example:[Desktop Entry]
Name=Auto Restore saved X Windows
Comment=
Icon=
Exec=xsm -pr
Terminal=false
Type=Application
X-GNOME-Autostart-Delay=20NOTE: You can also usexsession-managerinstead ofxsm.Todo:TODO