EDIT: I’ve added a package to the AUR, simply run
yaourt -S maximal.
maximal is my take on a pretty much demanded feature. I want to share it here since there are many Gnome (and Cinnamon, although it won’t work for Cinnamon until its next release) users around this forum. Maximal was born out of disconformity with the current state of affairs:
The “maximus like” extensions are very clever but dirty, dirty hacks that try to infer the client id in non standard ways, call external tools, hook from many events… don’t get me wrong, it’s impressive that the extension developers somehow managed to get around the limitations imposed by the “everything CSD” adamant stand of Gnome. But anyway the extensions make the programmer in me cry in despair. Moreover, they all show some rough edges.
Another option is to tweak the metacity theme to make the titlebar almost invisible, setting a 0 size font… I’m going to stop here.
Finally there is a script around there that is always pulling information from the X system and setting
_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZEDfor every client. But it should be the other way around, the script should react to window creation events.
OTOH maximal, a quite minimal script indeed, simply listens to normal window creation events and sets the
_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED property. For more information check the README file for the project, but here are some highlights:
- You can set a whitelist and/or a blacklist of patterns to match the wm class, instance and name of the client.
- You can disable/resume the service. After disabling it everything is left as it was before.
- Only requires standard tools, probably already available in your system.
- It’s simple and does the right thing, it’s not a hack nor a workaround. This doesn’t mean that it’s free of bugs, of course, just that the approach is straightforward.