AIMP Forum

AIMP for PC => Вопросы / Questions => Topic started by: pdy on May 17, 2026, 23:22:13

Title: Почему x11 - вопрос к разработчикам(-у)
Post by: pdy on May 17, 2026, 23:22:13
На некоторых DE особенно WM которые поддерживают только Wayland (например hyprland), не очень стабильно работают с x11 приложениями. Насколько я знаю в Delphi имеется возможность написания оконных приложений под Wayland, и от этого вопрос, почему был выбран x11? Планируется ли в дальнейшем миграция на Wayland?
Title: Re: Почему x11 - вопрос к разработчикам(-у)
Post by: Artem on May 18, 2026, 00:31:23
X11 требуется для работы глобальных горячих клавиш. На сколько я читал форумы, аналога XGrab в Wayland нет, а люди советуют использовать разного рода ухищрения, что меня категорически не устраивает.

Насколько я знаю в Delphi имеется возможность написания оконных приложений под Wayland

Не имеется. Delphi умеет только консольные приложения для линукса.

Планируется ли в дальнейшем миграция на Wayland?

Если не найдем аналога XGrab-у - нет.
Title: Re: Почему x11 - вопрос к разработчикам(-у)
Post by: pdy on May 18, 2026, 00:59:15
Интересно, насчёт глобальных горячих клавиш даже и не задумывался - действительно проблема. Спасибо за ответ
Title: Re: Почему x11 - вопрос к разработчикам(-у)
Post by: pdy on May 18, 2026, 05:34:39
Delphi умеет только консольные приложения для линукса.
Да, я понимаю. Я имел в виду компиляцию с использованием библиотек

Если не найдем аналога XGrab-у - нет.
Я глянул в obs используется XDG Desktop Portal, он замечательно подходит, но обёртки под Delphi он не имеет. Здесь скорее упор идёт в язык, а не в поиск аналогов, к сожалению. Так что да, ситуация патовая.
Title: Re: Почему x11 - вопрос к разработчикам(-у)
Post by: Artem on May 18, 2026, 08:14:40
Здесь скорее упор идёт в язык

Причем здесь язык? Причем Delphi?

используется XDG Desktop Portal, он замечательно подходит

Скиньте ссылку, посмотрю, как они это сделали (если сделали). Проблема именно в глобальных горячих клавишах, когда приложение свернуто и не имеет фокуса.
Title: Re: Почему x11 - вопрос к разработчикам(-у)
Post by: pdy on May 18, 2026, 13:50:38
Скиньте ссылку, посмотрю, как они это сделали (если сделали)
Оказывается в реализации под wayland у них обработчик событий пустой... Так что да, вы были абсолютно правы, язык ни при чем, это ограничение wayland'а, xdg не поможет, он там для другого используется. У меня было стойкое ощущение что там работают глобальные горячие клавишы под wayland, проверил - это не так.

https://github.com/obsproject/obs-studio/blob/5dacbb63fb17bbbf5bc556ec87f19f9cf8f962cf/libobs/obs-nix-wayland.c#L261 - в этом методе под комментарием написано почему так.

в obs просто написаны одновременно две реализации для x11 и wayland. И похоже, разработчики wayland не собираются вводить api для глобальных клавиш, из-за безопасности.
Title: Re: Почему x11 - вопрос к разработчикам(-у)
Post by: Artem on May 18, 2026, 14:05:12
И похоже, разработчики wayland не собираются вводить api для глобальных клавиш, из-за безопасности.

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

Когда я начинал портирование, главной моей целью было дать пользователям то, чего не может дать WINE-версия приложения. Хоткеи - один из этих пунктов. Поэтому будем сидеть на Х11 пока от нее не откажутся со всем, а что делать...
Title: Re: Почему x11 - вопрос к разработчикам(-у)
Post by: adem on May 23, 2026, 09:37:26
Вот что накопал:

- Для работы глобальных клавиш в Wayland, когда окно вне фокуса, есть XDG Desktop Portal (https://wiki.archlinux.org/title/XDG_Desktop_Portal_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)). Хоть он и разработан для Flatpak, но им могут пользоваться любые приложения.
- Документация по org.freedesktop.portal.GlobalShortcuts есть тут (https://flatpak.github.io/xdg-desktop-portal/docs/doc-org.freedesktop.portal.GlobalShortcuts.html).
- Правда дальше открывается самое интересное. Каждое окружение должно реализовывать свой бэкенд для XDG Desktop Portal, в рамках которого должна быть реализация интерфейса Global shortcuts portal. Согласно вики Арча (https://wiki.archlinux.org/title/XDG_Desktop_Portal#List_of_backends_and_interfaces), на данный момент его поддерживают только KDE, Gnome, Deepin и Hyprland.
- Какая-то реализация на С++ в EasyEffects (https://github.com/wwmm/easyeffects/blob/master/src/global_shortcuts.cpp) или реализация в Chromium (https://chromium-review.googlesource.com/c/chromium/src/+/5871484).


Title: Re: Почему x11 - вопрос к разработчикам(-у)
Post by: Artem on May 23, 2026, 10:23:10
Спасибо, посмотрю.