Close open windows gracefully and save them as a session. And you can restore them when necessary manually or automatically at startup. Most importantly, it supports both X11 and Wayland! Main features: - Restore the previous session at startup. disabled by default. - Save running apps and windows automatically when necessary, this will be used to restore the previous session at startup. - Close running apps and windows automatically before Log Out, Restart, Power Off. disabled by default. - Close running windows gracefully - Close apps with multiple windows gracefully via ydotool so you don't lose sessions of this app (See also: How to make Close by rules work) - Save running apps and windows manually - Restore a selected session at startup (See also: #9). disabled by default. - Restore a saved session manually - Restore window state, including Always on Top, Always on Visible Workspace and maximization - Restore window workspace, size and position - Restore 2 column window tiling - Stash all supported window states so that those states will be restored after gnome shell restarts via Alt+F2 -> r or killall -3 gnome-shell. - Move windows to their own workspace according to a saved session - Support multi-monitor - Remove saved session to trash - Search saved session by the session name fuzzily For more information, please visit https://github.com/nlpsuge/gnome-shell-extension-another-window-session-manager/blob/feature-close-save-session-while-logout/README.md. Please report issues on Github.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
Version | Status |
---|---|
49 | Active |
48 | Active |
47 | Active |
46 | Active |
45 | Rejected |
44 | Rejected |
43 | Rejected |
42 | Rejected |
41 | Active |
40 | Active |
39 | Active |
38 | Active |
37 | Active |
36 | Active |
35 | Active |
34 | Active |
33 | Inactive |
32 | Rejected |
31 | Active |
30 | Active |
29 | Active |
28 | Active |
27 | Active |
26 | Active |
25 | Active |
24 | Active |
23 | Active |
22 | Active |
21 | Active |
20 | Active |
19 | Active |
18 | Active |
17 | Rejected |
16 | Active |
15 | Active |
14 | Rejected |
13 | Active |
12 | Rejected |
11 | Active |
10 | Active |
9 | Active |
8 | Inactive |
7 | Active |
6 | Active |
5 | Rejected |
4 | Active |
3 | Rejected |
2 | Rejected |
1 | Active |
1. Rejected because you forgot to remove the timeout (utils/tooltip.js line 251) in destroy. 2. Instead of doing this: ```js if (this._prefsUtils.isDebug()) { log('...'); } ``` Create a log function and use that: ```js function logDebug(text) { if (this._prefsUtils.isDebug()) { log(text); } } ``` now you only need to do `logDebug('my text');`
Hi JP, I'm preferring to hold all logs operation in a single file by adding a log.js under utils/ and code is: ```js 'use strict'; const ExtensionUtils = imports.misc.extensionUtils; const Me = ExtensionUtils.getCurrentExtension(); const PrefsUtils = Me.imports.utils.prefsUtils; const _prefsUtils = new PrefsUtils.PrefsUtils(); function debug(logContent) { if (_prefsUtils.isDebug()) { log(`[Another window session manager] ${logContent}`); } } ``` And I use the above function to debug like this: ```js ... const Log = Me.imports.utils.log; ... Log.debug(`Saved open windows as a session in ${session_file_path}!`); ``` It's working, but does it meet the guidelines? Can I create an object (const _prefsUtils = new PrefsUtils.PrefsUtils();) in log.js?
I'll create a Log class in log.js and create object in constructor() and destroy it in destroy() instead of above code. This should be a better way :)
You can do that but don't create objects in global scope, if they need to be initiated, you can create them in enable() and null the variable in disable().