Whoa: Weston, the reference compositor for #Wayland, supports multiple physical independent mice at the same time!
-
Whoa: Weston, the reference compositor for #Wayland, supports multiple physical independent mice at the same time!
"New mouse, who dis?"
(I'll write up how to do this later!)
There are couple of surprises around window interaction:
- Once a cursor starts to resize/move a window, those actions are not possible for the other one.
- One cursor can open a menu, and the other one can use it, that one works pretty well!
- Closing a window with one cursor, while the other drags it, makes the second one *disappear*!I mean, these are really hard UI questions to solve! Often, it's not clear to me what the correct behavior should be!
-
There are couple of surprises around window interaction:
- Once a cursor starts to resize/move a window, those actions are not possible for the other one.
- One cursor can open a menu, and the other one can use it, that one works pretty well!
- Closing a window with one cursor, while the other drags it, makes the second one *disappear*!I mean, these are really hard UI questions to solve! Often, it's not clear to me what the correct behavior should be!
Okay, let's try some applications, and see how they deal with multiple mice!
First up: Gedit, a GTK application.
Both cursors can place the cursor and select text, but movement from one cursor "interrupts" the selection of the other one. Not very satisfying.
Imagine how cool it would be if both had their own selections + cursors!! That would allow a really neat form of collaboration within the same document!
-
Okay, let's try some applications, and see how they deal with multiple mice!
First up: Gedit, a GTK application.
Both cursors can place the cursor and select text, but movement from one cursor "interrupts" the selection of the other one. Not very satisfying.
Imagine how cool it would be if both had their own selections + cursors!! That would allow a really neat form of collaboration within the same document!
-
Next up: Chromium! It has a very pragmatic solution: It just *ignores* all cursors but the first one!
In the video, the arrow-shaped cursor can click on stuff. The turtle has no power here.
In Firefox, it seems like all mouse events are mashed together, and are seen as coming from the same device.
That means that both cursors can click β if the other one "holds still". Otherwise, I guess Firefox is very confused by a click on a link while the mouse is not in it!
Selections feel strange β the last-moving cursor will determine the selection.
Also notice how, if one cursor hovers a link, *both* turn into hand icons!
-
In Firefox, it seems like all mouse events are mashed together, and are seen as coming from the same device.
That means that both cursors can click β if the other one "holds still". Otherwise, I guess Firefox is very confused by a click on a link while the mouse is not in it!
Selections feel strange β the last-moving cursor will determine the selection.
Also notice how, if one cursor hovers a link, *both* turn into hand icons!
-
Of course, we *had* to try a drawing application next!
Here's @tldraw (in Firefox)!
Collaborative drawing at it's best!
Finally, I tried attaching an additional keyboard and assigned them to a different "seat"!
That worked really well! In Weston, each "seat" has its own keyboard focus, so you can actually work side-by-side with two mice + two keyboards independently!
Also!!! The two seats have their own (independent) clipboards!!!! Whatttt! π€―
I totally didn't expect this. But multi-seat as a concept seems deeply integrated into libinput + #Wayland! Now it's up to GUI toolkits and compositors to support it!
-
Finally, I tried attaching an additional keyboard and assigned them to a different "seat"!
That worked really well! In Weston, each "seat" has its own keyboard focus, so you can actually work side-by-side with two mice + two keyboards independently!
Also!!! The two seats have their own (independent) clipboards!!!! Whatttt! π€―
I totally didn't expect this. But multi-seat as a concept seems deeply integrated into libinput + #Wayland! Now it's up to GUI toolkits and compositors to support it!
Tried it again, and the independent clipboards still seem a bit glitchy after allβ¦
An issue asking for proper support in GTK was closed five years ago, for example⦠https://gitlab.gnome.org/GNOME/gtk/-/issues/1574
-
Tried it again, and the independent clipboards still seem a bit glitchy after allβ¦
An issue asking for proper support in GTK was closed five years ago, for example⦠https://gitlab.gnome.org/GNOME/gtk/-/issues/1574
-
F myrmepropagandist shared this topic
-
cursed