Wayland extension to support window positioning
I am the maintainer of Tilix, a terminal emulator for Gnome that leverages the VTE GTK widget. One feature that Tilix implements is the so-called quake mode where a user can press a configurable key to have the window pop-up at the top or bottom of the screen.
In order to get quake mode working in Wayland I essentially hacked it by forcing the window to 100% which caused the Window manager (mutter I presume) to position the quake window at the top of the screen. It worked reasonably OK but obviously there were a number of issues with it. For example, on displays with multiple monitors there was no way to position the window on the right monitor, users want to control the width like they did in X11, etc.
I ended up dropping quake mode support for Wayland given the number of support issues I was getting due to the inability to support window positioning. However it has been noted to me a few times that another opensource terminal emulator works just fine in a quake-like mode under Wayland and that is yuakake. Looking at it's source code it appears to be leveraging a Wayland extension to do it's work:
https://github.com/KDE/yakuake/blob/master/app/mainwindow.cpp#L157
and
https://github.com/KDE/yakuake/blob/master/app/mainwindow.cpp#L191
Looking at the Wayland protocol definition for PlasmaShell it looks like they have the functionality to position windows defined here:
https://github.com/KDE/kwayland/blob/master/src/client/protocols/plasma-shell.xml#L170
Looking at the similar file for gtk-shell I don't see anything similar:
https://github.com/GNOME/mutter/blob/master/src/wayland/protocol/gtk-shell.xml
I have a lot of people asking me for Wayland support of quake mode in Tilix where the terminal emulator sticks at the top or bottom of the screen. Without being able to explicitly position the window this isn't possible. I'm not very familiar with Mutter or Wayland, thus looking for some help/advice on how to make this happen.
I realize that window positioning in Wayland is not permitted for security reasons however it does appear that KDE has opted not to do that assuming I'm reading the code correctly. If the answer is no because of these security reasons that's fine, but did want to explore what my options are if any.