5

What I want to do:

Hide the GNOME Panel while Overview/App Grid is open, but show it on the desktop. So when I go to my activities overview or look at my apps, the panel is not there. But when I am looking at the desktop, it is there, and I can interact with it and everything.

What I've Tried:

I've tried variations of Hide Top Bar extensions without any luck.

Theoretically

You should be able to make an extension to do this, right? I have very very little knowledge of how to make an extension for GNOME, so any help would be appreciated.

3 Answers3

1

For the native panel

Install Hide Panel extension by fthx

open ~/.local/share/gnome-shell/extensions/hide-panel@fthx/extension.js

modify AppMenu.container.hide()

        this.showing = Overview.connect('showing', this._show_panel.bind(this));
        this.hiding = Overview.connect('hiding', this._hide_panel.bind(this));

to

        this.showing = Overview.connect('hiding', this._show_panel.bind(this));
        this.hiding = Overview.connect('showing', this._hide_panel.bind(this));

Voila.

Now this extension hides the panel from overview.

0

I'm offering only a partial solution which implies the use of dash to panel extension with intellihide ON.

The intellihide works awesome except it reveals the panel in overview.

The responsible is _checkIfShouldBeVisible in ~/.local/share/gnome-shell/extensions/dash-to-panel@jderose9.github.com/intellihide.js

    _checkIfShouldBeVisible: function(fromRevealMechanism) {
        if (Main.overview.visibleTarget || this._dtpPanel.taskbar.previewMenu.opened || 
            this._panelBox.get_hover() || this._checkIfGrab()) {
            return true;
        }

Changing the _checkIfShouldBeVisible to

    _checkIfShouldBeVisible: function(fromRevealMechanism) {
        if (Main.overview.visibleTarget) {
            return false;
        }
        else if (Main.overview.visibleTarget || this._panelBox.get_hover() || this._checkIfGrab() || this._dtpPanel.taskbar.previewMenu.opened) {
            return true;
        }

hides the panel from overview.

This works for gnome 3.36, 41 and I believe for all the other versions.

I don't yet know how to use intellihide to interact with the panel for the overview only and it was my main goal. As of now I'm ok with this.

EDIT:

I've found a better solution with intellihide OFF

~/.local/share/gnome-shell/extensions/dash-to-panel@jderose9.github.com/panel.js

_adjustForOverview: function()

change

this.panelBox[isShown ? 'show' : 'hide']();

to

this.panelBox[isShown ? 'hide' : 'hide']();

but now there's no nice smooth animation.. not a big deal I think

-1

you can do this by setting this extention. Try the sudo apt install gnome-shell command before installation.