Bối cảnh: Tôi đang làm việc trên một phần mềm có tên ActivityWatch ghi lại những gì bạn thực hiện trên máy tính của mình. Về cơ bản một nỗ lực giải quyết một số vấn đề với: RescueTime, selfspy, arbtt, v.v.Làm cách nào để có cửa sổ hoạt động trên Gnome Wayland?
Một trong những điều cốt lõi chúng tôi làm là ghi lại thông tin về cửa sổ hiện hoạt (lớp và tiêu đề). Trong quá khứ, điều này đã được thực hiện bằng cách sử dụng trên Linux bằng cách sử dụng xprop và bây giờ python-xlib mà không có vấn đề.
Nhưng bây giờ chúng tôi gặp sự cố: Wayland đang tăng lên và theo như tôi thấy Wayland không có khái niệm về cửa sổ đang hoạt động. Vì vậy, nỗi sợ của tôi là chúng tôi sẽ phải thực hiện hỗ trợ cho từng môi trường máy tính để bàn có sẵn cho Wayland (giả sử họ sẽ cung cấp khả năng nhận thông tin về cửa sổ đang hoạt động).
Hy vọng rằng cuối cùng họ sẽ hội tụ và có một số giao diện chung cho có được điều này được thực hiện, nhưng tôi không giữ hơi thở của tôi ...
Tôi đã anticipating this issue. Nhưng hôm nay chúng tôi đã nhận được first user request for Wayland support bởi một người dùng Wayland thực tế. Khi các bản phân phối lớn hơn áp dụng Wayland làm giao thức máy chủ hiển thị mặc định (Fedora 25 đã sử dụng nó, Ubuntu sẽ chuyển sang phiên bản 17.10 sắp tới) tình hình sẽ trở nên nghiêm trọng hơn theo thời gian.
các vấn đề có liên quan cho ActivityWatch:
- https://github.com/ActivityWatch/aw-watcher-window/issues/18
- https://github.com/ActivityWatch/activitywatch/issues/92
có các ứng dụng khác như ActivityWatch rằng sẽ yêu cầu các chức năng tương tự (RescueTime, arbtt, selfspy, vv), họ dường như không hỗ trợ Wayland ngay bây giờ và tôi không thể tìm thấy bất kỳ chi tiết nào về việc họ có kế hoạch làm như vậy.
Tôi hiện đang quan tâm đến việc triển khai hỗ trợ cho Gnome để bắt đầu với và theo dõi những người khác khi đường dẫn trở nên rõ ràng hơn.
Một câu hỏi tương tự liên quan đến Weston đã được yêu cầu ở đây: get the list of active windows in wayland weston
Edit: Tôi hỏi trong #wayland trên freenode, đã trả lời như sau:
15:20:44 ErikBjare Hello everybody. I'm working on a piece of self-tracking software called ActivityWatch (https://github.com/ActivityWatch/activitywatch). I know this isn't exactly the right place to ask, but I was wondering if anyone knew anything about getting the active window in any Wayland-using DE.
15:20:57 ErikBjare Created a question on SO: https://stackoverflow.com/questions/45465016/how-do-i-get-the-active-window-on-gnome-wayland
15:21:25 ErikBjare Here's the issue in my repo for it: https://github.com/ActivityWatch/activitywatch/issues/92
15:22:54 ErikBjare There are a bunch of other applications that depend on it (RescueTime, selfspy, arbtt, ulogme, etc.) so they'd need it as well
15:24:23 blocage ErikBjare, in the core protocol you cannot know which windnow has the keyboard or cursor focus
15:24:39 blocage ErikBjare, in the wayland core protocol *
15:25:10 blocage ErikBjare, you can just know if your window has the focus or not, it a design choise
15:25:23 blocage avoid client spying each other
15:25:25 ErikBjare blocage: I'm aware, that's my reason for concern. I'm not saying it should be included or anything, but as it looks now every DE would need to implement it themselves if these kind of applications are to be supported
15:25:46 ErikBjare So wondering if anyone knew the teams working with Wayland on Gnome for example
15:26:11 ErikBjare But thanks for confirming
15:26:29 blocage ErikBjare, DE should create a custom extension, or use D-bus or other IPC
15:27:31 blocage ErikBjare, I guess some compositor are around here, but I do not know myself if there is such extension already
15:27:44 blocage compositor developers *
15:28:36 ErikBjare I don't think there is (I've done quite a bit of searching), so I guess I need to catch the attention of some DE developers
15:29:16 ErikBjare Thanks a lot though
15:29:42 ErikBjare blocage: Would you mind if I shared logs of our conversation in the issue?
15:30:05 blocage just use it :) it's public
15:30:19 ErikBjare ty :)
Chỉnh sửa 2: Filed một enhancement issue in the Gnome bugtracker.
tl; dr: Làm cách nào để có cửa sổ hoạt động trên Gnome khi sử dụng Wayland?
Thoạt nhìn, điều này có vẻ tốt. Tôi không thể kiểm tra điều này ngay bây giờ nhưng theo [tài liệu trên 'screen_get_default'] (https://developer.gnome.org/libwnck/stable/WnckScreen.html#wnck-screen-get-default):" Điều này có thể trả về NULL nếu không có trên X11. " Tôi đang kiềm chế sự lạc quan của mình bây giờ ... – erb
Đây là cảnh báo mà 'Wnck.Screen.get_default()' cho: '(.: 9342): Wnck-CẢNH BÁO **: libwnck được thiết kế để hoạt động chỉ trong X11 , không tìm thấy hiển thị hợp lệ' – sebix