Wayland thay thế cho xdotool của xorg?


16

xdotool là một ứng dụng X đẹp, tôi có xu hướng sử dụng nó để tạo các lệnh macro (như alt + f4 hoặc ctrl + w hoặc ctrl + alt + backspace hoặc đại loại như thế)

Nó thực sự dễ sử dụng và tiện lợi, nhưng tôi không biết bất kỳ chương trình tương thích với đường nào như thế này. Có cách nào để gửi tín hiệu đầu vào chuột và bàn phím đến wayland ngay bây giờ tương tự như xdotool cho X không?

Nó hoạt động chủ yếu với xwayland ngay bây giờ, nhưng không phải tất cả các lệnh đều hoạt động (chẳng hạn như alt + f4, xev thậm chí có thể đọc đầu vào alt + f4 nhưng nó không kích hoạt chấm dứt ứng dụng như nhấn nó trên bàn phím) cũng có vấn đề về có khả năng không sử dụng xwayland.


Câu trả lời:


3

Không, các tính năng như vậy đã bị loại trừ rõ ràng khỏi thiết kế Wayland vì lý do bảo mật. (Đọc đầu vào của các chương trình khác là vấn đề lớn nhất, nhưng cho phép đầu vào giả được gửi đến các chương trình khác cũng có thể dẫn đến rắc rối.)

Điều đó nói rằng, tôi thực sự mong đợi một số Wayland WM cuối cùng sẽ thực hiện một số tính năng macro; sau tất cả, họ sẽ cần hỗ trợ bàn phím trên màn hình và điều khiển giọng nói (để truy cập).

Nhưng nếu một tính năng như vậy tồn tại, nó sẽ phụ thuộc vào nhà soạn nhạc Wayland mà bạn đang sử dụng: Weston? KDE của KDE? Vỏ Gnome? Giác ngộ? Không có phân chia "máy chủ hiển thị - trình quản lý cửa sổ" trong Wayland; trình quản lý cửa sổ máy chủ Wayland và quyết định các tính năng sẽ triển khai (như các giao thức con Wayland hoặc API D-Bus hoặc như vậy).


1
Tôi có thể nghĩ rằng nên tạo ra một chương trình như vậy hoạt động cho tất cả các bộ tổng hợp wayland. Libinput chuyển tiếp đầu vào của người dùng vào wayland và thông qua libinput, alt + f4 và các lệnh khác sử dụng hàm wayland có thể được kích hoạt. Tất cả những gì bạn phải làm là lừa libinput để đọc macro dưới dạng đầu vào bàn phím hoặc chuột; là những gì tôi nghĩ, nhưng tôi không biết làm thế nào để tự làm điều đó.
Cestarian

@Cestarian: Bạn sẽ phải tạo một thiết bị đầu vào giả với tính năng uinput của kernel.
dùng1686

1
Nó không phải là khó khăn, tôi nhớ lại làm điều đó trong một số trình điều khiển làm việc một lần, có lẽ nếu tôi chỉ nhìn vào mã đó tôi có thể tìm ra một cách nào đó. (Mặc dù tôi không bao giờ biết những gì tôi đang làm vào thời điểm đó)
Cestarian

1
Có một RFC trong danh sách gửi thư: RFC: Giao diện để tiêm các sự kiện đầu vàoThêm API để chụp ảnh màn hình và ghi lại các đoạn ghi hình . Có vẻ như các thách thức có thể được giải quyết với một số công việc tăng cường bảo mật bổ sung.
Ben Creasy

3

Hiện tại không có giải pháp hoàn hảo, nhưng có một giải pháp gần gũi: ydotool .

Nó sử dụng giao diện uinput làm phụ trợ và không phụ thuộc vào máy chủ hiển thị.


Đáng buồn là tôi không thể làm cho nó chạy trên Ubuntu 19.04. Tôi đã cài đặt libboost-program-options-dev, libevdevplus, libuinputplusvà cuối cùng là ydotoolbản thân , nhưng tôi vẫn nhậnydotool: error while loading shared libraries: libboost_program_options.so.1.65.1: cannot open shared object file: No such file or directory
m93a
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.