ChanServ changed the topic of #wayland to: https://wayland.freedesktop.org | Discussion about the Wayland protocol and its implementations, plus libinput
privacy has joined #wayland
garnacho has quit [Quit: garnacho]
garnacho has joined #wayland
columbarius has joined #wayland
co1umbarius has quit [Ping timeout: 480 seconds]
fmuellner has quit [Ping timeout: 480 seconds]
guru__ has joined #wayland
guru_ has quit [Ping timeout: 480 seconds]
ddshore has joined #wayland
<ddshore>
Hi, I'm trying out wayland, was previously using x. I am trying to use WM_CLASS and it will be detected on some windows (emacs) but not on others (konsole), I know WM_CLASS isn't supported, but I wanted to understand why it will sometimmes be detected, does any one know why it is acting like this?
<ddshore>
sometimes*
garnacho has quit [Ping timeout: 480 seconds]
ddshore is now known as dD_
<psykose>
stuff still running in x has wm_class
<psykose>
x applications run in xwayland
<psykose>
wayland ones have app_id instead
<dD_>
psykose: Thanks. Do you know if there is a way to get konsole to run in xwayland? That's the one I need the most
<psykose>
you didn't say what you need to find the wm_class for
<dD_>
I'm using a keymapping software called xkeysnail that depends on WM_CLASS
<dD_>
to find the correct mapping for a window
<dD_>
looks like this worked: QT_QPA_PLATFORM=xcb konsole
lbia has quit [Ping timeout: 480 seconds]
kts has joined #wayland
kts has quit [Ping timeout: 480 seconds]
kts has joined #wayland
checkfoc_us has quit []
checkfoc_us has joined #wayland
kts has quit [Quit: Konversation terminated!]
silverpower has quit [Ping timeout: 480 seconds]
silverpower has joined #wayland
mxz has quit [Ping timeout: 480 seconds]
Leopold__ has joined #wayland
privacy has quit [Quit: Leaving]
Leopold__ has quit [Remote host closed the connection]
Leopold__ has joined #wayland
kts has joined #wayland
Leopold_ has quit [Ping timeout: 480 seconds]
kts has quit []
lbia has joined #wayland
dD_ has quit [Ping timeout: 480 seconds]
Leopold__ has quit [Remote host closed the connection]
Leopold has joined #wayland
kts has joined #wayland
Guru_DE has joined #wayland
guru__ has quit [Ping timeout: 480 seconds]
kts has quit [Ping timeout: 480 seconds]
glennk has joined #wayland
bim9262_ has joined #wayland
bim9262 has quit [Ping timeout: 480 seconds]
bim9262_ is now known as bim9262
junaid has joined #wayland
mblenc has quit [Ping timeout: 480 seconds]
mblenc has joined #wayland
mxz has joined #wayland
Company has quit [Quit: Leaving]
Guest2279 has quit [Remote host closed the connection]
cool110 has joined #wayland
cool110 is now known as Guest2330
rv1sr has joined #wayland
garnacho has joined #wayland
yshui` has joined #wayland
<yshui`>
why is the design of wl_subsurface so idiosyncratic? the double-buffering cached state is convoluted enough, then on top of that there are also exceptions you need to remember: stuff that are still synced in desync mode; stuff that is desync even in synced mode.
<yshui`>
are all these complexities really necessary?
Shimmy[m] has quit [Quit: Client limit exceeded: 20000]
<vyivel>
"stuff that is desync even in synced mode" …that's just not double-buffered state
Leopold__ has joined #wayland
Leopold has quit [Remote host closed the connection]
<yshui`>
hmm, actually it does make sense for subsurface stack order and position to remain synced. 🤔
<JoshuaAshton>
set_visibility doesn't work at all under labwc/Plasma, but seemed fixable with a simple MR
<JoshuaAshton>
I feel like I am doing something wrong given... surely I am not the first person to find this (?), but I also can't find anyone else reporting this and it seemed trivially fixable...
<JoshuaAshton>
Maybe others using libdecor are falling back to xdg_toplevel directly if SERVER_DECORATIONS? Not sure
<Consolatis>
not sure what version 2 of the xdg-decoration protocol they are referring to..
<JoshuaAshton>
Me neither, I can't find it anywhere
<JoshuaAshton>
This also fixes it for me on labwc as well as Plasma
<riteo>
WHAT
<riteo>
THAT WAS IT?!?!?!!
<riteo>
I looked at the code and went "uh... This looks messy... Doesn't look easy to fix" and then I find out that the comment talked about a non-existent protocol version
<JoshuaAshton>
riteo: I recently found it in Gamescope
<riteo>
IIRC I also had some concerns on how the global was handled at runtime, but I can't remember right now what was the exact issue
<JoshuaAshton>
also libdecor putting its userptr at the end of the interface callbacks is truly devastating
<JoshuaAshton>
=(
<riteo>
there's also another quirk regarding plugin (e.g. GTK) frame destruction where you could "double-free" the thing, but I never found the opportunity to investigate further
<riteo>
JoshuaAshton: just use tags ;)
<JoshuaAshton>
tags?
<riteo>
you can assign a string to a proxy and check it
<JoshuaAshton>
heh
<riteo>
on Godot we tag most of our proxies with the "godot" tag and check it, no-opping or whatever in the various listeners
<riteo>
(if we don't find our proxy)
<riteo>
takes nothing also because it's a const char pointer so you can do a direct equality check IIRC
<JoshuaAshton>
I ended up writing this shit for the automated forwarding to class function
<riteo>
perhaps libdecor should just tag its stuff and ask clients to check for it
<JoshuaAshton>
well gamescope is a server that is also a client :b
<JoshuaAshton>
i guess this is client for gamescope
<riteo>
I never quite understood that part
<JoshuaAshton>
Hm?
<riteo>
is one supposed to normally run steam through it?
<JoshuaAshton>
You can run Steam in big picture mode or games directly yeah
<JoshuaAshton>
It's the only way to play games in HDR on Plasma 6 also
<riteo>
like, the fact that it can auto-switch is great for big picture but there are like zero instructions on how to use it properly
<riteo>
no scripts, nothing
<riteo>
I have a script called `itsgamingtime`, but it's all done through my research, which is a bit of a bummer
<JoshuaAshton>
I mean it's really just
<JoshuaAshton>
gamescope -e -- steam -bigpicture
<JoshuaAshton>
for the most part
<JoshuaAshton>
*-gamepadui
<riteo>
mh, I _may_ have made my life extremely hard by having steam as a flatpak
<JoshuaAshton>
oh for sure
<riteo>
it works though 8)
<JoshuaAshton>
especially as Gamescope WSI probably doesn't work there
<riteo>
yeah I had to override some paths
<riteo>
oh well
<JoshuaAshton>
Daily reminder that the Steam Flatpak/Snap etc is not officially supported
<riteo>
libdecor would really need some love, although I suppose that most people eventually switched to an homebrew CSD solution
<riteo>
JoshuaAshton: yeah nw, I'm aware of that
<riteo>
like, on Godot we're aready slowly moving towards our own CSDs since we need them anyways, plus we're otherwise losing a lot of benefits
<riteo>
does SDL use libdecor?
<JoshuaAshton>
it can yes
<riteo>
cool
<JoshuaAshton>
i think for serverside it uses xdg toplevel directly
<riteo>
wait, how does it detect that?
<riteo>
you get the global yeah, but that does not mean that you have SSDs
<JoshuaAshton>
the configure callback
<JoshuaAshton>
on the decoration global
<riteo>
what callback
<riteo>
there's one but you have to pass in a toplevel
<JoshuaAshton>
configure in zxdg_toplevel_decoration_v1_listener
<riteo>
yeah but you have to pass a toplevel
<JoshuaAshton>
hmmm
systwi has quit [Remote host closed the connection]
<riteo>
I'm not sure when you get sent the event though, but still, you'd have to at least roundtrip, assuming the compositor sends the event instantly
<riteo>
also because libdecor has its own toplevel wrapper which starts from an xdg_surface
<ifreund>
is there any supported way to run steam on a musl based distro?
<ifreund>
flatpak is pretty convenient for that
<JoshuaAshton>
flatpak
<JoshuaAshton>
but not supported really
<JoshuaAshton>
so to answer fully, no :frog:
<Consolatis>
riteo: when creating the xdg-toplevel either call set_mode() *if* you really have a preference or unset_mode() if not (recommended usually), then use the configure handler to update your decoration (e.g. render them / remove them)
<riteo>
Consolatis: yeah, but the idea was to use libdecor only if the compositor asks for CSDs
<riteo>
we can't do it like that as we'd have to recreate the window since libdecor has its own toplevel wrapper
<Consolatis>
that sounds difficult indeed, I guess if you just want to know the preference of the compositor you could create a dummy xdg-toplevel manually before
<Consolatis>
the kde decoration protocol has a preferred event for the manager itself, the xdg doesn't doesn't afair
<Consolatis>
the xdg one doesn't*
<JoshuaAshton>
mmmm
<JoshuaAshton>
seems my MR has another bug where you set and unset and get entirely different decorations... lol
dD_ has quit [Quit: WeeChat 3.5]
<Consolatis>
JoshuaAshton: not sure right now but I'd assume you just need to call another set_mode() there?
<Consolatis>
the configure handler should then (hopefully) react to that correctly by either rendering the CSD or not
<Consolatis>
be aware of loops though if that function may be called on the configure handler.. afair the protocol stated something like "do not send the same value twice"
<JoshuaAshton>
Consolatis: Yeah just pushed up my MR with tbasically that