Hiding Panel using Python script

First a bit of Backgound:

When I was using Linux Mint Cinnamon, I had a script that would Hide the Panel when I was using a VM on Virtual Box. The same script would unhide the panel when I switched to a different Workspace.

Doing things this way gave me the ability to use the virtual machine AS IF it was running in Full Screen Mode, but I was not locked into that Workspace, which Full Screen Mode does.

Now that I am on a KDE desktop, I want to be able to achieve the same functionality.

I know that I can use dbus in Python, there is a python module, and I have it installed.

But I don’t know what I am looking for in order to control the Hiding/Unhiding of the Panel, via the python script.

Is there anyone who can help here?

Why not use the in built KDE Plasma Panel options to Autohide or Windows Can Cover?
Virtual Desktops and Activities in KDE Plasma are quite versatile and you can also set different Window Rules …

1 Like

Search for hide/autohide taskbar.

I would still have to change those manually everytime I moved from the Workspace where the VM is to another Workspace, and then reset manually when I go back.

Yep I have lots of Window rules set already. There’s none that will do what i want.

Yep, I’ve been doing that. This part of that search, There are lots of solutions on offer that don’t work. But none that I can see that give me the dbus path to the Panel.

This is how I did it on Cinnamon, so it’s in a Gnome context.

            if desktop0 == desktop1 and isVm and vboxloaded:
                if output == "['1:false']":
                    status, output = subprocess.getstatusoutput("gsettings set org.cinnamon panels-show-delay \"['1:20000']\"")
                    status, output = subprocess.getstatusoutput("gsettings set org.cinnamon panels-autohide \"['1:true']\"")
                    print("Auto hide", status, output)
            else:
                if output == "['1:true']":
                    status, output = subprocess.getstatusoutput("gsettings set org.cinnamon panels-show-delay \"['1:0']\"")
                    status, output = subprocess.getstatusoutput("gsettings set org.cinnamon panels-autohide \"['1:false']\"")

I want to be able to do something like that in a KDE context using dbus.

what I need is the KDE version of this… org.cinnamon panels-autohide

Actully bogdancovaciu you might have the solution, afterall.

I ran a test setting a window at Full Screen, and it is still possible to change Workspaces. I’ll set up a VM window using that and I’ll let you know how it goes.

Yep that works.

It works the same way that setting a Window to Full Screen works when using Devilspie.

I should have tried this before.

Thanks.

You can probably do it with qdbus. https://superuser.com/a/1342646

Thanks, I’ve already checked that one out, it doesn’t work.

bogdancovaciu suggestion does.

The scripts I was running on Cinnamon were to emulate functionality I had available to me in KDE3 and KDE4.

As it now turns out everything I want to do is there in the Window Rules.

It’s nice to be back on KDE.