Replies: 13 comments 44 replies
-
Any idea / proposal about this? @sahilyeole |
Beta Was this translation helpful? Give feedback.
-
Has this crate been tried before? If not, I think it might help us. However, I have not tested it yet (I'm still figuring out how to get |
Beta Was this translation helpful? Give feedback.
-
Progress? |
Beta Was this translation helpful? Give feedback.
-
Pipewire's metadata seems to be the answer. obs has its implementation. Figuring out how we can implement it as well. |
Beta Was this translation helpful? Give feedback.
-
@fufesou what is the problem of obs implementation? we tried out before, and then paused. |
Beta Was this translation helpful? Give feedback.
-
Hi @fufesou, Also, did you previously attempt to set the cursor mode value to 4 and extract cursor metadata from the stream? rustdesk/libs/scrap/src/wayland/pipewire.rs Line 495 in d688e34 |
Beta Was this translation helpful? Give feedback.
-
@fufesou Are you aware of or have any clue about these wayland behaviours?
Also, when 2 happens the cursor image is always shown. |
Beta Was this translation helpful? Give feedback.
-
Sorry I'm not a dev, but I think this might be interesting for you guys https://github.com/flatpak/xdg-desktop-portal/releases/tag/1.18.0
|
Beta Was this translation helpful? Give feedback.
-
The cursor capture is already working because rustdesk/src/platform/linux.rs Line 119 in 230eb76 But, the cursor capture fails sometimes (showing blue circle instead). So, I'm debugging that. |
Beta Was this translation helpful? Give feedback.
-
The wayland clipboard on the controlled side also do not work if |
Beta Was this translation helpful? Give feedback.
-
Are you sure you are doing in the correct way? Since you mentioned it worked before #5809. |
Beta Was this translation helpful? Give feedback.
-
I'm not sure if this solution is acceptable, but I can compile and run a c code separately which will handle the XOpenDisplay connection and XFixesGetCursorImage and then give its output to Below is the working c code for printing the latest cursor serial on loop (tested on wayland), I can use its output for #include <stdio.h>
#include <stdlib.h>
#include <X11/Xlib.h>
#include <X11/extensions/Xfixes.h>
#include <unistd.h>
int main() {
Display *display = XOpenDisplay(NULL);
if (!display) {
fprintf(stderr, "Failed to open X display\n");
return 1;
}
long previous_serial = -1;
while (1) {
XFixesCursorImage *img = XFixesGetCursorImage(display);
if (img) {
if (img->cursor_serial != previous_serial) {
printf("Cursor serial: %ld\n", img->cursor_serial);
previous_serial = img->cursor_serial;
}
XFree(img);
} else {
fprintf(stderr, "Failed to get cursor image\n");
}
sleep(0.5);
}
XCloseDisplay(display);
return 0;
} Let me know if it's acceptable or not. |
Beta Was this translation helpful? Give feedback.
-
@fufesou take over this issue, @sahilyeole is not capable of this issue. This is high priority since I plan to release this in 1.2.3. |
Beta Was this translation helpful? Give feedback.
-
rustdesk/src/platform/linux.rs
Line 113 in 309cb10
Beta Was this translation helpful? Give feedback.
All reactions