Panel mode — tabs live in the top bar:
Standalone mode — a floating tab bar above your windows (top bar can be hidden):
App Tabs is a GNOME Shell extension that shows one tab per window for the focused application. Switch windows from the top panel or from a draggable floating bar in standalone mode.
Clone this repository and copy it to ~/.local/share/gnome-shell/extensions/, then enable the extension (Extensions app or gnome-extensions enable [email protected]).
glib-compile-schemas schemas/
# Alt+F2 → r (restart Shell) or log out and back in| Mode | Description |
|---|---|
| Panel | Tabs appear in the GNOME top bar, next to other panel items. |
| Standalone | Tabs move to a floating bar you can drag anywhere on screen. |
- Default display mode — chosen in extension preferences (panel or standalone).
- Mode toggle — click the display-mode button on the tab bar; right-click for per-app fixed panel or standalone mode.
- Hide top bar in standalone — slides the top bar away (similar to Hide Top Bar) so only the floating tabs remain.
- Display mode transitions — optional fade and slide animations; duration is configurable (0–2000 ms).
Open Extensions → App Tabs → Settings.
- Panel max width, ellipsis on long titles, tabs on current workspace only
- Add tab and recent windows buttons
- App tab style — JSON/CSS-like styles for default, active, hover, light and dark themes:
{
"icon-size": 18,
"default": {
"default_style": {},
"active_style": {},
"hover_style": {}
},
"light_mode": {
"default_style": {},
"active_style": {},
"hover_style": {}
},
"dark_mode": {
"default_style": {},
"active_style": {},
"hover_style": {}
}
}- Fixed standalone / panel applications — always use one display mode for specific apps
- See open windows as tabs for the current application.
- Click a tab to focus that window; click the active tab to minimize.
- Close button on each tab; right-click for window actions (pin, maximize, workspace, etc.).
- Drag tabs to reorder; order is remembered per application.
- Panel and standalone display modes with optional animations.
- Recent windows menu to reopen closed windows or switch across apps.
- Add tab opens a new window when the app supports it.
If something breaks or you want a change, open an issue on the repository.
CoverflowAltTab: bind Alt+Tab to applications and Alt+Grave to windows — works well with App Tabs.
GNOME Shell logs:
journalctl -f -o cat /usr/bin/gnome-shellGNOME Shell 48 (nested):
export MUTTER_DEBUG_DUMMY_MODE_SPECS=1366x768
dbus-run-session -- gnome-shell --nested --waylandGNOME Shell 49+ (devkit):
export G_MESSAGES_DEBUG=all
export MUTTER_DEBUG_DUMMY_MODE_SPECS=1366x768
export SHELL_DEBUG=all
command -V mutter-devkit || sudo apt install mutter-dev-bin
dbus-run-session gnome-shell --devkit --waylandPreferences:
journalctl -f -o cat /usr/bin/gjs
gnome-extensions prefs [email protected]Run tests:
bash scripts/check.sh
