wayland: add dwl/mango support#609
wayland: add dwl/mango support#609charlesrocket wants to merge 1 commit intoquickshell-mirror:masterfrom
Conversation
Merges charlesrocket's dwl branch (PR quickshell-mirror#609) with wl_proto() refactor replacing hand-rolled protocol bindings.
outfoxxed
left a comment
There was a problem hiding this comment.
Wayland protocols are not implemented like this in a qt project. Look at
https://github.com/quickshell-mirror/quickshell/tree/master/src/wayland/hyprland/global_shortcuts for a simple one. We also never check in generated code.
Oh, missed that one! It is not generated tho, just a bespoke implementation 😺 |
|
I see how you could potentially miss the QtWayland tooling and qtwaylandscanner but how do you miss wayland-scanner? Nobody does that part by hand |
|
It was pretty late, and DWL spec is not long enough for me to look for easy ways ahah |
51955ce to
4c7ebfc
Compare
outfoxxed
left a comment
There was a problem hiding this comment.
Partial review:
Can you clarify if tags are functionally per monitor or global? the global tagCount seems to indicate they're global, and if setting client tags via monitor affects global or monitor state?
| class DwlIpcOutput | ||
| : public QObject | ||
| , public QtWayland::zdwl_ipc_output_v2 { |
There was a problem hiding this comment.
Undecided on if its OK to merge the implementation and interface on this one
| /// Title of the focused window, empty if none. | ||
| Q_PROPERTY(QString title READ title NOTIFY titleChanged); | ||
| /// App ID of the focused window, empty if none. | ||
| Q_PROPERTY(QString appId READ appId NOTIFY appIdChanged); |
There was a problem hiding this comment.
Duplicates information exposed by toplevel management less usefully.
| /// Whether a client is fullscreen on this output. | ||
| Q_PROPERTY(bool fullscreen READ fullscreen NOTIFY fullscreenChanged); |
| /// Whether the focused client is floating. | ||
| Q_PROPERTY(bool floating READ floating NOTIFY floatingChanged); |
There was a problem hiding this comment.
If exposed at all this should probably be attached to toplevel
|
Also does mango support the ext-workspace protocol? We have a mostly done implementation on a branch that I could fix up and merge, which is strictly an improvement over this protocol. |
DWL is all per output Tho tag count and layouts are global. |
Looks like it does https://github.com/mangowm/mango/blob/d441ca22f4bd7554f04defdd36f13bedc38610e7/src/ext-protocol/ext-workspace.h |
|
The upcoming release of wlroots0.20 has also integrated the encapsulation support of the ext-workspace protocol. At that time, most compositor will only need little code to use this protocol. refer: |
Tested with
mango0.12.4(release)Closes #457/#51