00:33mclasen: any1: no such place around here, but I could be convinced to make the trek to weston
15:45wlb: wayland Simon Ser pushed a new branch 1.23 https://gitlab.freedesktop.org/wayland/wayland/tree/1.23
15:45wlb: wayland/1.23: Simon Ser * 7 commits https://gitlab.freedesktop.org/wayland/wayland/compare/0000000000000000000000000000000000000000...a9fec8dd65977c57f4039ced34327204d9b9d779
15:47wlb: wayland New tag: 1.23.1 https://gitlab.freedesktop.org/wayland/wayland/tags/1.23.1
15:51vyivel: nice hash heh
20:18 #dri-devel: DemiMarie: But that is a topic for #_oftc_#wayland:matrix.org
20:20DemiMarie: Company: for GTK, adapting to server-side decorations might just mean not drawing close/minimize/maximize icons
20:20 #dri-devel: DemiMarie: #_oftc_#wayland:matrix.org
20:21Company: there's also the problem that GTK treats the server side preference as a global thing and xdg-decoration doesn't have that concept
20:23DemiMarie: what do you mean?
20:23DemiMarie: as opposed to per-surface?
20:23Company: yeah
20:24Company: GTK does setup of the window before creating the Wayland resources
20:25Company: so the assumption so far is that you can check the GdkDisplay to see if the server wants csd or ssd
20:25Company: the org_kde_decoration protocol worked that way
20:26emersion: i've suggested before to just make the GTK titlebar look like a toolbar
20:27Company: yeah, just like i've suggested to just not draw decorations
20:27Company: it's easy to point fingers at the other
20:28emersion: some compositors _really_ can't
20:28emersion: if GTK is in a tab in sway, there is _no way_ to not draw the titlebar for sway
20:28emersion: GTK _can_ hide the buttons
20:28Company: I'm aware
20:29Company: yeah, just hiding the buttons is ertainly possible, but then you still have the titlebar
20:29Company: well, potentially
20:30Company: I would prefer the protocol to treat compositor and app as equals
20:31emersion: i don't see what that would add
20:31emersion: that wouldn't change anything for GTK
20:31Company: it would change one important thing: people are not gonna blame GTK
20:31Company: but instead blame both sides
20:32emersion: good technical argument
20:33Company: this has never been a technical argument but a game of 2 sides shouting at each other saying the other MUST act a certain way
20:33emersion: there's no MUST - it's completely fine to not support the protocol if you really don't want to
20:33emersion: it'
20:33emersion: ll look bad, and that's it
20:34Company: yeah, but if you support the protocol, you MUST do certain things
20:36Company: I'd want a protocol that sees both sides as equals and says "both sides can do whatever they want but that may lead to a degraded user experience due to complete lack or duplication of decorations"
20:36emersion: well of course, if you support the protocol, it means you support SSD to some extent
20:37emersion: there is no upside to this apporach, only more complexity
20:38Company: dunno
20:38emersion: if both sides disagree, one _needs_ to have a final say
20:38emersion: there's no way around it
20:38Company: sure
20:38Company: well
20:39Company: currently both sides can do whatever they want
20:39Company: but if both or neither draw decorations, it's suboptimal
20:39mclasen: csd, on a weekend ?
20:39mclasen:decides that it is too sunny outside for interminable discusions of unsolvable problems
20:40emersion: that is very fair :D
20:40llyyrr: is there a technical reason why gtk can't hide decorations or is it a philosophical one?
20:41emersion: the headerbar has important things in it and is an integral part of the app
20:41soreau: they put buttons critical to app operation in the titlebar for one
20:41Company: llyyrr: the technical reason is that applications aren't tested to work without decorations
20:41emersion: can't juts hide the thing
20:41emersion: well
20:41emersion: i have `gtk-decoration-layout=:`
20:41emersion: good enough
20:41Company: llyyrr: and just futzing with it can lead to degraded ui that's worse than just double drawing decorations
20:42soreau: It should be just draw your square and let the compositor handle it
20:42Company: soreau: people should have argued for that before Wayland's core protocol was settled
20:43soreau: Company: there were many that yelled and whined but they were ignored
20:43soreau: idk if you remember the topic here but it was banned from discussion at some point
20:43soreau: like how are you supposed to shade a window? oh, now the client has to do it because, what?
20:44emersion: … let's not rehash that one please
20:44soreau: well shade is a new one
20:44Company: hey, I wasn't a fan of csd but people pushed it into all the X WMs
20:44Company: so GTK could do csd
20:44soreau: if anyone is not familiar, you i.e. scroll on titlebar to have the window scroll up into the titlebar, so it becomes the size of the titlebar
20:45soreau: shade
20:45Company: and then people did Wayland and made it default
20:45YaLTeR[m]: as far as im concerned if gtk responds to xdg-decoration SSD with the equivalent of the current xdg tiled state, that's already 90% of the way there
20:46llyyrr: it might be hard to quantify how prevailing this opinion is, but gtk just supporting xdg-decoration and not drawing buttons when asked to not do csd would already be better than the status quo
20:46soreau: yea, xdg-decoration support could help a lot
20:47Company: one thing that would help would be a server preference, instead of just a per-surface one
20:48soreau: there is in kde-decor protocol
20:48Company: that's why gtk does kde-decor
20:48soreau: well AFAIU, xdg-decoration does better negotiation
20:48soreau: so upfront choice is not needed
20:48Company: upfront choice is needed because that's how GTK works
20:49soreau: now that's not a valid reason
20:49Company: you look at the preference, then setup your window, then create the Wayland resources
20:49Company: so the wl_surface is created after the GtkWindow exists
20:50Company: but the wl_compositor exists before, as it's done in gtk_init()
20:50soreau: If I had it my way, GTK would be able to use no, csd or ssd, selectable at runtime
20:50soreau: from compositor options
20:50Company: and we have gdk_display_prefers_ssd() or whatever that function is called
20:51DemiMarie: Company: could GTK be changed to work the way xdg-decoration requires?
20:51soreau: yes
20:51soreau: any client can
20:51Company: you can change everything
20:51DemiMarie: Sway cannot not draw SSDs
20:51Company: but I don't think it makes sense to just fudge with application UIs
20:52Company: we had that issue 5-10 years ago with menus
20:52DemiMarie: Does GTK draw the close button?
20:52DemiMarie: Or does the app?
20:52Company: when Unity wanted to show menus in the panel, like on mac OS
20:52emersion: GTK does
20:52Company: DemiMarie: usually the app instructs GTK to do it
20:52Company: we have a GtkWindowControls widget
20:52soreau: and gtk renders based on theme, basically
20:53emersion: yeah, and can't that just be empty?
20:53DemiMarie: so that widget could just be a no-op
20:53Company: that can be empty, yeah
20:53emersion: it already can be empty with a pref
20:53Company: I think it's even fed via our platform settings
20:54Company: you could probably override the platform setting for the buttons in the wayland setting code based on decoration
20:55immibis: why would the protocol treat compositor and app as equals? they are not equals
20:55Company: immibis: depends on your pov
20:56immibis: yes a whole lot of people thought mandatory CSD was bass-ackwards and they were completely ignored, shouted over, and banned.
20:56Company: both the app and the compositor can draw whatever they want and the other side can't do anything about it
20:56immibis: well yes but the point of a protocol is to agree on a set of rules so things work together properly
20:56immibis: otherwise may as well just take the raw protocol byte stream, shove it into the framebuffer and claim support
20:57Company: yeah, but that kinda implies that they should be treated equally
20:57Company: the protocol shouldn't feel like one side gets to make the rules
20:57immibis: many protocols involve clearly separated roles, for example HTTP has a client and a server
20:57emersion: compositor having the final say is a core principle of wayland, fwiw
20:57immibis: the client doesn't have to send response codes and the server doesn't have to choose the method, because that wouldn't make sense
20:58immibis: SSD is a reasonable default because that's the way literally everyone (except gnome developers) expects windowing systems to work; CSD can then be negotiated easily enough. Going the other way is more painful.
20:58soreau: emersion: that should be documented :P
20:59Company: immibis: that's the compositor pov - for an app csd is much easier, because it can allow the app dev to do whatever they want
20:59immibis: my current window manager in X doesn't have decorations, but it's still in charge of providing ways to close/move/open windows which is the same thing
20:59YaLTeR[m]: windows and macos are both CSD as far as I understand
20:59immibis: Company: CSD is not easier for apps. YaLTeR[m]: only from a system internals perspective. The API boundary is different from the IPC boundary, and puts decoration responsibility in the windowing system, not the app.
20:59Company: YaLTeR[m]: it's tricky, because you can't do whatever if you want aerosnap etc to work
21:00immibis: notice that on windows, the client library and the server are tightly coupled
21:00Company: immibis: the app can be csd or ssd, and the toolkit/compositor just draws controls if the app is ssd
21:00immibis: I think the same is also true on mac.
21:00karolherbst: before this discussion gets out of control and heats up on both sides, I'd advise everybody to stay constructive, and not point fingers or make judgement of whatever option/default/something is the better solution, because everybody is allowed to have different opinions here
21:00soreau: karolherbst: thanks
21:01Company: to me the solution is to say "both sides are equal, and both sides are allowed to say I WILL DO NOTHING BUT X" and then the protocol defines what happens if they do insist - ie double decorations or no decorations and that's fine if they insist
21:02soreau: The protocol shouldn't allow for broken-looking-to-users rendering
21:03immibis: if both sides insist on server-side decorations there will be double decorations and if both sides insist on client side decorations there will be none. And if my compositor insists on piping the protocol stream to the framebuffer while my app insists on sending commands instead of raw pixel data, the screen will show snow.
21:03soreau: remember, it was supposed to be every frame is perfect
21:03Company: soreau: frames are only perfect if both sides make it so
21:04immibis: the point of a protocol is that you follow it and get the benefits. if the protocol makes every frame perfect but every frame is not perfcet then someone is lying.
21:04soreau: Company: well the protocol should make it clear what should or shouldn't happen
21:04Company: yeah
21:04Company: that's why I'm saying that it's fine to have no or double decorations if both sides insist
21:05soreau: not if the protocol says otherwise
21:05soreau: why would it permit that
21:05Company: because it wants both sides to be able to insist
21:05immibis: then the protocol is broken
21:06immibis: broken, worth only the paper it's printed on, not fit for purpose,
21:06Company: dunno
21:06soreau: It would make it easiest to do things the X way and would solve the theming issue, then there wouldn't be an issue to argue
21:06soreau: then you could talk about protocols to put buttons or whatever might be supported by your decorator
21:06immibis: the X way as in SSD?
21:07soreau: I think the reason why CSD in the first place is because it was easiest from POC POV
21:07soreau: immibis: yes
21:07Company: no, the reason why csd is why gnome did a huge push for csd 10-15 years ago
21:08soreau: I don't think krh made the CSD option because gnome said so
21:08Company: and it was as insanely complicted to get that working on all the X WMs and people didn't want to do that again
21:08karolherbst: I don't think this discussion makes sense to continue if nobody wants to move from their position
21:08immibis: well the easiest POC is one with no decorations at all, and you sort them out later. AFAIK that's the reason X11 displaced X10.
21:08immibis: X11 figured out a way for window managers to draw decorations
21:09soreau: Company: so do you think gtk will support xdg-decoration or patches would be accepted to support it?
21:09immibis: i also read somewhere wayland was originally designed for small systems, like in-car entertainment, where there just aren't decorations.
21:09Company: soreau: I looked at it and the main problem is gdk_display_prefers_ssd()
21:09soreau: Company: you mean the upfront option?
21:10Company: soreau: yeah
21:10soreau: I don't really see why you can't just do what other xdg-decoration clients do
21:10Company: soreau: other than that, GTK could jsut behave as with kde_decor and send what it does
21:11mclasen:opens a beer
21:11soreau: mclasen: what, didn't bring enough for everyone?
21:11Company: and then once the protocol exists - without any changes to GTK's API - people can propose patches
21:12Company: all the MRs that exist in GTK so far were redesigning half of the API while trying to add the protocol
21:14emersion: the problem to "specific client internals don't support it atm" isn't "let's create a new protocol for it and make everyone else implement it", in general
21:14soreau: Company: so there's a chance for xdg-decoration but not high on priority for gtk since it doesn't really matter much one way or the other to gtk?
21:15Company: soreau: I would say there's a lot of resistance inside GTK, so wanting toadd it should be a careful process and not come with tons of demands or the pushback will kill any attempts
21:15Company: soreau: like the 3-5 previous attempts
21:15soreau: I see
21:16Company: I personally only have 1 requirement: GTK apps only need to support 1 method, and for GTK 4, that one method is CSD
21:17Company: gtk apps can also select SSD (then GTK draws decorations I think, not sure if it lets the compositor do it on Wayland, it does in X11 I think)
21:18Company: for further work, the goal from my pov would be to make it possible for apps to opt-in to SSD somehow
21:18kchibisov: Can't gtk always draw CSD when user adds something into decorations and otherwise follow system?
21:18Company: and to do things like figuring out if the decoration preferences of the compositor can be used to do things like hide buttons
21:19soreau: at least on gtk3, we can choose whether gtk3 apps start with ssd or csd
21:19Company: kchibisov: that's kinda how it works on X11 I think
21:19soreau: in wayfire
21:19Company: kchibisov: but I have no idea if that's implemented on Wayland or if it always uses GTK-provided decorations
21:20immibis: I read somewhere GTK only wants to work on GNOME's compositor anyway
21:20immibis: they're trying to create a fully integrated ecosystem, no?
21:21psykose: this discussion has it all
21:21kchibisov: The point is with GTK's decorations is that they carry a lot of buttons.
21:22Company: GTK apps usually have system decorations next to application buttons
21:22kchibisov: so it doesn't make any sense to push for obey ssd because it won't really work. The only place where it _should_ work is when using default gtk titlebar, because it has the same functionality as default server side.
21:22Company: I think the only system button Gnome has by default is close?
21:22kchibisov: I think you can adjust it via ipc.
21:23kchibisov: but if application designed to rely on decorations, I don't see anything bad in it.
21:23kchibisov: e.g. rnote.
21:23Company: yeah, https://release.gnome.org/46/file-ops-screenshot.png ony has the close button
21:24psykose: hm why is that downward arrow next to the close blurry
21:24kchibisov: I think other proposal was to also hide those wm buttons when xdg-decor is used.
21:25Company: because arrows are drawn using a different codepaths than icons
21:42DemiMarie: To me, the compositor choosing server-side decorations does not compel the client to stop drawing decorations.
21:43DemiMarie: My interpretation is that the compositor will be drawing server-side decorations, and the client is being informed of this fact.
21:43DemiMarie: The client is expected to adapt, but how it adapts is entirely client-specific.
21:44soreau: well of course the client can draw whatever it wants in its bag of pixels
21:45DemiMarie: exactly
21:45DemiMarie: I’m not expecting GTK apps to stop having a titlebar.
21:46soreau: but if the protocol says SSD can't have CSD decorations.. you can bend that rule all kinds of ways, that's the problem
21:46DemiMarie: yup, that’s too strong
21:47DemiMarie: I would say that the client is expected to stop drawing outside of its toplevel geometry and to otherwise adapt in an unspecified way.
21:47DemiMarie: Possibly give some non-normative examples.
21:47soreau: alternatively, the compositor can make a mess of things and just decorate all toplevels - but it wouldn't be if the client was just expected to always be SSD'd
21:47DemiMarie: There are compositors that must decorate all toplevels.
21:47soreau: and that would be easiest for clients to imeplement
21:48immibis: apps are allowed to put anything they want on the screen, whether that's extra close buttons or pornography, but that doesn't mean that's good app design and the protocol should let the app know whether there's already a close button on the screen.
21:48immibis: there are windows apps with extra close buttons even though windows always adds a close button (in most cases)
21:49DemiMarie: I think that it is assumed that a compositor that provides SSDs will provide a close feature, though it might not be a button.
21:49Company: (in Windows the app can do whatever)
21:50Company: (that's how Winamp has always worked)
22:01soreau: there are apps where csd makes sense (like winamp since it's fully self-themed) but toolkits should just not render decorations because ssd solves the inconsistent theming problem
22:03soreau: csd just doesn't seem to be a great fit for different toolkits collectively
22:03soreau: so it would be nice if toolkits would at least consistently provide the option of ssd
22:04soreau: apps shouldn't rely on buttons in the titlebar IMHO
22:04Company: from a toolkit pov the best thing is to let the app decide
22:04Company: and having a compositor that does whatever the app chooses
22:05soreau: well in many ways, this is how it is already
22:05mclasen:will not listen to 'inconsistent theming' arguments
22:06soreau: the compositor is forced to bend to the client because double decorations or no decorations are probably considered compositor bugs regardless what the client is doing
22:06soreau: (following protocol or not)
22:06Company: depends
22:06DemiMarie: soreau: my compositor won’t bend to the client
22:06soreau: DemiMarie: then your compositor seems buggy to your users
22:06Company: no decorations are considered application bugs
22:07Company: there was a whole Factorio blog post about having to draw decorations because Mutter wouldn't
22:07DemiMarie: soreau: no, my compositor will be doing exactly what Qubes OS users not only expect but rely on for security
22:07mclasen: then there's no need to argue
22:08mclasen: do what you think you gotta do
22:18DemiMarie: that said, what I would prefer is a Wayland protocol that everyone can agree on
22:26zamundaaa[m]: Company: if the app requests SSD, and the compositor doesn't draw it, that's a compositor bug. Or the intended experience, depends on the use case (mobile doesn't want decorations in the normal sense)
22:26zamundaaa[m]: But let's not mix the compositor side support discussion with the GTK one, they are pretty separate issues
22:28zamundaaa[m]: From a GTK POV, what you mostly seem to need is a way to tell the compositor that a specific window won't work too well with SSD
22:28Company: DemiMarie: it's easy, you just need to find a solution that sway, mutter and gtk agree on: The compositor will draw decorations, the compositor will not draw decorations and the app chooses if it draws decorations or not
22:29DemiMarie: Company: and the app knows if the compositor draws decorations and can adjust accordingly
22:29zamundaaa[m]: Right? So when the compositor chooses SSD anyways, that's either an explicit user choice, is required for the specific use case, or a compositor bug, and not something you have to deal with too much
22:30DemiMarie: Company: is it reasonable to expect the client to stop drawing shadows when SSDs are in use?
22:30DemiMarie: Drawing shadows that will just be clipped is a waste of resources and best avoided.
22:30Company: DemiMarie: I think that's doable - I can think of one special usecase where that doesn't work, but in general that should work
22:31Company: for shadows/rounded corners, GTK has different style classes on the window, they just need to be set properly
22:31Company: of course, people can write custom themes that do whatever, but GTK proper and Adwaita do what you expect
22:32DemiMarie: Company: glad to hear that!
22:32Company: but I have no idea if/how that's implemented for Wayland
22:32Company: it is implemented for mac OS though
22:32DemiMarie: That’s fine.
22:33Company: gtk has a mode for tiling/maximized where it doesn't draw shadows (or corners)
22:33DemiMarie: Having SSDs enable that should work.
22:34Company: there is a bunch of progress possible, but so far nobody was willing to be reasonable, so nothing happened
22:34DemiMarie: I hope I am being reasonable here
22:34Company: turning that into merge requests that won't be shut down is the hard part
22:35DemiMarie: what caused the previous MRs to be closed?
22:35soreau: it's easier to just pop a fork and do the expected thing
22:35karolherbst: what are the kind of changes people proposed here on the gtk side anyway?
22:36soreau: karolherbst: I think Company is saying that only clients should be in control and compositor should obey
22:36soreau: but emersion indicated otherwise
22:36karolherbst: that's not an answer to my question
22:37Company: karolherbst: changes to xdg_decoration or changes to GTK?
22:37zamundaaa[m]: karolherbst: support xdg decoration, and when the compositor forces SSD, just hide shadows, rounded corners and ideally the minimize/maximize/close buttons
22:37soreau: karolherbst: oh, I must have misunderstood your question
22:37karolherbst: the MR proposed to gtk to implement the extension, and what kind of changes they wanted to do
22:37soreau: oh
22:38karolherbst: so far I got that they tried to change the gtk API, I'm mostly curious to what degree they tried that
22:39Company: karolherbst: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/6398
22:39karolherbst: I see
22:40Company: that's the GTK4 one, there's 2 others for GTK3
22:43Company: it's also a bit of a psychological thing - there's 2 sides with pitchforks and nobody wants to move, so if you do too many changes at once, the shouting matches start again
22:43karolherbst: zamundaaa[m]: yeah... sounds reasonable, I can totally understand that heavily CSD focused apps just won't look great with SSD enforced, but getting rid of those "default buttons" at least will prevent it to be too terrible
22:44karolherbst: yeah... CSD vs SSD discussions are rarely the type of discussions to go smoothly in my experience
22:44mclasen: there's no pitchforks on my side
22:45mclasen: I'm simply not going to accept a protocol implementation that forces ssd on unsuspecting apps
22:46soreau: but maybe they should be expecting it
22:46Company: yeah
22:46zamundaaa[m]: mclasen: SSD is already being forced on these apps
22:46Company: but that's the psychological part
22:47zamundaaa[m]: Not supporting the protocol doesn't really change what compositors with specific requirements do
22:47Company: if people go with pitchforks into the app's issue tracker and say "GTK supports that protocol, you must work with SSD now" then I've failed
22:47karolherbst: yeah... you can just be a little nicer than doing thing
22:47karolherbst: s/thing/nothing/
22:47mclasen: zamundaaa: thats between your compositor and you
22:48zamundaaa[m]: mclasen: GTK not supporting the protocol doesn't change that a lot
22:48Company: people are less likely to do that if the spec says "apps and compositors are expected to come to an agreement and if they don't you get double decorations."
22:48mclasen: then whats the fuss about ?
22:48zamundaaa[m]: But I understand that the situation isn't ideal
22:48karolherbst: it's not like any protocol can make CSD apps to be SSD "native" ones, so all it could ask for is to e.g. stop drawing shadows and other things which really make no sense
22:48karolherbst: but anyway...
22:49karolherbst: something for you all to figure out
22:49soreau: I think what might make this more palatable, is if the client were in control but the options of csd/ssd worked during runtime with whatever config setting tickles it, regardless if the client mistakenly put mission critical buttons in its csd
22:50zamundaaa[m]: mclasen: would you be okay with the protocol if GTK could tell the compositor that you don't get a good result if the compositor forces SSD?
22:52soreau: It seems like the idea of 'I am a client with buttons in csd so you cant ssd me without doubling up' has to go away, to make any progress
22:52Company: zamundaaa[m]: I would do an enum { WILL_DO_CSD, PREFERS_CSD, DONT_CARE, PREFERS_SSD, WILL_DO_SSD } in the protocol (no idea if DONT_CARE is necessary)
22:53Company: zamundaaa[m]: and then both client and server announce their side, and then you define who in those 5x5 combinations does what
22:53zamundaaa[m]: I don't think we need to make it that complicated. Just have the client send the modes it can currently reasonably support, in addition to the existing preference
22:54zamundaaa[m]: Or do https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/176
22:54mclasen: all this seems like an extreme complication of the simple idea that when the client tells you to leave it alone, just leave it alone
22:54zamundaaa[m]: Bah, Firefox did a stupid
22:54Company: zamundaaa[m]: wrong link?
22:54zamundaaa[m]: I meant https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/17
22:55zamundaaa[m]: mclasen: that's not how it works
22:55DemiMarie: mclasen: not every compositor is capable of that
22:55zamundaaa[m]: If the user tells KWin to force SSD, then it'll force SSD
22:55mclasen: DemiMarie: I consider your use case to be entirely separate and not really relevant for this dicussion
22:56DemiMarie: mclasen: fair
22:56mclasen: if your customers require security levels color-coded in window decorations, you gotta do what you gotta do
22:56soreau: it's not about whether the compositor is capable, it's about choice, in the end
22:56karolherbst: though there are other compositors which also force SSD, e.g. VR ones, no?
22:56mclasen: double decorations will be a minor nuisance in that situation
22:56DemiMarie: mclasen: would it help to guarantee that `zxdg_decoration_manager_v1.get_toplevel_decoration` has no side effects?
22:57zamundaaa[m]: mclasen: the protocol has to cover all reasonable use cases
22:57Company: zamundaaa[m]: I think what happens in GTK is that users set a custom "title" widget
22:57zamundaaa[m]: Demi's might be a bit out there, but tiling compositord aren't
22:58Company: zamundaaa[m]: if they didn't set one, GTK adds its own title on Wayland or switches to SSD on X11
22:58Company: zamundaaa[m]: changing that to switch to SSD on Wayland would be one thing you could do
22:58Company: zamundaaa[m]: problem: Almost all Adwaita apps set a title widget
22:59Company: even gtk-demo does these days
22:59mclasen: we do that already
22:59Company: do we?
23:00zamundaaa[m]: Company: these apps are meant for CSD, right? So that would be fine
23:00mclasen: if you you don't set a custom titlebar, ssd works
23:00mclasen: at least, it is meant to work
23:00soreau: yes it does
23:00DemiMarie: Nit: Qubes OS isn’t my project. I’m just the one currently responsible for Wayland and GPU work.
23:00soreau: at least at startup
23:00Company: I thought it only works on X11, that's neat then
23:01soreau: if you try to change it at runtime it just spits back at you what the initial server choice was.. unless it has titlebar widget, then it's all csd all the time
23:01Company: the other thing is hiding window buttons - that should be reasonably easy - even in csd apps
23:01Company: the question is how you determine that they should be hidden
23:01zamundaaa[m]: You hide them when the compositor tells you it's doing SSD
23:02Company: yeah, that just requires doing the plumbing
23:02Company: currently we don't even track what the compositor does I think - apart from the global preference sent via kde_decor
23:02Company: but that setting is global anyway
23:03zamundaaa[m]: In kde decoration you don't need to track it, yeah
23:03Company: which is the other thing - compositor ssd preference is a global thing in gtk
23:03Company: because we read that setting from XSettings or dconf in Wayland
23:04soreau: well it's also 'read' from the kde protocol from the server on app start
23:05soreau: Company: because even if you set the 'global' preference to ssd, titlebar widget apps will still have csd, right?
23:05Company: yes
23:06soreau: hm, don't even honor your own settings :P
23:06Company: I don't know what the preference does in detail
23:07soreau: smh
23:16Company: zamundaaa[m]: one fun example app I have is my playback tool that takes a frame from an app and plays it back as-is
23:17Company: which I use for debugging, ie when there's a rendering error caused by some weird interaction (ie we pick the wrong colorstate in the HDR stuff)
23:18Company: that app can't and doesn't want to do anything different than when it was recorded, because it's literally just replaying instructions
23:19Company: it's essentially like a splash screen
23:19zamundaaa[m]: That would definitely be a good case for giving the client a way to set what it can handle well, both in CSD and SSD direction
23:20zamundaaa[m]: Just set whatever state the window had when it was recorded
23:33Company: zamundaaa[m]: btw, it's pretty much where all the screenshots you've seen about HDR come from - and why when I post 2 screenshots for comparison the contents in the GTK app look identical - there'd be no way to do that without that tool