Alternativa di Wayland per xdotool di xorg?


16

xdotool è una bella applicazione X, tendo a usarla per creare comandi macro (come alt + f4 o ctrl + w o ctrl + alt + backspace o qualcosa del genere)

È davvero facile da usare e conveniente, ma non conosco nessun programma compatibile con Wayland come questo. c'è un modo per inviare segnali di input di mouse e tastiera a Wayland in questo momento simile a xdotool per X?

Funziona in gran parte con xwayland in questo momento, ma non tutti i comandi funzionano (come alt + f4, xev può persino leggere l'input alt + f4 ma non attiva la chiusura dell'applicazione come premendolo sulla tastiera) c'è anche la questione di potenzialmente non utilizza xwayland.


Risposte:


3

No, tali caratteristiche sono state esplicitamente escluse dal progetto Wayland per motivi di sicurezza. (Leggere l'input di altri programmi è il problema più grande, ma consentire l'invio di input falsi ad altri programmi può causare problemi.)

Detto questo, mi aspetto che alcuni WM Wayland alla fine implementino una sorta di funzione macro; dopo tutto, dovranno supportare tastiere su schermo e controllo vocale (per accessibilità).

Ma se esistesse una tale caratteristica, dipenderà da quale compositore di Wayland stai usando: Weston? KDE è KWin? GNOME Shell? Illuminismo? Non esiste un "server di visualizzazione - window manager" suddiviso in Wayland; il gestore delle finestre è il server Wayland e decide quali funzionalità implementare (come sotto-protocolli Wayland o come API D-Bus o simili).


1
Dovrei essere possibile, penso, per creare un programma del genere che funzioni per tutti i compositori delle vie di comunicazione. Libinput inoltra l'input dell'utente a Wayland ed è attraverso Libinput che possono essere attivati ​​alt + f4 e altri comandi che utilizzano una funzione Wayland. Tutto quello che devi fare è ingannare libinput nella lettura di una macro come input da tastiera o mouse; è quello che penso, ma non ho idea di come farlo da solo.
Cestarian,

@Cestarian: Dovresti creare un dispositivo di input falso con la funzione uinput del kernel.
user1686

1
non dovrebbe essere così difficile, ricordo di averlo fatto in alcuni lavori di guida una volta, forse se solo guardassi quel codice potrei capire in qualche modo. (Anche se non ho mai saputo cosa stavo facendo in quel momento)
Cestarian il

1
C'era una RFC in una mailing list: RFC: Interfaccia per l'iniezione di eventi di input e Aggiungi un'API per acquisire schermate e registrare screencast . Sembra che le sfide potrebbero essere affrontate con un ulteriore lavoro di rafforzamento della sicurezza.
Ben Creasy,

3

Al momento non esiste una soluzione perfetta, ma ce n'è una vicina: ydotool .

Utilizza l' interfaccia uinput come backend e non ha dipendenze dai server di visualizzazione.


Purtroppo non sono riuscito a farlo funzionare su Ubuntu 19.04. Ho installato libboost-program-options-dev, libevdevplus, libuinputpluse, infine, la ydotoolstessa , ma sto ancora ricevendoydotool: error while loading shared libraries: libboost_program_options.so.1.65.1: cannot open shared object file: No such file or directory
m93a
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.