QoL improvements for nested mode
Feature summary
I'm not sure nested
mode was ever intended to be a first-class feature or just used for debugging/development. I suspect it's the latter, but I'm trying to use it as part of software suite I'm building so I need it to be a little closer to the former and there are a few pretty small things I've identified to get it there, at least for my use case.
How would you like it to work
Nested window creation
I'd like to have some more control over how the nested window is created within my primary compositor. I haven't tried on Wayland yet, but at least on X11 I'd like to be able to create a borderless window, maximized or fullscreen, and be able to hint at which monitor to default to.
Mouse/keyboard/clipboard
I've noticed a couple things that are odd about how nested mode works with these events:
- Mouse scroll wheel and touch-pad scroll events don't seem to be passed to any application I launch EXCEPT, for some reason, the Settings app.
- Interact with the host's clipboard, in both directions (copying in mutter also copies to the host clipboard). Alternatively, copy/paste events only come from the host and are just delegated to the nested Mutter session if the nested Mutter window is focused (so the nested session behaves just like any other app running on the host).
Implementation
Since this wouldn't top anyone else's priority list, I expect that I would be the one to make these changes, but I need some help isolating where mutter interacts with the host compositor to create its nested window (for the borderless, fullscreen, and monitor hinting mechanisms). I've tried finding this myself but since mutter itself is a compositor I've found it difficult to identify exactly where nested mode is interacting with the host compositor.
Any context you could provide for the clipboard and scrolling pieces would be helpful as well.