Unity-style close & restore buttons in the top panel with smart window centering. Features: • Unmaximized windows are centered and optionally resized • Original window size is remembered and restored • Live title tracking (Nautilus, browsers…) • XWayland support (Spotify, Electron apps) • Optional minimum open size for new windows • LibreOffice headerbar fix • Crash-safe button-layout backup/restore
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
EGO-X-004 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()`.
extension.js:959
this._cache.load_contents(null)
extension.js:978
file.load_contents(null)
EGO-P-006 warning
unnecessary build and translation artifacts should not be shipped
Compiled GSettings schemas should not be shipped for 45+ packages.
Don't include unnecessary files
schemas/gschemas.compiled
schemas/gschemas.compiled
EGO-L-005 warning
owned object references should be released in disable()
Owned references that are cleaned up in `disable()` should also be released with `null` or `undefined`.
extension.js:692
this._settings = this.getSettings()
extension.js:693
this._wmSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.wm.preferences' })
EGO-L-004 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.
extension.js:936
GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => {
if (!win || win.get_maximized()) return GLib.SOURCE_REMOVE;
_safe(() => {
const r = win.get_frame_rect();
win.move_resize_frame(true, r.x, r.y, r.
extension.js:446
GLib.idle_add(GLib.PRIORITY_DEFAULT_IDLE, () => {
if (!win || win.get_maximized()) return GLib.SOURCE_REMOVE;
_safe(() => {
const r = win.get_frame_rect();
win.move_resize_fram
extension.js:603
GLib.idle_add(GLib.PRIORITY_HIGH, () => { poll(); return GLib.SOURCE_REMOVE; })
| Version | Status |
|---|---|
| 12 | Active |
| 11 | Active |
| 10 | Active |
| 9 | Active |
| 8 | Rejected |
| 7 | Rejected |
| 6 | Active |
| 5 | Rejected |
| 4 | Rejected |
| 3 | Rejected |
| 2 | Rejected |
| 1 | Rejected |