Linux: Hiding the “desktop panel” when you want more screen real estate

It wasn’t always the case that the panels and other such devices on the edges of the screen were “always on top” when visible. I hate the current trend of making them “un-cover-upable”. It is very inconvenient to the way I work.

In the Window Manager Compiz on Debian Linux, with the XFCE4 desktop, I’ve found a workable solution. I can overlap the panels when I want, or bring them to the top when i want. I have an almost workable solution, in case somebody else agrees with my view on this.

Here’s the idea. In Compiz, use the settings to liberate window placement and put the panels at the bottom of the stack.

In ccsm, “Window Rules”, make these 2 changes:

Above: (title=Run Application) & (type=Dialog)
Below: (role=Panel) | (role=DOCK) | (type=xfce4-panel)

In “Move Window” panel, uncheck “Constrain Y”.

This *at least* allows windows to go on top of the panel and off the
edge of the screen if desired.

That still leaves the problem that the panel can get buried under a
lot of windows and there seems no way in Compiz–no setting–that
allows us to give the panel focus again so it can rise to the top when
we want it. Its necessary to move all the windows out of the way. I
wish the WindowRules had an option “allow focus click” or something
like that.

I’ve found a workaround in a program called wmctrl. It can be used to
toggle the behavior of the panel, to make it come to the top or go
back down. Install that, then run this to toggle the panel visibility.

$ wmctrl -r xfce4-panel -b toggle,above

Its really fun to run that over and over :)

Bind that command to a key stroke. I chose to map it to the Super-c key, where
Super is the thing with the Windows Menu key.

In the end, I ended up having to put the command in a separate excutable script
file. Digging through my setup, here’s what I have in ~/.config/compiz/Defaults.ini. In the

In the section

[commands]

as_command4 = togglePanelViz.sh
as_run_command4_key = c

The script file in ~/bin/togglePanelViz.sh had this one line:

wmctrl -l | grep panel | awk ‘{print “wmctrl -i -r” $1 ” -b toggle,above”}’ | bash

That scans the wmctrl output, grabs all panels, and toggles.

So now it works well to Drag a window over the panel. The part of the panel that is not covered still shows.

I have not solved all of the frustrations. The initial window placement algorithms still respect the panels as special super-protected things, so windows won’t automatically move over the panel. However, you can
1. Alt-left-click drag a window over the panel
2. Alt-middle-click to resize a window over the panel

It still is now allowed to “edge drag” and resize over the panel.

About pauljohn

Paul E. Johnson is a Professor of Political Science at the University of Kansas. He is an avid Linux User, an adequate system administrator and C programmer, and humility is one of his greatest strengths.
This entry was posted in Linux and tagged , , . Bookmark the permalink.