在 Linux Mate / Ubuntu 上以编程方式切换应用程序全屏模式

Switch application fullscreen mode programmatically on Linux Mate / Ubuntu

我有一个在 Raspberry Pi 上运行的应用程序,带有 Linux Mate 和触摸屏。普通用户通过触摸屏控制应用程序,通常只能看到我的应用程序。我在 Mate 中定义了一个键盘快捷键,允许我切换全屏模式,当我远程连接到 PI 并有键盘时可以使用该模式。

但是,普通用户有时需要访问桌面。由于 Raspberry Pi 没有连接键盘,(本地)用户无法使用键盘快捷键。

出于这个原因,我想在我的应用程序中添加一个按钮,允许用户切换全屏模式。

据我了解,这是 Gnome 2 桌面(Linux Mate 使用的)的功能。我不知道如何从我的程序中访问它,也找不到任何关于它的信息。

我的应用程序是用 .NET Core 和 Avalonia UI 编写的,但该功能不一定要集成到我的应用程序中。我也可以调用外部脚本或实用程序。

知道如何完成这个吗?

一位朋友给了我查看 wmctrl 程序的提示。该程序的源代码将我带到了 XLib 或 XCB 库并将 window 设置为 _NET_WM_STATE_FULLSCREEN。

我想这可以通过 P/Invoking 本机库在 .NET 中完成。再者,编写确定 windows ID 并调用 wmctrl 实用程序并从 .net 应用程序调用该脚本的 shell 脚本似乎要容易得多。