Hide Top Bar: a GNOME extension that gets the top panel out of the way
Read-only mirror of https://gitlab.gnome.org/tuxor1337/hidetopbar. Pull requests and issues on GitHub cannot be accepted and will be automatically closed.
At a glance
- What is it?
- Hide Top Bar is a GNOME Shell extension that hides the top panel and brings it back on mouse-over, on a keyboard shortcut, or when no window needs the space, and it can be installed from extensions.gnome.org, from a Debian package, or built from source. It fits GNOME users who want the screen space back, and it does not fix the notification pop-up and dock overlap problems that come with it.
- Who is it for?
- Hide Top Bar fits a GNOME user on X11 or Wayland who wants the top panel out of the way and is happy to pick an unhide behaviour, and it suits a Debian user best through the packaged build that matches the distribution's gnome-shell version. It does not fit a user whose notifications overlap the panel, since the README routes that case to other extensions.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 7 days ago.
- What is it written in?
- Mainly JavaScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Reclaiming the strip of screen at the top of GNOME
Hide Top Bar is a GNOME extension whose whole purpose is stated in one line: it helps to hide GNOME's top bar when it gets into your way. The top bar in GNOME holds the clock, the system status area and the application menu, and on a small laptop screen it is a strip of vertical space that a maximized window does not use. The extension is aimed at users who want that space back, and it accepts that the bar has to come back sometimes, so the design is about controlling when. The audience is a GNOME user rather than a developer, and the software is a small JavaScript extension that lives inside the shell process, which is why installation is a shell-extension matter rather than a package manager matter in most distributions. The copyright line in the README lists Thomas Vogt for 2013 to 2026, Mathieu Lutfy for 2012 to 2013 and Philip Witte for 2012, which dates the project to the early years of GNOME Shell extensions.
Three ways to bring the bar back
The extension's preferences are where the behaviour is chosen, and the README names three options: unhiding on mouse-over, unhiding on pressing a keyboard shortcut, or unhiding when no window requires the space. The third is the least obvious and the most interesting, because it ties the visibility of the bar to the geometry of the windows on screen rather than to an input event. The source layout shows how that is likely to be implemented, with a small set of focused files: extension.js for the shell integration, intellihide.js for the behaviour that reacts to windows, panelVisibilityManager.js for the panel state itself, convenience.js for shared helpers, desktopIconsIntegration.js for the desktop icon layer, and prefs.js plus Settings.ui for the preferences. The schemas directory holds the GSettings keys that back the preferences, and the Makefile compiles them with glib-compile-schemas in strict mode, so a malformed schema is a build error rather than a silent default.
Installing the packaged build on Debian
Unless the distribution is Debian, the README recommends installing from the official builds on extensions.gnome.org. On a Debian based system the preferred method is the packaged version, and the reason given is compatibility: using the package avoids problems caused by a different gnome-shell version in the distribution. The install is a single command:
sudo apt install gnome-shell-extension-autohidetopbarBugs with that packaged version are meant to go to the Debian bug tracking system rather than to the extension author, which is the usual division of labour for a distribution package. The extensions.gnome.org route is a browser install through the GNOME Shell integration, and the README flags a specific trap for Chrome users, pointing at the GNOME Shell integration for Chrome installation guide, since the browser extension has to be present for the site to install into the shell. There is a third possibility, the gnome-extensions app, which is the standard tool for listing and toggling installed extensions.
Building from source and restarting the shell
The source route is described as an insistence rather than a recommendation, and it has a prerequisite: the commands xgettext and msgfmt from the gettext package, whose package name varies by distribution. The procedure is to check out the source, compile by running make, install, and restart GNOME Shell:
git clone https://gitlab.gnome.org/tuxor1337/hidetopbar.git
cd hidetopbar
make
gnome-extensions install ./hidetopbar.zipThe install only takes effect after logging off and on again, or after replacing the running shell, and the README offers two commands for the second route depending on the session type. On an X11 session the shell can be replaced in place, and on a Wayland session the nested shell is started through dbus-run-session:
# If you are running a X11 session run the following command
gnome-shell --replace &
# If you are running a wayland session run the following command
dbus-run-session -- gnome-shell --nested --waylandEnabling the extension is the last step, and it can be done from the extensions website, the gnome-extensions app, or the command line, where the identifier is fixed and unusual:
gnome-extensions enable [email protected]The identifier carries the original author's domain, which is a leftover from the project's history rather than a sign of current ownership.
The gettext pipeline behind the translations
The build system is where the extension's translation workflow is visible, and it explains why gettext is a hard requirement. The Makefile collects the six JavaScript files and the Settings.ui file, extracts the localizable strings into a pot file with xgettext, stamps it, compiles each po file into a mo file with msgfmt, compiles the GSettings schemas with glib-compile-schemas in strict mode, and packages everything into hidetopbar.zip together with COPYING.txt, metadata.json, the compiled locales, the schemas and the settings UI. When a new string appears in the source, the pot file is regenerated with make and the pot target, and the per-language files are brought up to date with msgmerge using the previous revision, then recompiled. The make targets for one specific language take the language code as a parameter, and the all-po target refreshes every language at once. A contributor who only wants to update a translation never touches the JavaScript, and the stamp file in the pot target is what stops the extraction step from running on every build.
Notifications, the dock, and where this extension stops
The troubleshooting section is honest about the edges. The first case is notification pop-ups, which cause the top bar to hide. The fix is not in this extension: the README points to other extensions, Just Perfection or Notification Banner Reloaded, to configure where notifications appear, for example at the bottom of the screen or a few pixels down so they do not overlap the top bar. The second case is the panel overlapping the dash or dock, and the README is direct that this is an issue of the Dash to Dock extension rather than of Hide Top Bar, with a link to the relevant comment. The third case is a workflow question rather than a bug: whether a shortcut can be assigned to temporarily disable the autohiding altogether, and the answer points to the project's own issue tracker for instructions on a system-wide shortcut that enables or disables the extension. A tool that hides part of the interface tends to generate edge cases in the interface around it, and this one points at its neighbours rather than trying to solve them.
A GitHub mirror, a GPL licence and no tagged releases
This GitHub repository is a read-only mirror of the project hosted on gitlab.gnome.org, and the description says so directly: pull requests and issues opened on GitHub cannot be accepted and are closed automatically. The upstream is on the GNOME GitLab instance, and that is where contributions have to go. The licence is GPL-3.0, with the copyright holders named above and the licence text referenced as COPYING.txt. There are no GitHub releases, since the project is distributed through the official builds on extensions.gnome.org and through distribution packages rather than through tagged archives here. The repository is not archived, and the last push was on 2026-10-16, so the mirror is being kept in step with the GitLab source even though the release mechanism lives elsewhere. The top level of the tree is small and legible: the Makefile, COPYING.txt, Settings.ui, the JavaScript sources, the locale directory, metadata.json, the schemas and the preview image.
Editorial conclusion
Hide Top Bar fits a GNOME user on X11 or Wayland who wants the top panel out of the way and is happy to pick an unhide behaviour, and it suits a Debian user best through the packaged build that matches the distribution's gnome-shell version. It does not fit a user whose notifications overlap the panel, since the README routes that case to other extensions. Verify first which GNOME Shell version you run, install from extensions.gnome.org rather than source unless you need to change strings, and if you build from source, confirm that xgettext and msgfmt from gettext are installed before running make.
Frequently asked questions
How do I install Hide Top Bar on GNOME?
The README recommends the official builds on extensions.gnome.org, except on Debian based systems where the preferred method is the packaged version with sudo apt install gnome-shell-extension-autohidetopbar, because that avoids compatibility problems caused by a different gnome-shell version in the distribution.
How do I make the top bar come back when I need it?
The extension's preferences offer unhiding on mouse-over, unhiding on pressing a keyboard shortcut, or unhiding when no window requires the space. You can also assign a system-wide shortcut that disables and enables the extension altogether, using the instructions linked from the troubleshooting section.
Can I install Hide Top Bar from source?
Yes. The README says to check out the source, run make, install with gnome-extensions install ./hidetopbar.zip, and then log off and on, or replace the running shell. The gettext commands xgettext and msgfmt are required first, and their package name varies by distribution.
Why do notification pop-ups hide the top bar, and what can I do about it?
The README treats that as a configuration problem rather than a bug in the extension, and points to Just Perfection or Notification Banner Reloaded to set where notifications appear, for example at the bottom of the screen or a few pixels down so they do not overlap the top bar.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/tuxor1337-hidetopbar)Was this useful?