A GNOME Shell extension that remembers and restores the position and size of application windows. When a tracked application is opened, it is automatically moved back to where it was last seen.
- Saves window position, size, and monitor assignment per application
- Restores windows to their last known position on launch
- Handles multi-monitor setups, falling back to the primary monitor if the saved monitor is no longer available
- Automatically cleans up stale position data for applications not seen within a configurable number of days
- Configurable restore delay and retry attempts to handle applications that reposition themselves during startup
- GNOME Shell 47, 48, 49, or 50
Visit extensions.gnome.org and search for Window Positioner.
- Download the latest
window-positioner@gavindi.github.com.zipfrom the releases page - Install it:
gnome-extensions install window-positioner@gavindi.github.com.zip
- Register the GSettings schema so preferences are accessible:
mkdir -p ~/.local/share/glib-2.0/schemas cp schemas/org.gnome.shell.extensions.window-positioner.gschema.xml ~/.local/share/glib-2.0/schemas/ glib-compile-schemas ~/.local/share/glib-2.0/schemas
- Log out and back in (or restart GNOME Shell on X11 with
Alt+F2→r) - Enable the extension:
gnome-extensions enable window-positioner@gavindi.github.com
git clone https://github.com/gavindi/window-positioner
cd window-positioner@gavindi.github.com
make installmake install builds the zip, installs the extension, and registers the GSettings schema in one step.
Log out and back in, then enable the extension:
gnome-extensions enable window-positioner@gavindi.github.comOpen the extension preferences via GNOME Extensions app or:
gnome-extensions prefs window-positioner@gavindi.github.com| Setting | Default | Description |
|---|---|---|
| Restore Delay | 1 ms | How long to wait after a window opens before attempting to restore its position. Increase this for applications that move themselves during startup. |
| Maximum Restore Attempts | 5 | How many times to retry restoring a position if the first attempt fails. |
| Cleanup After Days | 30 | Position data for applications not seen within this many days is automatically removed. |
| Debug Logging | Off | Logs save and restore events to the GNOME Shell journal for troubleshooting. |
To view debug output when enabled:
journalctl -f -o cat /usr/bin/gnome-shell | grep "Window Positioner"make distProduces build/window-positioner@gavindi.github.com.zip.
make installmake uninstallmake cleanGPL-2.0-or-later