Xorg's xdotool için Wayland alternatifi?


16

xdotool güzel bir X uygulamasıdır, makro komutları oluşturmak için kullanmaya eğilimliyim (alt + f4 veya ctrl + w veya ctrl + alt + backspace veya bunun gibi bir şey)

Kullanımı gerçekten kolay ve kullanışlı, ancak böyle bir uyumlu program bilmiyorum. X için xdotool'a benzer şekilde fare ve klavye giriş sinyallerini yol kenarına göndermenin herhangi bir yolu var mı?

Şu anda büyük ölçüde xwayland ile çalışıyor, ancak tüm komutlar çalışmıyor (alt + f4, xev alt + f4 girişini bile okuyabilir, ancak klavyede basmak gibi uygulama sonlandırmasını tetiklemez) potansiyel olarak xwayland kullanmıyor.


Yanıtlar:


3

Hayır, bu tür özellikler güvenlik nedeniyle Wayland tasarımından açıkça hariç tutulmuştur. (Diğer programların girdilerini okumak en büyük sorundur, ancak sahte girdilerin başka programlara gönderilmesine izin vermek de sorunlara yol açabilir.)

Bununla birlikte, bazı Wayland WM'lerinin sonunda bir çeşit makro özelliği uygulamasını bekliyorum; Sonuçta, onlar olacak ekran klavyeyi ve (erişilebilirlik için) sesli kumanda desteklemesi gerekir.

Ancak böyle bir özellik mevcutsa, hangi Wayland bestecisini kullandığınıza bağlı olacaktır: Weston? KDE'den KWin mi? GNOME Kabuğu? Aydınlanma? Wayland'da bölünmüş "görüntü sunucusu - pencere yöneticisi" yoktur; pencere yöneticisi olan Wayland sunucu ve (Wayland alt protokolleri gibi veya D-Bus API'ler veya, ya aşağıdaki gibi) uygulamaya sahiptir karar verir.


1
Tüm yol diyarı bestecileri için çalışan böyle bir program oluşturmayı düşünüyorum. Libinput kullanıcı girişini wayland'a iletir ve libinput aracılığıyla alt + f4 ve bir wayland işlevi kullanan diğer komutlar tetiklenebilir. Tek yapmanız gereken, bir makroyu klavye veya fare girişi olarak okumak için libinput'u kandırmaktır; Bence bu, ama bunu kendim nasıl yapacağım hakkında hiçbir fikrim yok.
Cestarian

@Cestarian: Çekirdeğin uinput özelliği ile sahte bir giriş cihazı oluşturmanız gerekir.
user1686

1
o kadar zor olmamalı, bazı sürücü çalışmalarında bir kez yapmayı hatırlıyorum, belki de sadece bu koda bakarsam bir şekilde anlayabilirim. (O sırada ne yaptığımı hiç
bilmememe rağmen

1
Bir posta listesinde bir RFC vardı: RFC: Giriş olaylarının enjeksiyonu için arayüz ve ekran görüntüleri almak ve ekran kayıtlarını kaydetmek için bir API ekleyin . Bazı ek güvenlik güçlendirme çalışmaları ile zorlukların üstesinden gelinebilir gibi görünüyor.
Ben Creasy

3

Şu anda mükemmel bir çözüm yok, ama yakın bir çözüm var: ydotool .

Uinput arabirimini arka uç olarak kullanır ve görüntüleme sunucularına bağımlı değildir.


Ne yazık ki Ubuntu 19.04'te çalıştıramadım. Ben yüklü libboost-program-options-dev, libevdevplus, libuinputplusve nihayet ydotoolkendisi , ama yine de alıyorumydotool: error while loading shared libraries: libboost_program_options.so.1.65.1: cannot open shared object file: No such file or directory
m93a
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.