rust-windowing / winit

Window handling library in pure Rust
https://docs.rs/winit/
Apache License 2.0
4.73k stars 890 forks source link

Look for alternative cursor names on Wayland #3233

Closed acarl005 closed 10 months ago

acarl005 commented 10 months ago

Hello,

I notice that winit recently added some fallback cursor names for non-W3C compliant cursor themes, but only on X11. I was wondering if you think it makes sense to do this on Wayland as well? The default Ubuntu 22.04 installation has the "default" theme pointing to such a legacy theme, "DMZ-White".

Currently, running some of the winit examples, like the "drag_window" one are unable to set the cursor.

Although I am able to fix this on my own system by setting XCURSOR_THEME=Yaru, I'm concerned that many of the users of my app won't have this set. I haven't messed with any of the cursor config. It's just the default config for a fresh Ubuntu 22.04 installation.

cat /usr/share/icons/default/index.theme                                                                                                                                      13:18:08  
[Icon Theme]
Inherits=DMZ-White
ll /usr/share/icons/DMZ-White/cursors                                                                                                                               1m19s   13:17:58  
total 1.7M
lrwxrwxrwx 1 root root   14 Nov  8 06:36 00008160000006810000408080010102 -> v_double_arrow
lrwxrwxrwx 1 root root   14 Nov  8 06:36 028006030e0e7ebffc7f7070c0600140 -> h_double_arrow
lrwxrwxrwx 1 root root   14 Nov  8 06:36 03b6e0fcb3499374a867c041f52298f0 -> crossed_circle
lrwxrwxrwx 1 root root   14 Nov  8 06:36 08e8e1c95fe2fc01f976f1e063a24ccd -> left_ptr_watch
lrwxrwxrwx 1 root root    4 Nov  8 06:36 1081e37283d90000800003c07f3ef6bf -> copy
lrwxrwxrwx 1 root root   17 Nov  8 06:36 14fef782d02440884392942c11205230 -> sb_h_double_arrow
lrwxrwxrwx 1 root root   17 Nov  8 06:36 2870a09082c103050810ffdffffe0204 -> sb_v_double_arrow
lrwxrwxrwx 1 root root    4 Nov  8 06:36 3085a0e285430894940527032f8b26df -> link
lrwxrwxrwx 1 root root   14 Nov  8 06:36 3ecb610c1bf2410f44200f48c40d3599 -> left_ptr_watch
lrwxrwxrwx 1 root root    4 Nov  8 06:36 4498f0e0c1937ffe01fd06f973665830 -> move
lrwxrwxrwx 1 root root   14 Nov  8 06:36 5c6cd98b3f3ebcb1f9c7f1c204630408 -> question_arrow
lrwxrwxrwx 1 root root    4 Nov  8 06:36 6407b0e94181790501fd1e167b474872 -> copy
lrwxrwxrwx 1 root root    4 Nov  8 06:36 640fb0e74195791501fd1ed57b41487f -> link
lrwxrwxrwx 1 root root    4 Nov  8 06:36 9081237383d90e509aa00f00170e968f -> move
lrwxrwxrwx 1 root root    5 Nov  8 06:36 9d800788f1b08800ae810202380a0822 -> hand2
lrwxrwxrwx 1 root root    8 Nov  8 06:36 arrow -> left_ptr
-rw-r--r-- 1 root root  16K Dec 24  2017 bd_double_arrow
-rw-r--r-- 1 root root  16K Dec 24  2017 bottom_left_corner
-rw-r--r-- 1 root root  16K Dec 24  2017 bottom_right_corner
-rw-r--r-- 1 root root  16K Dec 24  2017 bottom_side
-rw-r--r-- 1 root root  16K Dec 24  2017 bottom_tee
lrwxrwxrwx 1 root root   15 Nov  8 06:36 c7088f0f3e6c8088236ef8e1e3e70000 -> bd_double_arrow
-rw-r--r-- 1 root root  16K Dec 24  2017 circle
-rw-r--r-- 1 root root  16K Dec 24  2017 color-picker
-rw-r--r-- 1 root root  16K Dec 24  2017 copy
-rw-r--r-- 1 root root  16K Dec 24  2017 cross
-rw-r--r-- 1 root root  16K Dec 24  2017 crossed_circle
-rw-r--r-- 1 root root  16K Dec 24  2017 crosshair
lrwxrwxrwx 1 root root    5 Nov  8 06:36 cross_reverse -> cross
lrwxrwxrwx 1 root root   14 Nov  8 06:36 d9ce0ab605698f320427677b458ad60b -> question_arrow
lrwxrwxrwx 1 root root    5 Nov  8 06:36 diamond_cross -> cross
-rw-r--r-- 1 root root  16K Dec 24  2017 dnd-ask
-rw-r--r-- 1 root root  16K Dec 24  2017 dnd-copy
-rw-r--r-- 1 root root  16K Dec 24  2017 dnd-link
-rw-r--r-- 1 root root  16K Dec 24  2017 dnd-move
-rw-r--r-- 1 root root  16K Dec 24  2017 dnd-none
-rw-r--r-- 1 root root  16K Dec 24  2017 dotbox
lrwxrwxrwx 1 root root    6 Nov  8 06:36 dot_box_mask -> dotbox
lrwxrwxrwx 1 root root   17 Nov  8 06:36 double_arrow -> sb_v_double_arrow
lrwxrwxrwx 1 root root    9 Nov  8 06:36 draft_large -> right_ptr
lrwxrwxrwx 1 root root    9 Nov  8 06:36 draft_small -> right_ptr
lrwxrwxrwx 1 root root    6 Nov  8 06:36 draped_box -> dotbox
lrwxrwxrwx 1 root root    5 Nov  8 06:36 e29285e634086352946a0e7090d73106 -> hand2
lrwxrwxrwx 1 root root   15 Nov  8 06:36 fcf1c3c7cd4491d801f1e1c78f100000 -> fd_double_arrow
-rw-r--r-- 1 root root  16K Dec 24  2017 fd_double_arrow
lrwxrwxrwx 1 root root    8 Nov  8 06:36 fleur -> grabbing
-rw-r--r-- 1 root root  16K Dec 24  2017 grabbing
lrwxrwxrwx 1 root root    5 Nov  8 06:36 hand -> hand2
lrwxrwxrwx 1 root root    5 Nov  8 06:36 hand1 -> hand2
-rw-r--r-- 1 root root  16K Dec 24  2017 hand2
lrwxrwxrwx 1 root root   17 Nov  8 06:36 h_double_arrow -> sb_h_double_arrow
lrwxrwxrwx 1 root root   14 Nov  8 06:36 help -> question_arrow
lrwxrwxrwx 1 root root    6 Nov  8 06:36 icon -> dotbox
-rw-r--r-- 1 root root  16K Dec 24  2017 left_ptr
lrwxrwxrwx 1 root root   14 Nov  8 06:36 left_ptr_help -> question_arrow
-rw-r--r-- 1 root root 478K Dec 24  2017 left_ptr_watch
-rw-r--r-- 1 root root  16K Dec 24  2017 left_side
-rw-r--r-- 1 root root  16K Dec 24  2017 left_tee
-rw-r--r-- 1 root root  16K Dec 24  2017 link
-rw-r--r-- 1 root root  16K Dec 24  2017 ll_angle
-rw-r--r-- 1 root root  16K Dec 24  2017 lr_angle
-rw-r--r-- 1 root root  16K Dec 24  2017 move
-rw-r--r-- 1 root root  16K Dec 24  2017 pencil
lrwxrwxrwx 1 root root    8 Nov  8 06:36 pirate -> X_cursor
-rw-r--r-- 1 root root  16K Dec 24  2017 plus
-rw-r--r-- 1 root root  16K Dec 24  2017 question_arrow
-rw-r--r-- 1 root root  16K Dec 24  2017 right_ptr
-rw-r--r-- 1 root root  16K Dec 24  2017 right_side
-rw-r--r-- 1 root root  16K Dec 24  2017 right_tee
-rw-r--r-- 1 root root  16K Dec 24  2017 sb_down_arrow
-rw-r--r-- 1 root root  16K Dec 24  2017 sb_h_double_arrow
-rw-r--r-- 1 root root  16K Dec 24  2017 sb_left_arrow
-rw-r--r-- 1 root root  16K Dec 24  2017 sb_right_arrow
-rw-r--r-- 1 root root  16K Dec 24  2017 sb_up_arrow
-rw-r--r-- 1 root root  16K Dec 24  2017 sb_v_double_arrow
lrwxrwxrwx 1 root root    6 Nov  8 06:36 target -> dotbox
-rw-r--r-- 1 root root  16K Dec 24  2017 tcross
lrwxrwxrwx 1 root root    8 Nov  8 06:36 top_left_arrow -> left_ptr
-rw-r--r-- 1 root root  16K Dec 24  2017 top_left_corner
-rw-r--r-- 1 root root  16K Dec 24  2017 top_right_corner
-rw-r--r-- 1 root root  16K Dec 24  2017 top_side
-rw-r--r-- 1 root root  16K Dec 24  2017 top_tee
-rw-r--r-- 1 root root  16K Dec 24  2017 ul_angle
-rw-r--r-- 1 root root  16K Dec 24  2017 ur_angle
lrwxrwxrwx 1 root root   17 Nov  8 06:36 v_double_arrow -> sb_v_double_arrow
-rw-r--r-- 1 root root 478K Dec 24  2017 watch
-rw-r--r-- 1 root root  16K Dec 24  2017 X_cursor
-rw-r--r-- 1 root root  16K Dec 24  2017 xterm
kchibisov commented 10 months ago

run cargo update -p client-toolkit, it's supported since 0.18.1.

acarl005 commented 10 months ago

Thanks for your help!