Smart Auto Move learns the position, size, and workspace of your application windows and restores them on subsequent launches. Supports Wayland. NOTE: Optimized for use with static workspaces. For more control, set the default behavior to IGNORE and then selectively RESTORE only desired apps.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
EGO026 warning
JavaScript files should be reachable from extension.js or prefs.js
Some JavaScript files are not reachable from `extension.js` or `prefs.js` imports.
Don't include unnecessary files
lib/dbus.js
EGO030 warning
extensions should avoid synchronous file IO in shell code
Shell code should avoid synchronous file IO APIs like `GLib.file_get_contents()` and `Gio.File.load_contents()`.
lib/state-session.js:369
file.load_contents(null)
EGO016 warning
main loop sources should be removed in disable()
Main loop sources assigned in `enable()` are missing matching removals in `disable()` or its helper methods.
prefs.js:368
GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
settings.set_string(
Common.SETTINGS_KEY_OVERRIDES,
JSON.stringify(overrides),
);
return GLib.SOURCE_REMOVE;
})
prefs.js:399
GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
settings.set_string(
Common.SETTINGS_KEY_OVERRIDES,
JSON.stringify(overrides),
);
return GLib.SOURCE_REMOVE;
})
prefs.js:484
GLib.idle_add(GLib.PRIORITY_DEFAULT, () => {
if (block && signalHandlers.overrides) {
settings.block_signal_handler(signalHandlers.overrides);
}
settings.set_string(Common.SETTINGS_KEY_OVERRIDES, JSON.stringify(overrides));
if (block && sig
prefs.js:563
GLib.timeout_add(GLib.PRIORITY_DEFAULT, 100, () => {
doCleanup();
return GLib.SOURCE_REMOVE;
})
EGO015 warning
signals connected by extension should be disconnected in disable()
Signals assigned in `enable()` are missing matching disconnect calls in `disable()` or its helper methods.
prefs.js:94
this._listBox.connect("row-activated", (_list, row) => {
if (row) {
this._emitResponse(row);
this.close();
}
})
prefs.js:90
this._listBox.connect("row-selected", () => {
addButton.set_sensitive(this._listBox.get_selected_row() !== null);
})
prefs.js:76
this._searchEntry.connect("search-changed", () => {
this._listBox.invalidate_filter();
})
prefs.js:101
addButton.connect("clicked", () => {
const selectedRow = this._listBox.get_selected_row();
if (selectedRow) {
this._emitResponse(selectedRow);
}
this.close();
})
prefs.js:109
cancelButton.connect("clicked", () => this.close())
| Version | Status |
|---|---|
| 46 | Unreviewed |
| 45 | Rejected |
| 44 | Rejected |
| 43 | Active |
| 42 | Active |
| 41 | Rejected |
| 40 | Active |
| 39 | Active |
| 38 | Rejected |
| 37 | Rejected |
| 36 | Rejected |
| 35 | Active |
| 34 | Active |
| 33 | Active |
| 32 | Rejected |
| 31 | Active |
| 30 | Active |
| 29 | Rejected |
| 28 | Active |
| 27 | Active |
| 26 | Active |
| 25 | Inactive |
| 24 | Rejected |
| 23 | Rejected |
| 22 | Rejected |
| 21 | Rejected |
| 20 | Active |
| 19 | Inactive |
| 18 | Inactive |
| 17 | Inactive |
| 16 | Inactive |
| 15 | Inactive |
| 14 | Inactive |
| 13 | Inactive |
| 12 | Inactive |
| 11 | Inactive |
| 10 | Inactive |
| 9 | Inactive |
| 8 | Inactive |
| 7 | Rejected |
| 6 | Inactive |
| 5 | Inactive |
| 4 | Inactive |
| 3 | Inactive |
| 2 | Rejected |
| 1 | Rejected |