Альтернатива Wayland для xorg's xdotool?


16

xdotool - це приємний додаток X

Це дійсно проста у використанні та зручна, але я не знаю жодної програми, сумісної з цим способом. Чи є якийсь спосіб відправити вхідні сигнали миші та клавіатури в Wayland зараз схоже на xdotool для X?

Зараз він працює в значній мірі з xwayland, але не всі команди працюють (наприклад, alt + f4, xev навіть може прочитати вхід alt + f4, але він не запускає завершення програми, як натискання на клавіатурі). потенційно не використовується xwayland.


Відповіді:


3

Ні, такі функції були чітко виключені з дизайну Wayland з міркувань безпеки. (Читання введення інших програм є найбільшою проблемою, але дозволити надсилання фальшивих даних в інші програми також може призвести до проблем.)

Однак, я очікую, що деякі Wayland WM зрештою реалізують якусь функцію макросів; В кінці кінців, вони будуть потребувати підтримки на екрані клавіатури і голосового управління (для доступності).

Але якби така функція існувала, це залежало б від того, який композитор Wayland ви використовуєте: Weston? KWin KDE? Шкаралупа GNOME? Просвіт? У Вейленді немає розділеного "сервера відображення - менеджер вікон"; менеджер вікон - це сервер Wayland і визначає, які функції використовувати (як підпротоколи Wayland, або як API D-Bus або подібні).


1
Слід створити таку програму, яка працює для всіх композиторів Wayland. Libinput пересилає введення користувача в Wayland, і саме через libinput можна запускати alt + f4 та інші команди, які використовують функцію Wayland. Все, що вам потрібно зробити - це обдурити лібінпут в читанні макросу як клавіатури або миші; це те, що я думаю, але я не маю уявлення, як це зробити самостійно.
Cestarian

@Cestarian: Вам доведеться створити підроблений пристрій введення з функцією введення ядра.
користувач1686

1
це не повинно бути таким складним, я пам'ятаю, що робив це в деяких роботах драйверів один раз, можливо, якщо я просто подивлюсь на цей код, я міг би зрозуміти якийсь спосіб. (Хоча я ніколи не знав, чим я займався)
Cestarian

1
У списку розсилки був RFC: RFC: Інтерфейс для введення подій введення та Додати API для зйомки екрана та запису екраністів . Здається, що проблеми можна було б вирішити за допомогою додаткових заходів з посилення безпеки.
Бен Крізі

3

Наразі ідеального рішення немає, але є близьке: ydotool .

Він використовує інтерфейс uinput як бекенд, і не має залежності від серверів відображення.


На жаль, я не зміг змусити його працювати на Ubuntu 19.04. Я встановив libboost-program-options-dev, libevdevplus, libuinputplusі , нарешті, ydotoolсам , але я все ще отримуюydotool: error while loading shared libraries: libboost_program_options.so.1.65.1: cannot open shared object file: No such file or directory
m93a
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.