ChanServ changed the topic of #wayland to: https://wayland.freedesktop.org | Discussion about the Wayland protocol and its implementations, plus libinput | register your nick to speak
rektide has joined #wayland
columbarius has joined #wayland
co1umbarius has quit [Ping timeout: 480 seconds]
Leopold__ has joined #wayland
Leopold_ has quit [Ping timeout: 480 seconds]
Leopold_ has joined #wayland
Leopold__ has quit [Ping timeout: 480 seconds]
adarshgm has joined #wayland
adarshgm has quit [Ping timeout: 480 seconds]
naveenk2 has joined #wayland
adarshgm has joined #wayland
ybogdano has quit [Ping timeout: 480 seconds]
adarshgm has quit [Ping timeout: 480 seconds]
adarshgm has joined #wayland
Company has quit [Quit: Leaving]
jgrulich has joined #wayland
naveenk21 has joined #wayland
naveenk2 has quit [Ping timeout: 480 seconds]
tzimmermann has joined #wayland
Leopold_ has quit [Ping timeout: 480 seconds]
slattann has joined #wayland
dcz_ has joined #wayland
hardening has joined #wayland
luyn has quit [Remote host closed the connection]
luyn has joined #wayland
naveenk21 has left #wayland [#wayland]
mvlad has joined #wayland
GentooPhysicist393542 has quit []
jgrulich has quit [Remote host closed the connection]
danvet has joined #wayland
manuel1985 has joined #wayland
MajorBiscuit has joined #wayland
rv1sr has joined #wayland
adarshgm has quit [Ping timeout: 480 seconds]
Major_Biscuit has joined #wayland
rasterman has joined #wayland
MajorBiscuit has quit [Ping timeout: 480 seconds]
hardening_ has joined #wayland
hardening has quit [Ping timeout: 480 seconds]
adarshgm has joined #wayland
<wlb> wayland Merge request !273 opened by 8100qq (8100qq) client: add interface to adjust wl_proxy reference count https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/273
<daniels> DemiMarie: ‘extremely, severely, memory-constrained, to the point where overcommit is disabled, and malloc() may return NULL, and is expected to do do routinely, where you must deal with the allocation failing and not fall over’
<daniels> (libwayland does not satisfy this constraint)
<emersion> it does?
<emersion> at least tries to
jmdaemon has quit [Ping timeout: 480 seconds]
<pq> DemiMarie, I thought you agreed with it in https://gitlab.freedesktop.org/wayland/weston/-/issues/631#note_1519915 .
<pq> emersion, it tries to not crash at least. But if it needed to not disconnect randomly as well, you'd pretty much need to rewrite it from scratch.
<emersion> in wlroots, the main goal is to never crash because of OOM
<pq> There is also the question of which one is better for a use case: limp along with failing random stuff hoping for the best, or crash hard and reboot on signs of unexpected trouble. Of course, what is unexpected rather than expected trouble is a key question.
<pq> it's good that weston and wlroots have different goals
fahien has joined #wayland
<daniels> yeah, there’s a huge gulf between ‘has some NULL checks’ and ‘works’
naveenk2 has joined #wayland
adarshgm has quit [Ping timeout: 480 seconds]
adarshgm has joined #wayland
<wlb> weston Merge request !1005 merged \o/ (screen-share: demystify damage tracking https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1005)
<wlb> weston/main: Derek Foreman * screen-share: Copy the damage region instead of intersecting it https://gitlab.freedesktop.org/wayland/weston/commit/d68ee26ff504 compositor/screen-share.c
<wlb> weston/main: Derek Foreman * screen-share: Fix first buffer damage https://gitlab.freedesktop.org/wayland/weston/commit/40804adbe106 compositor/screen-share.c
<wlb> weston/main: Derek Foreman * screen-share: split up damage tracking variables https://gitlab.freedesktop.org/wayland/weston/commit/118ee6674b2e compositor/screen-share.c
<emersion> jadahl: i don't get why it would be very annoying to extend?
<emersion> this is just about the association, so if there is a new way, just define a new creation request?
<jadahl> i find "create()" then "create2()", then "create3()" with "fixes" to old APIs to be quite terrible
<jadahl> especially when we can solve it up front
<emersion> create_with_serial
<emersion> create_with_other_thing
<jadahl> right, that "other_thing" might have a serial too
<emersion> i don't understand
<jadahl> then the third thing will have three things
<emersion> if there something replacing the serial, then it won't have a serial in it
<jadahl> if we have a single request that always creates a finalized object, we have to create a new request, deprecating the old, for every new metadata we want to setup during construcion
<jadahl> replacing the serial is one thing, adding other useful state is what I'm talking about
<emersion> we only need the metadata necessary for the association
<jadahl> that's our current understanding
<jadahl> maybe that'll change
<emersion> yeah, and that other state can totally use new requests on the object
<emersion> without changing the creation request
rasterman has quit [Quit: Gettin' stinky!]
<jadahl> no we can't, since it has no "I'm ready" request
<emersion> xwayland_surface = xwayland_manager.create_with_serial(surface, serial)
<jadahl> we'll end up with a create() then the compositor won't know if it'll expect more state to be passed
<emersion> xwayland_surface.set_other_state(wahtever)
<jadahl> how will the compositor know whether to expect set_other_state()?
<emersion> either with the version, either by tying it to surface commit
<jadahl> xwl = create_with_serial(wl_surface, serial); wl_surface.commit() works too yes
<jadahl> that makes it incomptele until the commit
<emersion> it all depends what that state is
<jadahl> what I want to avoid is "create_xwayland_surface() { if (version == something) finish() } on_commit() { if (version == something_else() finish() }"
<jadahl> but instead have bulit into the protocol a "pending" state, that is atomically applied
<emersion> pending state for something which won't ever change for the lifetime of the object
<emersion> that's some serious over-engineering here
<jadahl> I disagree
<jadahl> it's just sane interface design
<jadahl> that avoids sprinkeling "if version is this change beavior this way"
<emersion> i don't expect adding new state which makes a surface "incomplete"
<jadahl> it might be incomplete in a way that a compositor would make a slightly different decision if it had a complete picture
<jadahl> it avoids the compositor seeing the "incomplete" association, then after having done a bunch of work with the data it had available, it sees the new "amended state" and it'll have to undo those changes and do the work again
<jadahl> i don't have explicit ideas for what state is needed, it's just about "interface hygiene" that doesn't lead us into a future corner
fahien has quit [Ping timeout: 480 seconds]
adarshgm1 has joined #wayland
adarshgm has quit [Ping timeout: 480 seconds]
adarshgm1 has quit [Ping timeout: 480 seconds]
adarshgm has joined #wayland
fahien has joined #wayland
<pq> jadahl, good points. We have many examples of building up state bit by bit, then using it atomically: wl_surface.commit, wl_region, zwp_linux_buffer_params_v1.
Lucretia has quit []
Lucretia has joined #wayland
<jadahl> yea, it's practically standard practice by now
<wlb> weston Merge request !906 merged \o/ (color-lcms: Introduction and implementation of matrix for CM https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/906)
<pq> only 357 comments this time, IIRC that's half of the previous big one
<wlb> weston Issue #672 opened by Kamel BOUHARA (k.bouhara) Running weston 10.0.1 on EGL without GL_EXT_unpack_subimage extension https://gitlab.freedesktop.org/wayland/weston/-/issues/672
eroux has quit [Ping timeout: 480 seconds]
eroux has joined #wayland
adarshgm has left #wayland [#wayland]
rgallaispou has joined #wayland
alatiera has quit [Ping timeout: 480 seconds]
fmuellner has joined #wayland
rgallaispou has quit []
rgallaispou has joined #wayland
sozuba has joined #wayland
fahien has quit [Ping timeout: 480 seconds]
manuel1985 has quit [Ping timeout: 480 seconds]
manuel1985 has joined #wayland
manuel1985 has quit [Ping timeout: 480 seconds]
rgallaispou has left #wayland [#wayland]
shoragan has quit [Quit: quit]
Company has joined #wayland
shoragan has joined #wayland
rgallaispou has joined #wayland
fahien has joined #wayland
shoragan has quit []
MrCooper has quit [Quit: Leaving]
shoragan has joined #wayland
manuel1985 has joined #wayland
MrCooper has joined #wayland
zebrag has joined #wayland
FellFromTheSky[m] has quit [Remote host closed the connection]
yshui` has quit [Remote host closed the connection]
edrex[m] has quit [Write error: connection closed]
rails[m] has quit [Write error: connection closed]
DemiMarie has quit [Write error: connection closed]
Florian[m]1 has quit [Write error: connection closed]
[old]freshgumbubbles[m] has quit [Write error: connection closed]
drakulix[m] has quit [Write error: connection closed]
arichardson[m] has quit [Write error: connection closed]
pitsch[m] has quit [Write error: connection closed]
apol[m] has quit [Write error: connection closed]
YaLTeR[m] has quit [Write error: connection closed]
Sumera[m] has quit [Write error: connection closed]
JosExpsito[m] has quit [Write error: connection closed]
halfline[m] has quit [Write error: connection closed]
Guest1417 has quit [Write error: connection closed]
toggleton[m] has quit [Write error: connection closed]
q234rty[m][m] has quit [Write error: connection closed]
Ryhon[m] has quit [Write error: connection closed]
japchae[m] has quit [Write error: connection closed]
Poly[m] has quit [Write error: connection closed]
davidre has quit [Write error: connection closed]
d_ed[m] has quit [Write error: connection closed]
GrahamPerrin[m] has quit [Write error: connection closed]
ongy[m] has quit [Write error: connection closed]
MarcusBritanicus[m] has quit [Write error: connection closed]
hasebastian[m] has quit [Write error: connection closed]
jasyuiop[m] has quit [Write error: connection closed]
flyingketh[m] has quit [Write error: connection closed]
ujineli[m] has quit [Write error: connection closed]
varlad[m] has quit [Write error: connection closed]
windowsxp[m] has quit [Write error: connection closed]
Kelseyjgilbert[m] has quit [Write error: connection closed]
Guest1444 has quit [Write error: connection closed]
diamondburned[m] has quit [Write error: connection closed]
FbioPacheco[m] has quit [Write error: connection closed]
ttancos[m] has quit [Write error: connection closed]
ehfd[m] has quit [Write error: connection closed]
bdaase[m] has quit [Write error: connection closed]
ozwald1[m] has quit [Write error: connection closed]
pac85[m] has quit [Write error: connection closed]
gnustomp[m] has quit [Write error: connection closed]
doras has quit [Write error: connection closed]
niecoinny[m] has quit [Write error: connection closed]
cb5r[m] has quit [Write error: connection closed]
junglerobba[m] has quit [Write error: connection closed]
xerpi[m] has quit [Write error: connection closed]
unrelentingtech has quit [Write error: connection closed]
cousinofthor[m] has quit [Write error: connection closed]
jryans has quit [Write error: connection closed]
psydroid[m] has quit [Write error: connection closed]
underpantsgnome[m] has quit [Write error: connection closed]
MatrixTravelerbot[m]1 has quit [Write error: connection closed]
i509VCB has quit [Write error: connection closed]
bluepenquin has quit [Write error: connection closed]
ki[m] has quit [Write error: connection closed]
zaibon[m] has quit [Write error: connection closed]
Shimmy[m] has quit [Write error: connection closed]
scriptingdad[m] has quit [Write error: connection closed]
jmariondev[m] has quit [Write error: connection closed]
inkbottle[m] has quit [Write error: connection closed]
emilio[m] has quit [Write error: connection closed]
j-james[m] has quit [Write error: connection closed]
teh1[m] has quit [Write error: connection closed]
vchernin[m] has quit [Write error: connection closed]
BilalElmoussaoui[m] has quit [Write error: connection closed]
Guest1433 has quit [Write error: connection closed]
tleydxdy has quit [Write error: connection closed]
ahmadraniri[m] has quit [Write error: connection closed]
danburd[m] has quit [Write error: connection closed]
frytaped[m] has quit [Write error: connection closed]
nielsdg has quit [Write error: connection closed]
heftig has quit [Write error: connection closed]
robertmader[m] has quit [Write error: connection closed]
nazarewk[m] has quit [Write error: connection closed]
GeorgesStavracasfeaneron[m] has quit [Write error: connection closed]
unix-supremacist[m] has quit [Write error: connection closed]
unix has quit [Write error: connection closed]
deknos82[m] has quit [Write error: connection closed]
Guest1407 has quit [Write error: connection closed]
Nico has quit [Write error: connection closed]
anomalous_creator[m] has quit [Write error: connection closed]
cmeissl[m] has quit [Write error: connection closed]
RAOF has quit [Write error: connection closed]
zamundaaa[m] has quit [Write error: connection closed]
hch12907 has quit [Write error: connection closed]
Mershl[m] has quit [Write error: connection closed]
smasher_tati[m] has quit [Write error: connection closed]
shadowninja55[m] has quit [Write error: connection closed]
RomanGilg[m] has quit [Write error: connection closed]
rubo_[m] has quit [Write error: connection closed]
q234rty[envs][m] has quit [Write error: connection closed]
Levans has quit [Write error: connection closed]
botiapa[m] has quit [Write error: connection closed]
ammen99[m] has quit [Write error: connection closed]
AndrewAylett[m] has quit [Write error: connection closed]
hex[m]1 has quit [Write error: connection closed]
MrCooper has quit [Remote host closed the connection]
Guest1207 has quit [Read error: Connection reset by peer]
mtretter has joined #wayland
pH5 has quit [Remote host closed the connection]
pH5 has joined #wayland
ahmadraniri[m] has joined #wayland
MrCooper has joined #wayland
markbolhuis has joined #wayland
markbolhuis has quit []
MrCooper has quit [Remote host closed the connection]
MrCooper has joined #wayland
sfsdf has joined #wayland
<wlb> weston Issue #672 closed \o/ (Running weston 10.0.1 on EGL without GL_EXT_unpack_subimage extension https://gitlab.freedesktop.org/wayland/weston/-/issues/672)
sfsdf has left #wayland [#wayland]
GentooPhysicist393542 has joined #wayland
slattann has quit [Quit: Leaving.]
<zzag> jadahl: it's awkward that we pass the surface to the factory request, but the serial, which we know won't change, via a separate request; a commit request can be added to make the interface extensible if needed
tlwoerner_ has quit []
tlwoerner has joined #wayland
<zzag> xwayland_surface.associate is not extensible itself
<zzag> you cannot add more arguments to it
paulk has joined #wayland
<paulk> hi folks
<paulk> just came across an interesting crash in weston
<paulk> when using the screenshot feature
<paulk> what happens is that weston crashes when client request a screenshot dies between the shoot request and the frame done notify callback in weston that populates the screenshot data
<paulk> the reason is that the provided shm buffer is no longer valid, since the program that allocated it was terminated by the kernel (and its ressources with it)
<paulk> when the client requesting a screenshot dies*
<paulk> is there a way to know whether such a buffer is still valid before trying to memcpy to it?
<pq> paulk, how is it possible for the buffer to be deallocated while the compositor has an fd or mmap to it?
<pq> paulk, the buffer is valid until the compositor closes all fds to it and munmaps all mmaps to it. If it was backed by a file, the file could be truncated, which results in a SIGBUS in the compositor, which Weston has code to handle gracefuly.
<pq> paulk, is it a SIGBUS or SIGSEGV?
<pq> or maybe both?
<paulk> pq: ok I wasn't clear on whether the kernel was taking in account the possibility for another program to have the fd opened / mapped
<emersion> pq, the wl_buffer resource is no longer around when the client dies
<paulk> pq: definitely SIGSEGV
<emersion> the wl_shm_buffer is invalid
<pq> emersion, oh, this is that issue.
<paulk> but from time to time I do see the "Buffer address requested when its parent pool has an external reference and a deferred resize pending."
<paulk> just before weston crashes
<pq> I didn't think Weston took any external references...
<paulk> emersion: I tried to add a wl_shm_buffer_get before the memcpy but it looks fine
<pq> paulk, it could still be freed memory it's looking at
<paulk> yes I think that's what's happening
<paulk> is there a way to know that the wl_shm_buffer is no longer valid?
<pq> libweston/screenshooter.c seems to have a bug: it holds a pointer to struct weston_buffer without listening for its desctruction.
<pq> That seems to be the answer: listen for the desctruction in addition to holding a pointer.
<paulk> can that be done in a non-racy way with the frame done listener?
<jadahl> zzag: its extensible if it's defined to be the "commit". just add more requests before that will later be applied on "associate"
<paulk> well, non-racy with screenshooter_frame_notify I mean
<jadahl> zzag: thats how a handful of extensions extend some interface while still making things behave atomically
<zzag> jadahl: yep, more requests can be added as needed
<zzag> my only nit is that the surface serial can be passed through get_xwayland_surface, we know that it won't change
fmuellner has quit [Ping timeout: 480 seconds]
<zzag> you cannot change it similar to wl_surface
<emersion> … maybe wl_surface shouldn't be an argument and should be a set_surface request ;)
* zzag regrets mentioning that xD
pw is now known as Guest1644
pw has joined #wayland
fahien has quit [Ping timeout: 480 seconds]
fmuellner has joined #wayland
<daniels> paulk: you'd need to remove the frame listener if the buffer went away
bluepenquin has joined #wayland
<paulk> daniels: yeah but I mean, am I guaranteed that I get the destroy notification before the frame listener?
<paulk> what if the client dies when I'm already in the frame listener
<daniels> paulk: that's fine if the client dies whilst you're in the frame listener - the wl_shm_buffer and its mapping remain valid right up until destroy_listener fires
<paulk> oh neato then :)
shoragan has quit [Quit: quit]
shoragan has joined #wayland
ybogdano has joined #wayland
andyrtr has quit [Quit: ZNC 1.8.2 - https://znc.in]
shoragan has quit [Ping timeout: 480 seconds]
shoragan has joined #wayland
andyrtr has joined #wayland
fahien has joined #wayland
DemiMarie has joined #wayland
ammen99[m] has joined #wayland
AndrewAylett[m] has joined #wayland
anomalous_creator[m] has joined #wayland
apol[m] has joined #wayland
arichardson[m] has joined #wayland
bdaase[m] has joined #wayland
BilalElmoussaoui[m] has joined #wayland
botiapa[m] has joined #wayland
cb5r[m] has joined #wayland
RAOF has joined #wayland
cmeissl[m] has joined #wayland
cousinofthor[m] has joined #wayland
d_ed[m] has joined #wayland
danburd[m] has joined #wayland
davidre has joined #wayland
Nico has joined #wayland
deknos82[m] has joined #wayland
DemiMarieObenour[m] has joined #wayland
diamondburned[m] has joined #wayland
Guest1623 has joined #wayland
doras has joined #wayland
drakulix[m] has joined #wayland
edrex[m] has joined #wayland
ehfd[m] has joined #wayland
emilio[m] has joined #wayland
FbioPacheco[m] has joined #wayland
GeorgesStavracasfeaneron[m] has joined #wayland
FellFromTheSky[m] has joined #wayland
flyingketh[m] has joined #wayland
[old]freshgumbubbles[m] has joined #wayland
frytaped[m] has joined #wayland
gnustomp[m] has joined #wayland
Guest1631 has joined #wayland
GrahamPerrin[m] has joined #wayland
halfline[m] has joined #wayland
hasebastian[m] has joined #wayland
hch12907 has joined #wayland
Florian[m]1 has joined #wayland
heftig has joined #wayland
Guest1653 has joined #wayland
hex[m]1 has joined #wayland
i509VCB has joined #wayland
inkbottle[m] has joined #wayland
j-james[m] has joined #wayland
japchae[m] has joined #wayland
jasyuiop[m] has joined #wayland
Kelseyjgilbert[m] has joined #wayland
jmariondev[m] has joined #wayland
junglerobba[m] has joined #wayland
JosExpsito[m] has joined #wayland
jryans has joined #wayland
Levans has joined #wayland
MarcusBritanicus[m] has joined #wayland
Mershl[m] has joined #wayland
nazarewk[m] has joined #wayland
niecoinny[m] has joined #wayland
nielsdg has joined #wayland
ongy[m] has joined #wayland
teh1[m] has joined #wayland
ozwald1[m] has joined #wayland
pac85[m] has joined #wayland
pitsch[m] has joined #wayland
Poly[m] has joined #wayland
psydroid[m] has joined #wayland
q234rty[envs][m] has joined #wayland
q234rty[m][m] has joined #wayland
rails[m] has joined #wayland
robertmader[m] has joined #wayland
RomanGilg[m] has joined #wayland
rubo_[m] has joined #wayland
DemiMarie is now known as Guest1662
Ryhon[m] has joined #wayland
scriptingdad[m] has joined #wayland
shadowninja55[m] has joined #wayland
smasher_tati[m] has joined #wayland
Sumera[m] has joined #wayland
Shimmy[m] has joined #wayland
underpantsgnome[m] has joined #wayland
tleydxdy has joined #wayland
toggleton[m] has joined #wayland
ttancos[m] has joined #wayland
ki[m] has joined #wayland
ujineli[m] has joined #wayland
unix has joined #wayland
unix-supremacist[m] has joined #wayland
unrelentingtech has joined #wayland
varlad[m] has joined #wayland
vchernin[m] has joined #wayland
MatrixTravelerbot[m]1 has joined #wayland
windowsxp[m] has joined #wayland
xerpi[m] has joined #wayland
YaLTeR[m] has joined #wayland
yshui` has joined #wayland
zaibon[m] has joined #wayland
zamundaaa[m] has joined #wayland
rgallaispou has quit []
chipxxx has joined #wayland
chipxxx has quit [Remote host closed the connection]
chipxxx has joined #wayland
<wlb> wayland-protocols Merge request !164 opened by Simon Ser (emersion) governance: improve consistency of ACK requirements https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/164
<emersion> matrix matrix matrix…
naveenk2 has quit []
<daniels> emersion: ?
<emersion> nah just seeing these mass join/parts
jmdaemon has joined #wayland
<daniels> ah right, I have those quieted
<kennylevinsen> tbf, something similar happens when chat.sr.ht is restarted :P
<emersion> yeah, but not that often
MrCooper has quit [Remote host closed the connection]
<pq> paulk, weston is single-threaded. There are no that kind of concurrency worries.
shadowninja55[m] has left #wayland [#wayland]
manuel1985 has quit [Ping timeout: 480 seconds]
<bl4ckb0ne> what's the diff between a wp and ext protocol
<bl4ckb0ne> found the answer in GOVERNANCE.md
sozuba has quit [Quit: sozuba]
andyrtr has quit [Quit: ZNC 1.8.2 - https://znc.in]
pochu has quit [Quit: leaving]
andyrtr has joined #wayland
Major_Biscuit has quit [Ping timeout: 480 seconds]
systwi has quit [Read error: Connection reset by peer]
systwi has joined #wayland
Leopold_ has joined #wayland
rasterman has joined #wayland
fahien has quit [Ping timeout: 480 seconds]
mvlad has quit [Remote host closed the connection]
fmuellner has quit [Ping timeout: 480 seconds]
rv1sr has quit []
tzimmermann has quit [Quit: Leaving]
immibis is now known as Guest1686
immibis has joined #wayland
Leopold_ has quit [Remote host closed the connection]
Leopold_ has joined #wayland
dcz_ has quit [Ping timeout: 480 seconds]
eroc1990 is now known as Guest1688
eroc1990 has joined #wayland
Guest1688 has quit [Ping timeout: 480 seconds]
Guest1686 has quit [Ping timeout: 480 seconds]
everfree has quit [Quit: leaving]
fahien has joined #wayland
fahien has quit []
everfree has joined #wayland
zvarde198830 has quit [Ping timeout: 480 seconds]
chipxxx has quit [Read error: No route to host]
zvarde198830 has joined #wayland
fmuellner has joined #wayland
rodrgz has joined #wayland
chipxxx has joined #wayland
alatiera has joined #wayland
hardening_ has quit [Ping timeout: 480 seconds]
gspbirel563 has quit [Ping timeout: 480 seconds]
rasterman has quit [Quit: Gettin' stinky!]
danvet has quit [Ping timeout: 480 seconds]
erodrgz has joined #wayland
rodrgz has quit [Ping timeout: 480 seconds]
pochu has joined #wayland
erodrgz has quit [Read error: Connection reset by peer]
chipxxx has quit []
chipxxx has joined #wayland
erodrgz has joined #wayland
keir has quit [Quit: ZNC 1.8.2 - https://znc.in]
keir has joined #wayland
keir has quit [Quit: ZNC 1.8.2 - https://znc.in]
keir has joined #wayland
keir has quit []
pochu has quit [Ping timeout: 480 seconds]
ybogdano has quit [Ping timeout: 480 seconds]
keir has joined #wayland