ChanServ changed the topic of #wayland to: https://wayland.freedesktop.org | Discussion about the Wayland protocol and its implementations, plus libinput
glennk has quit [Ping timeout: 480 seconds]
rai has joined #wayland
garnacho has quit [Ping timeout: 480 seconds]
<rai>
Hi, I am writing my first Wayland client and I am running into frustration because I have to define a zillion empty callbacks for events that I never intend on using. My specific grievance is in wl_output events vs. zxdg_output_v1 events - I need some info from both, but there is a lot of duplication. I found this issue[0] which has explained why this is the case, so I ask instead: does anyone have recommendations for dealing with this easier?
<rai>
I have seen others write a simple "noop" callback that takes no arguments, but unfortunately my warning level is high enough that I cannot do this.
raiguard has joined #wayland
<raiguard>
(I am rai, just switched to my bouncer)
rai has quit [Quit: Page closed]
<danieldg>
you could use a higher level api that does all of this for you
<danieldg>
or just handle the raw protocol
<raiguard>
I was originally going to use SDL, but this app will use wlr-layer-shell and using that with SDL was a pain. I would rather not go even lower level because that would take even more time than just writing stub callbacks.
FreeFull has quit []
<raiguard>
In any case, I have realized that I probably don't need anything from wl_output, so this specific case won't be as bad as it was looking.
<danieldg>
you probably will want outputs, but perhaps you don't need xdg outputs
<raiguard>
I need xdg outputs for the logical positioning
<danieldg>
you could just use relative positions, you know
<raiguard>
Relative positions?
<danieldg>
I guess for layer shell it'd just be the edge(s) and output
<swick[m]>
can we please figure out how the experimental stuff is supposed to work before we merge something and then have to figure out how move things over?
<swick[m]>
there really is no reason to rush this
<zzag>
swick[m]: well, that's reason why we proposed experimental protocols in the first place... so protocols don't get stalled
<zzag>
If we adapt new policies, other protocols can be adjusted
<kode54>
lol
<kode54>
someone I follow
<kode54>
their project was recently broken
<kode54>
because ext image capture now requires ext foreign toplevel and they weren't including that before
<kode54>
how they have a compositor with windows and weren't including foreign toplevel already, I don't know
<kode54>
oh, he's here
<kode54>
vyivel: hi
<kode54>
only reason I updated your thing today was I was inspired to test it again and see how it's progressed in the months since I last looked at it
<kode54>
I'm also following labwc, wayfire, and cosmic-comp
<kode54>
well, and mutter and kwin, but mostly don't like to use either of those
<vyivel>
hm i think ext-image-capture-source had a dep on ext-foreign-toplevel-list since initial release
<kode54>
oh, hmm
<jadahl>
swick[m]: it's no big deal imo, no xml file is installed, implementations are likely to copy it around anyway, it's just for documentation purposes, and the experimental protocol xml will be removed once it goes into staging. ironing out regulations how exactly name things etc can happen independently
<kode54>
oh, didn't know swick was back, guess I haven't been paying attention to things
<zzag>
jadahl: and we need a place to store snapshots somewhere. experimental/ seems like a reasonable choice regardless what future policy we choose
<jadahl>
right
<jadahl>
zzag: none the less, the disclaimer is a bit misleading, it's the one from staging iirc
mclasen has joined #wayland
<zzag>
Yeah.. The only thing that I don't like is waiting a whole other 2 weeks :(
<zzag>
I think the disclaimer can be changed, but it doesn't _have_to block the rest
<jadahl>
I don't think we need to wait anything after changing the disclaimer
<jadahl>
the 2 weeks timer isn't bumped on each update, only when the mr was created, iirc
<swick[m]>
so setting a bad example would be unfortunate
<zzag>
swick[m]: well, you see, we have already processes in place.. and not following them here will also set a bad example because if you don't like something semi-related, you can complain about it and just drag on the conversation in the protocol MR
<jadahl>
I'm not convinced we'll end up with `-devel` though, could just as well be `xx-blabla-vN`
<zzag>
"and just drag on the conversation in the protocol MR" which is a source of so much pain in the wayland-protocols development process :(
<swick[m]>
this is about the general process, not about protocol specifics... being the first has its downsides
<swick[m]>
iow the problem here is that the MR doesn't actually properly follow the procedures that we have put in place
<jadahl>
suffix nitpicks aside, what's the difference between !392 and !394?
<pq>
Is there something I should chime in to?
<zzag>
swick[m]: "iow the problem here is that the MR doesn't actually properly follow the procedures that we have put in place" erm, I don't think so.. currently, it's fine according to what we have in master (and that's all I'm trying to do.. to adhere to the things that we had agreed in the past because otherwise it means that the development workflow we agreed on doesn't work)
<zzag>
"that the development workflow we agreed on doesn't work" and same can be then applied to future version of experimental protocol workflow as well
<zzag>
because somebody just doesn't really like it
<jadahl>
pq: the context is !392 and !394. !392 can according to governence land, but the exact details how is not entirely clear (what directory, suffix, ...). !394 tries to introduce an exact "work flow", which !392 may or may not exactly follow. what !394 will end up being is up to the future
naveenk2 has quit [Quit: Leaving.]
<zzag>
swick[m]: and I just want to stress again that the workflow model _can_ be changed; it's not carved in stone but let's implement the policies that we agreed on
<zzag>
otherwise they are meaningless
kts has joined #wayland
any1_ has left #wayland [#wayland]
any1 has joined #wayland
kasper93 has joined #wayland
<pq>
jadahl, so far I've got the feeling that we must differentiate between experimental protocols merged upstream in experimental/ vs. not merged ones.
<pq>
merged ones must bump major version on breaking changes, while non-merged branches do not need to.
<pq>
I think getting !393 landed would clear up the terminology so we can actually talk about the issue.
<jadahl>
Yea perhaps. I think it's only valuable to document and clarify what actually goes into the repo, not what people do on their own unmerged branches
<pq>
I see value in *recommending* what people do with their unmerged public branches, but of course wayland-protocols cannot mandate anything.
<pq>
To me protocols are similar to kernel DRM UAPI in the sense that there shouldn't be incompatible versions used in the wild under the exact same interface name.
<pq>
Some general guidelines to maintain that would be useful.
<mclasen>
that mostly comes down to "don't enable experimental protocols by default" ?
<pq>
yeah
<pq>
jadahl, GOVERNANCE sections are out of order, I thouht 2.3 didn't have a mention of experimental
<zamundaaa[m]>
mclasen: no, it means that there shouldn't be two protocols with the same name + major version but different API/ABI
<zamundaaa[m]>
Experimental or not doesn't matter
<pq>
it's also confusing, when e.g. 2.2 says one thing, and then 2.2.1 overrides... all of 2.2?
<pq>
zamundaaa[m], how do you define existence ("be") there?
Moprius has joined #wayland
<jadahl>
pq: I think the point is that experimental protocols (i.e. protocols placed in experimental/ in the repo) are special case, where nothing from the normal formalities apply
<pq>
jadahl, sure, but GOVERNANCE is confusing now.
<pq>
the point is good, the delivery could be better
<jadahl>
2.2.1 should perhaps define the meaning of experimental to make it clearer?
<zamundaaa[m]>
pq: it simply shouldn't be merged anywhere, neither in wayland-protocols nor implementations
<pq>
jadahl, and 2.2(.0) needs to say it does not apply to experimental. 2.2.1 does not iterate every sentence in 2.2(.0) to reject them.
<pq>
jadahl, see how I have a hard time referring to one section without including the other :-)
<pq>
zamundaaa[m], ok. That could use some written guidelines.
<jadahl>
then 2.2.0 must also define experimental, must it not?
<pq>
no, that's an exception as an "afterthought". I would more like add a new heading: ### 2.2.0 Non-experimental protocol inclusion requirements
<pq>
one more #
<jadahl>
ah, sure, or "Staging and stable protocol inclusion requirements"
<pq>
yes
any1 has quit [Remote host closed the connection]
any1 has joined #wayland
rasterman has quit [Quit: Gettin' stinky!]
kts has quit [Ping timeout: 480 seconds]
<any1>
kode54, vyivel: image-source depending on foreign toplevels is a bit of a nuisance. I think that maybe it should be the other way around. Or maybe there should have been a toplevel-image-source protocol that only creates image-sources from toplevels.
<emersion>
any1: image-source has different globals, one per source
coldfeet has joined #wayland
<any1>
emersion: I'm not sure I see what you're trying to tell me
<emersion>
i don't think it
<emersion>
's an issue
<any1>
There's no issue. I just think that it's conceptually awkward.
<vyivel>
the only problem is that you hsve to generate code for foreign toplevels too
<vyivel>
which is fine
<any1>
but, yeah, I think that maybe there isn't really any perfect solution that's not awkward in any way.