Переключить полноэкранный режим приложения программно в Linux Mate / Ubuntu - PullRequest
0 голосов
/ 13 июня 2018

У меня есть приложение, которое работает на Raspberry Pi с Linux Mate и сенсорным экраном.Обычные пользователи управляют приложением через сенсорный экран и обычно должны видеть только мое приложение.Я определил сочетание клавиш в Mate, которое позволяет мне переключать полноэкранный режим, который можно использовать, когда я удаленно подключен к PI и у меня есть клавиатура.

Время от времени, однако, это необходимо дляобычный пользователь для доступа к рабочему столу.Поскольку Raspberry Pi не подключен к клавиатуре, (локальный) пользователь не может использовать сочетание клавиш.

По этой причине я хотел бы добавить в свое приложение кнопку, которая позволила бы пользователю переключать полноэкранный режим.,

Насколько я понимаю, это функция рабочего стола Gnome 2 (которую использует Linux Mate).Я понятия не имею, как получить доступ к этому из моей программы и не могу найти информацию об этом.

Мое приложение написано в .NET Core с пользовательским интерфейсом Avalonia, но эта функция не обязательно должна быть интегрирована в мое приложение.Я мог бы также вызвать внешний скрипт или служебную программу.

Есть идеи, как этого добиться?

1 Ответ

0 голосов
/ 15 июня 2018

Друг дал мне совет проверить программу wmctrl.Исходники этой программы привели меня в библиотеку XLib или XCB и установили в окне значение _NET_WM_STATE_FULLSCREEN.

Я полагаю, что это можно сделать в .NET с помощью P / Invoking родной библиотеки.С другой стороны, гораздо проще написать сценарий оболочки, который определяет идентификатор Windows, вызывает утилиту wmctrl и вызывает этот сценарий из приложения .net.

...