ChanServ changed the topic of #river to: river - a dynamic tiling Wayland compositor || https://codeberg.org/river/river || channel logs: https://libera.irclog.whitequark.org/river/
catman has quit [Quit: WeeChat 4.3.0-dev]
catman has joined #river
<adamcstephens> river[39293]: error(text_input): inactive text input tried to commit an update, client bug?
<adamcstephens> where do i start with this?
<adamcstephens> or can turn it off? i'm getting it with every keypress in ghostty :/
eShaev9z_ has joined #river
eShaev9z has quit [Ping timeout: 255 seconds]
adamcstephens has quit [Remote host closed the connection]
adamcstephens has joined #river
angry_vincent has joined #river
tiosgz has joined #river
<tiosgz> adamcstephens: if this only happens with ghostty, it may very well be their bug
<tiosgz> analyzing a short WAYLAND_DEBUG log of both ghostty and the input method may reveal something
winter has joined #river
leviathan has joined #river
<tiosgz> ifreund: did i understand corretly that we should act as if the wiki were world-writable? (except for obvious bad changes, of course)
<leon-p> I don't think it is word writable? Not everyone has merge access
<tiosgz> i meant in the sense that we should just merge everything
<leon-p> ah, I see
<leon-p> well, I personally wouldn't be super comfortable merging information I can not confirm
<leon-p> btw, super happy about the river organisation officially assimilating the previously inofficial members :]
<leviathan> Guys, I have a simple technical question: how do I get a surface's parent?
<leviathan> I know I can get the layerSurface by using wlr.LayerSurfaceV1.tryFromWlrSurface, but what if the parent isn't a layerSurface?
<leviathan> It could be a View or something else? How should I go about obtaining this object?
<leon-p> Have you checked the pointer movement handler? It has to get the View from a surface for focus-follows-cursor
<leon-p> you can get the View from the scene node if you have that: SceneNodeData.fromNode(node).?.data can be .view
<leviathan> Thank you, I just went to check the code in the Cursor.zig file
<leviathan> I found that this is done by obtaining the corresponding view through the result of server.root.at(x, y), essentially maybe via the current coordinates?
<leviathan> But what I'm trying to implement is an ime_popup, where only a surface object is available for use.
<leviathan> I can only determine the parent's position based on this surface to then set the popup's position.
<leviathan> This is quite puzzling to me. I went on to read Sway's code, and I found that they implemented their own view_from_wlr_surface.
<leon-p> yeah for that you don't want to use that, I remembered the innards wrongly or things got changed since I last touched cursor code
<leviathan> Before that, I also read through some PRs in dwl, where I found they have a toplevel_from_wlr_surface
<leviathan> However, I don't think River needs to implement a similar functionality just to use it once in ime_popup
<leviathan> So, I've been thinking that maybe my understanding of the code isn't sufficient, which is why I'm asking here, looking forward to everyone's help.
<tiosgz> XdgToplevel sets the .data fields on some wlroots structs. this suggests it's also used somewhere
<tiosgz> generally if you only need to do this "conversion" once, you can inline it, otherwise a function makes sense (or this is how i remember it)
<leon-p> wlr.Surface has .data, but I have no idea /what/ it is set to...
<leon-p> there is wlr_xdg_toplevel_try_from_wlr_surface(), which gets xdg_surface via wlr_xdg_surface_try_from_wlr_surface(wlr_surface)
<leon-p> from the toplevel I think the View is rather easy to get
<leviathan> Thank you very, very much. I'll give it a try as soon as possible :)
<leon-p> I don't think zig-wlroots exposes that though, at least I could not find it. So use XdgSurface.tryFromWlrSurface(), which returns ?.*wlr.XdgSurface and move on from there
<leon-p> Maybe we should document all that pointer soup eventually...
mohan43u has quit [Quit: WeeChat 4.2.1]
<leviathan> Indeed, I might have gotten too excited. I just checked the code for zig-wlroots, and it indeed doesn't have this method.
<tiosgz> if you need it, you can bind it (and send a pull request). the fact it isn't bound means only that no-one has needed it yet
mohan43u has joined #river
<leviathan> Thank you very much. I'll give it a try.
tiosgz has quit [Quit: tiosgz]
leopoldek has quit [Remote host closed the connection]
leviathan has quit [Quit: Client closed]
winter has quit [Ping timeout: 250 seconds]
<ifreund> tiosgz: Yeah, Id say think of it as world writable with basic quality control :)
<ifreund> I wouldn't stress too much about accidentally merging something slightly incorrect
lbia has quit [Quit: lbia]
mrfoxpro has joined #river
<mrfoxpro> Hi. How can I programmatically set view tags?
tiosgz has joined #river
<tiosgz> ifreund: thanks :)
<tiosgz> mrfoxpro: could you expand your question? right now i can only point you to riverctl manpage and point out that tags are given in base-10, but the numbers are treated as bitmasks
rdbo has joined #river
<mrfoxpro> tiosgz I have a rule for view with tag. While working, I can accidentially move view to another tag. And I want to make script that will move window to it initial / correct tag instead of killing and reopening it.
<mrfoxpro> There's known app-id and title of that view
<mrfoxpro> In manual I found only way to set tag for current focused view.
<tiosgz> ah. this is definitely not possible with riverctl. i don't know if the foreign-toplevel-management is capable of this and if river supports the necessary part of it
mrfoxpro has quit [Ping timeout: 250 seconds]
mrfoxpro has joined #river
mrfoxpro has quit [Quit: Client closed]
mrfoxpro has joined #river
mrfoxpro has quit [Client Quit]
mrfoxpro has joined #river
<mrfoxpro> Do I understand that this is wayland restriction and can't be done by river?
<adamcstephens> tiosgz: looks like kitty also reports the same text_input error
<adamcstephens> i can capture a WAYLAND_DEBUG, but i'm not sure what i'm looking for
<tiosgz> mrfoxpro: not strictly wayland. it's just that river doesn't have a command for this. as i've said, you can try looking at foreign-toplevel-management
<tiosgz> adamcstephens: neither do i know. i just suppose that if time-related messages can be found and compared to the protocol, it may possibly give some info
<tiosgz> this log is only ghostty, right?
<mrfoxpro> well, seems like foreign-toplevel-management is supported by river, but how can I change internal river state (view tags) with it?
<adamcstephens> tiosgz: yes, only ghostty. it does include some of its own output tho
<tiosgz> mrfoxpro: ah, apologies. i thought the protocol has the means to do this, but now i see it doesn't.
<tiosgz> adamcstephens: i meant it as "the error comes from something the input method did, so the input method's log is more important here"
tiosgz has quit [Quit: nyaa~]
mrfoxpro has quit [Ping timeout: 250 seconds]
leviathan has joined #river
kotto has joined #river
leviathan has quit [Quit: Client closed]
h3at has joined #river
h3at has quit [Client Quit]
alexherbo2 has joined #river
kotto has quit [Quit: WeeChat 4.2.1]
leopoldek has joined #river
kotto has joined #river
angry_vincent has quit [Read error: Connection reset by peer]
winter has joined #river
alexherbo2 has quit [Remote host closed the connection]
andyrtr has quit [Quit: ZNC 1.9.0 - https://znc.in]
alexherbo2 has joined #river
andyrtr has joined #river
rdbo has quit [Ping timeout: 252 seconds]
<leon-p> I wonder if we should already close all issues which are solved / made irrelevant by the eventual WM protocol
<leon-p> or at least label them as such
angry_vincent has joined #river
lbia has joined #river
winter has quit [Ping timeout: 250 seconds]
winter has joined #river
<ifreund> leon-p: Ive been tagging them as "use case" rather than "enhancement" for the most part
revsuine has joined #river
revsuine has quit [Client Quit]
revsuine has joined #river
revsuine has quit [Client Quit]
revsuine has joined #river
revsuine has quit [Client Quit]
revsuine has joined #river
revsuine has quit [Client Quit]
revsuine has joined #river
winter has quit [Quit: Client closed]
angry_vincent has quit [Ping timeout: 255 seconds]
dagle has quit [Quit: WeeChat 4.2.1]
ccha has quit [Quit: WeeChat 4.2.1]
catman has quit [Quit: WeeChat 4.3.0-dev]
ccha has joined #river
catman has joined #river
leopoldek has quit [Ping timeout: 264 seconds]
dagle has joined #river
revsuine has quit [Remote host closed the connection]
revsuine has joined #river
alexherbo2 has quit [Remote host closed the connection]
Guest93 has joined #river
Guest93 has quit [Client Quit]