Как можно получить путь к исполняемому файлу для окна, которое запускается как приложение FlatPak?

Я знаю, что

xprop | awk '/PID/ {print $3}' | xargs ps

и

xprop | awk '/COMMAND/ {print $4}' | xargs which

отлично работают с приложениями с графическим интерфейсом пользователя, которые имеют deb-packaged, AppImage'd или Snap'd.

Но этот метод не дает имени исполняемого файла для приложения, которое упаковано как FlatPak.
См. Пример ниже:

 $ flatpak run org.libretro.RetroArch

$ xprop
_NET_WM_VISIBLE_NAME (UTF8_STRING) = "RetroArch (как суперпользователь)"
WM_NAME (STRING) = "RetroArch"
_NET_WM_ICON_GEOMETRY (CARDINAL) = 446, 744, 207, 24
WM_PROTOCOLS (ATOM): протоколы WM_DELETE_WINDOW
XKLAVIER_STATE (ЦЕЛОЕ) = 0, -180379392
_NET_WM_STATE (ATOM) =
WM_STATE (WM_STATE):
состояние окна: Нормальное
окно значка: 0x0
_NET_FRAME_EXTENTS (КАРДИНАЛ) = 3, 3, 23, 3
_NET_WM_DESKTOP (CARDINAL) = 0
_NET_WM_ALLOWED_ACTIONS (АТОМ) = _NET_WM_ACTION_MOVE, _NET_WM_ACTION_RESIZE, _NET_WM_ACTION_FULLSCREEN, _NET_WM_ACTION_MINIMIZE, _NET_WM_ACTION_SHADE, _NET_WM_ACTION_MAXIMIZE_HORZ, _NET_WM_ACTION_MAXIMIZE_VERT, _NET_WM_ACTION_CHANGE_DESKTOP, _NET_WM_ACTION_CLOSE, _NET_WM_ACTION_ABOVE, _NET_WM_ACTION_BELOW
WM_CLIENT_MACHINE (STRING) = "норберт-UX32A"
_NET_WM_PID (КАРДИНАЛ) = 2
WM_CLASS (STRING) = "ретроархитект", "ретроархитект"
_NET_WM_ICON (CARDINAL) = Значок (16 x 16):
 
 ▓▓▓▓▓▓▓▓▓▓▓
 ▓▓▓▓▓▓▓▓▓▓▓▓▓
 ▓▓▓▓▓▓▓▓▓▓▓▓▓
 ▓▓▓ ▓▓▓▓▓ ▓▓▓
 ▓ ▓▓ ▓▓▓ ▓▓ ▓
 ▓ ▓ ▓ ▓
 ▓ ▓ ▓ ▓
 ▓ ▓
 ▓▓ ▓▓
 ▓▓▓ ▓▓▓▓▓ ▓▓▓
 ▓▓ ▓▓▓▓▓▓▓ ▓▓
 ▓▓▓▓▓▓▓▓▓▓▓▓▓
 ▓▓▓▓▓▓▓▓▓▓▓▓▓
 ▓▓▓▓▓▓▓▓▓▓▓
 

Поэтому я не вижу строк, связанных с PID или COMMAND, в выводе xprop . Но запускается конечно:

 $ flatpak ps
Время выполнения приложения PID экземпляра
752290322 23857 org.libretro.RetroArch org.kde.Platform

Как я могу получить PID окна, созданного приложением FlatPak, при использовании xprop , wmctrl или чего-то подобного?

0
задан 15 December 2019 в 13:49

1 ответ

В большинстве случаев разрешения flatpak (песочница) не допускают этого AFAICT. То, какая часть системы подвергается воздействию, можно до некоторой степени настроить, поэтому о том, о каком плоском пакете вы говорите, может иметь отношение к вопросу. Здесь много информации по этой и другим темам, связанным с Flatpak .

Одним из примечательных разделов является http://docs.flatpak.org/en/latest/sandbox-permissions.html

Одним из альтернативных подходов к определению пути к исполняемому файлу плоского пакета может быть проверка файлов конфигурации : Отрывок ниже.

Flatpak может работать в общесистемном или индивидуальном пользовательском режиме. Общесистемные данные расположены в $ prefix / var / lib / flatpak /, а данные для каждого пользователя - в $ HOME / .local / share / flatpak /.

В дополнение к местам установки по умолчанию, дополнительные общесистемные установки могут быть определены через файлы конфигурации /etc/flatpak/installations.d/, которые должны иметь расширение .conf и обычно включают путь установки в форме Путь = / location / of / installation . См. документацию по установке для получения дополнительной информации.

2
ответ дан 24 December 2019 в 17:36

Другие вопросы по тегам:

Похожие вопросы: