I have an application that runs on a Raspberry Pi with Linux Mate and a touch screen. The normal users control the application via touch screen and should usually only see my application. I have defined a keyboard shortcut in Mate that allows me to toggle the fullscreen mode which can be used when I am remotely connected to the PI and have a keyboard.
From time to time it is, however, necessary for the normal user to access the desktop. Since the Raspberry Pi has no keyboard connected, the (local) user can't use the keyboard shortcut.
For this reason I would like to add a button to my application that would allow the user to toggle fullscreen mode.
As far as I understand this is a function of the Gnome 2 desktop (which Linux Mate uses). I have no idea how to access this from my program and can't find any information on it.
My application is written in .NET Core with Avalonia UI but the function would not necessarily have to be integrated in my application. I could as well call an external script or utility program.
Any idea how to accomplish this?
A friend gave me the tip to check out the wmctrl program. The sources of this program led me to the XLib or XCB library and setting the window to _NET_WM_STATE_FULLSCREEN.
I guess this could be done in .NET by P/Invoking the native lib. Then again it seems much easier to write a shell script that determines the windows ID and calls the wmctrl utility and call that script from the .net application.