Numbered workspaces in the top bar, a top bar that gets out of the way, and windows tiled as they open. Use any of them, or all three. WORKSPACE NUMBERS See which workspace you are on at a glance, instead of counting dots. • Click a number to switch to that workspace • Super+1 to Super+0 jumps straight there, and creates the workspace if it does not exist yet. Workspaces added that way close again once they are empty and you have left them • The workspace switcher popup no longer appears, since the top bar already shows where you are AUTO-HIDE THE TOP BAR The bar stays visible while nothing is in its way, and slides away when a window needs the room. Push the pointer against the top edge of the screen to bring it back. It stays put in the overview and while a menu is open. While auto-hide is on, windows use the full height of the screen and the bar floats above them, so nothing resizes when you peek at the clock. AUTO-TILING (off by default) Windows are laid out as they open, in the style of Hyprland's dwindle layout: each new window splits the focused one, and closing a window gives its space back. Focus follows the mouse, and keys move focus, swap, resize, float and maximize windows; both can be changed. Small utility apps open floating, and the list can be edited. The layout comes back as it was when the screen is unlocked. While auto-tiling is on, the minimize and maximize buttons and edge tiling are switched off, since they would take a window out of the layout, and given back when it is turned off. Each feature can be turned off individually in Preferences.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
| Version | Status |
|---|---|
| 2.3 (8) | Active |
| 2.2 (7) | Rejected |
| 2.1 (6) | Rejected |
| 2.0 (5) | Rejected |
| 2.0 (4) | Rejected |
| 2.0 (3) | Rejected |
| 1.1 (2) | Active |
| 1.0 (1) | Active |
Approved but: 1. Please use array of `_timeouts` instead of doing that line 191-197 `autohide.js`. That way you only hold the timeout ids inside `this._timeouts` and loop over to removed on disable. 2. I see AI generated code here. Please note, we have a rule for that: - [EGO Review Guidelines: AI](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#extensions-must-not-be-ai-generated) - [Extensions Best Practices Guidelines](https://gjs.guide/extensions/review-guidelines/best-practices.html#submissions-require-maintainership) If you need any help with your extension you can ask us on: - [GNOME Extensions Matrix Channel](https://matrix.to/#/#extensions:gnome.org) - IRC Bridge: irc://irc.gimpnet.org/shell-extensions
1. Timeouts Fixed in 1.1. Every GLib source now goes through a helper that records its id in this._timeouts, and disable() removes them in one loop: for (const id of this._timeouts) GLib.source_remove(id); this._timeouts.length = 0; 2. AI - The panel's strut is released for the entire session rather than toggled on each hide, so windows keep full height and nothing reflows when the bar appears. dash-to-dock does the same thing — _trackDock() passes affectsStruts only when the dock is fixed. It has to be re-asserted after unlock and resume, or the work area comes back stale. - The pressure barrier is armed only in the HIDDEN state, because a live barrier under an open bar traps the pointer at the edge, and it is torn down entirely in fullscreen for the reason dash-to-dock documents. Since the barrier is destroyed each time it fires, _reset() and _isTriggered have to be cleared by hand or it never fires again. - There is deliberately no switch-workspace listener. It fires before the incoming workspace's actors are mapped, so a check there sees an empty workspace, shows the bar, then hides it again. restacked covers the same case at a settled moment.