首页 > 解决方案 > 在 Linux Mate / Ubuntu 上以编程方式切换应用程序全屏模式

问题描述

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

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

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

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

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

知道如何做到这一点吗?

标签: linuxubuntugnome

解决方案


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

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


推荐阅读