Maximus GNOME Shell Extension
The Maximus GNOME Shell Extension attempts to emulate the Maximus package for the Ubuntu Netbook Remix.
That is, it removes decoration (i.e. the title bar) from maximised windows, saving vertical real estate. For example, Google Chrome does this by default. Useful for netbooks with small screens.
|With Maximus||Without Maximus|
NOTE: with the titlebar of a window hidden, you may find it difficult to unmaximise/move a window. In this case, I recommend either remembering your system's keyboard shortcut for un/maximising a window (e.g. Alt+F10 on Fedora), or use the Window Options GNOME shell extension which adds a drop-down menu to the title bar in the top panel with these options (shameless plug, I wrote that one). You might also like the Window Buttons extension which adds the close, minimize, maximize buttons to the top panel.
- When restarting gnome-shell with a Qt app maximized (e.g. Texmaker), it will no longer redecorate on unmaximize. Only occurs after restarting gnome-shell, not when disabling/re-enabling. Not something I can reliably fix as I cannot detect whether a window is from a Qt app from the extension (and even then I cannot detect whether it was intended to be undecorated or not).
- You cannot maximize and instantly unmaximize Qt apps (e.g. with keybindings); the unmaximize won't work until you wait a tiny bit (milliseconds) after the maximize. Qt apps seem to take a while to regain focus after being un/redecorated.
Changelog file for further details):
- When dragging to unmaximize, the window does not redecorate until it is dropped. Prevents "breaking" the drag (
- v10 (e.g.o), v2.2 (tagged):
- changed the default method to hide the titlebar to hopefully be more stable, if the user is not using the Ambiance or Radiance themes (the old
- much code cleaning
- various misc. fixes.
- v4 (e.g.o), v1.3 (tagged):
- added blacklists/whitelists
- fixed bug where Maximus wouldn't work on windows with non EN-utf8 characters in the title (bug
- made it harder to get stuck in fullscreen mode (particularly thunderbird)
- better behaviour when maximizing from fullscreen to halfscreen.
On GNOME 3.4+: use the prefs widget. On GNOME 3.2, modify
By default, only fully-maximised windows are undecorated.
If you also want to undecorate half-maximised windows, edit the line in
extension.js to change this line:
const undecorateHalfMaximised = false;
to this (change the
const undecorateHalfMaximised = true;
Blacklists and whitelists
From dev-version 1.3 onwards (v4 on e.g.o), there is support for a window blacklist/whitelist.
If a window is on the blacklist, then all windows except those in the blacklist will be affected by Maximus. If a window is on the whtielist, then only the windows in the whitelist will be affected by Maximus.
To set whether the list is a blacklist or whitelist, modify this line at the top of
/*** Whitelists/blacklists ***/ const BLACKLIST = true; // if it's a white list, change this to FALSE
To add apps to the blacklist or whitelist, add them to the
APP_LIST variable in
You have to add the window's application name (like 'thunderbird.desktop') for it to work.
To see what an application's window manager class is, open up an instance of it.
Alt + F2 and type
lg. Go to the 'Windows' tab and note the
app of the window in question (press Esc to exit).
Add this in to
The easy way (recommended):
One-click install from extensions.gnome.org!
From this website:
- Download the .zip file on the Downloads page.
gnome-tweak-tool, go to "Shell Extensions", "Install Extension" and select the .zip file.
From the repository:
If using GNOME 3.4, 3.6, or 3.8, use the
Otherwise (GNOME 3.2), use the
hg clone ssh://firstname.lastname@example.org/mathematicalcoffee/maximus-gnome-shell-extension hg up gnome3.4 # or `stable` if on GNOME 3.2 cd maximus-gnome-shell-extension make # <-- VERY IMPORTANT cp -r email@example.com ~/.local/share/gnome-shell/extensions # enable maximus if you haven't already: gnome-shell-extension-tool -e firstname.lastname@example.org
Now restart gnome-shell.
Branch Info (for developers)
- 'stable' branch works with GNOME 3.2+. No fancy prefs widget.
- 'gnome3.4' branch: GNOME3.4+ with prefs widget.
- 'default' branch: the gnome3.4+ development branch (has prefs.js). i.e. dev branch for 'gnome3.4'.
- 'polyglot-dev' branch: the gnome3.2+ development branch (same as above but no prefs.js). i.e. dev branch for 'stable'.