ifreund changed the topic of #river to: river - a dynamic tiling wayland compositor || https://github.com/ifreund/river || channel logs: https://libera.irclog.whitequark.org/river/
notzmv has quit [Ping timeout: 272 seconds]
st4ll13 has quit [Quit: WeeChat 2.9]
notzmv has joined #river
waleee has quit [Ping timeout: 276 seconds]
elshize has joined #river
<elshize> when I dug deeper into my errors, turns out it had nothing to do with nvidia, just was missing some config file, must have deleted it by accident. lol.
<elshize> which is good because I'm back on river!
<elshize> so bottom line, apart from that WLR_NO_HARDWARE_CURSORS=1 that I had to set, river is running just fine on my nvidia/intel hybrid setup, with nouveau drivers
snakedye has quit [Ping timeout: 258 seconds]
leon-p has joined #river
novakane has joined #river
<ifreund> elshize: nice, that's great to hear!
snakedye has joined #river
waleee has joined #river
waleee has quit [Ping timeout: 268 seconds]
<ifreund> dnkl: river now sets the resizing xdg-toplevel state during interactive resize :)
<dnkl> ifreund: nice! thanks!
tsujp has joined #river
<tsujp> Is there a way to set Mod2 to only be Alt_R?
<tsujp> I know how to do that under X11 but not how it works under Wayland, and so for use in River
<tsujp> I could use Mod1 but that is both Alt_L and Alt_R and I want specifically Alt_R
<tsujp> (it's not AltGr in this case)
<ifreund> tsujp: The only way I know to do that off the top of my head would be a custom xkb layout
<ifreund> there might be some xkb switch you could toggle though
<ifreund> wlroots just relays the modifiers from libxkbcommon to river
<ifreund> snakedye: I'm curious, does your layout generator make any use of data from the advertise_view event?
<ifreund> I'm not aware of anyone acutually using it for anything interesting and part of me wants to nuke it
<snakedye> It used to but not it doesn't
<ifreund> what did you do with it?
<ifreund> leon-p: are you using advertise_view for anything so far?
<snakedye> I was using it to put windows with an app-ip in the master area but I felt like doing it in the layout generator was janky because the layout wouldn't match how windows are organised in the stack
<snakedye> There's a use for it but not really a great way to implement it
<ifreund> I'm coming to believe that using it for anything makes the layout less predictable to the point where I personally wouldn't use it
<ifreund> and so I'm questioning having it around at all
<ifreund> I also realize that we could simplify the set/mod event dichotomy to just a single send event for each type
<ifreund> then use the name to distinguish between set/mod/whatever
<leon-p> ifreund: no, I don't use it yet. I also don't think I ever will, so +1 for removing that.
<leon-p> my initial idea was to set specific layouts for specific scenarios, but it turns out my work behaviour is way to chaotic to predict such scenarios.
<leon-p> removing it is kinda funny though, considering it started the discussion which lead to where we are now wrt layouts
<leon-p> thinking about a release or why are you touching up the protocol?
<snakedye> having some think of window rule for a specific tag can be nice
<snakedye> I know my first workspace on my main monitor always has Firefox or the one with documentation
<snakedye> Not having to think about making it master would be something less to think about
<leon-p> I found that rigid windowing rules, while nice in theory, just don't apply to real world usage. At least not for me.
<snakedye> I've seen quite a few people successfully implement programmatic floating which is entirely based on windows rule
<leon-p> yeah that's not me. I desperately need dynamic tiling to keep my windows somewhat organized :D
mib_87q3pn has joined #river
<snakedye> ¯\_(ツ)_/¯
<novakane> same I tried it with awesome wm, every workspace with some rules for floating/tiling, size or whatever and in 2 hours it's chaos
<snakedye> Hahaha I do think that is nightmare
mib_87q3pn has quit [Client Quit]
Guest2551 has joined #river
Guest2551 has quit [Client Quit]
<snakedye> The most chaotic thing I did was to make all my layout value per tag
<novakane> yeah now I just use a lot of tags with like 2 windows on it and just let them live their life :P
<snakedye> Some layouts also don't scale well which makes having anything more than 3 windows a pain to use
<snakedye> Looking at you master and stack
<snakedye> Leon's stacktile is very good in that aspect
<novakane> yep stacktile was a good idea, but anyway on 13" laptop screen every layout sucks tbh haha
waleee has joined #river
<ifreund> leon-p: yeah exactly. Removing functionality like this is something I'd much rather do before a release
<ifreund> I'll inevitibly want to break things again even after 0.1.0, but I'll try a lot harder to avoid it
<elshize> it's probably easier to put it back in afterwards if there's demand for it
<elshize> just make sure not to go too far and start removing as many features as possible, gnome style lol
<ifreund> yeah, so far I haven't seen any actual usage of it even though it's been in river for months at this point
<ifreund> and adding it or something similar in the future would be a much less jarring change
<elshize> ifreund: you're in a unique position where probably anyone who could use it is in this channel or follows the repo
<leon-p> elshize: from the dev / maintainer perspective removing features is pretty much always a reasonable idea :D less code is better.
<elshize> so remove it before river hits mainstream!
<ifreund> Alright, I think I'll draft up a PR removing it
<elshize> leon-p: believe me, I know. and in a way I agree with the concept -- maintenance is expensive. the problem begins when someone takes it to the extreme
<ifreund> I think it's just that and the cursor thing leon-p was working on fixing that block 0.1.0
<leon-p> ifreund: the view advertisement mechanism is explained in a few places I think, be sure to remove them all
<leon-p> I haven't found time to work on the cursor thing this week, but next week I have some spare time
<ifreund> cool, I've got some misc chores to do before the release as well, and was also considering writing a short blog post introducing river
<snakedye> Is support for drawing tablet in the 0.1.0 roadmap?
<ifreund> snakedye: nope, I don't have hardware
<leon-p> elshize: off-topic, but I personally don't think the gnome devs have taken it too far. They have an idea of what their software is supposed to do and they simply removed everything else. Customisatizability is incredibly taxing to maintain. Trust me, I had to remove some customization from some of my projects as well for this reason.
<snakedye> Aww 😔
<snakedye> I'll endure sway a bit longer then
<leon-p> I have a drawing tablet, but it's a cheapo one and my time is spread thin
<leon-p> with 0.1.0 I can finally start on the introduction video :D
<snakedye> I was thinking about buying another one because my current is getting uncomfortably to use
<elshize> leon-p: I hear you, I guess I'm just a bit bitter about their approach to CSD. but on the flip side, that made me try other things and find river, so thanks Gnome I suppose :)
<snakedye> leon-p: if you make your software customizable enough, you can delegate the implementation of some features to the user which makes maintenance easier
<leon-p> snakedye: that usually results in ugly hacks, which I don't tolerate in my projects, and eventually results to someone demanding full scripting, a LISP engine and the capability to read mail, so not my preferred way to do software :D
<ifreund> there's a balance to be struck there, and I think the layout protocol (sans advertise_view) is a good example of that
<ifreund> lots of flexibility for users without much complexit on our side
<leon-p> btw, we still have to look into the issue that river softlocks when the layout generator dies before comitting a layout
<snakedye> leon-p: feeling are hurt as I am typing this message in my emacs web browser, running inside my emacs wm inside an emacs bootloader I call a computer :((
<ifreund> :D
<elshize> ifreund: I think that's where gnome has been failing a little -- their extensions api keeps changing and makes people angry. so yeah, remove unused stuff now before anyone has a chance to complain they were using it :D
<ifreund> leon-p: oh? we should probably have an issue tracking that. I don't think I ever managed to reproduce it
<ifreund> elshize: yeah, gnome doesn't seem to care about stability at all
<leon-p> snakedye: I actually think emacs is a good idea: It's not an editor, it
<ifreund> I do, but not as much this early in river's life :D
<leon-p> 's a shell with graphics capability
<leon-p> but the packaged software is a bit crusty D:
<leon-p> ifreund: I'll open an issue as soon as I can reproduce it reliably. I'll wait for your layout protocol changes though
<ifreund> cool, I should be able to get them pushed tonight
<ifreund> removing code isn't too hard
<ifreund> might wait a day or two to see if anyone not active on IRC pops up and shows me some really cool thing they've done with the advertise_view event though
<elshize> ifreund: depends on the code or sometimes code quality -- some of my worst experiences are removing legacy code o_O
<snakedye> leon-p: I only ever used doom emacs which was fine but slow for what I used it for which didn't include sending email, browsing the web or running a wm
<ifreund> river's code is luckily pretty easy to work with so far :)
<ifreund> some style annoyances in the older code though, it is my first zig project after all
<snakedye> Isn't Zig a bit too legacy 😜
<ifreund> (if you want to see some really bad zig code, go way back to the initial river commit)
<elshize> ifreund: I always tell myself that if my old code wasn't just a bit annoying, then it would mean I haven't gotten any better since the last time -- makes me feel better about myself ;)
<ifreund> for sure, looking back and seeing how wrong you were in the past and how much you've learned can be pretty great
<ifreund> and I've certainly come a long way since I started working on river and got involved with zig
<ifreund> people even pay me to write zig now!
<leon-p> snakedye: I used to be an emacs user a few years ago. It does not shine as a editor really. As I said, you have to see it more as a shell. Instead of writing a crusty POSIX shell script for some job, you can write in a clean language and easiely put a graphical interface on top. Just a shame it is so bogged down by all the legacy crap underneath.
<elshize> ifreund: yeah, that's awesome
<leon-p> I still have my first C project around. A shitty window manager for X (with useful features such as tripple borders). Code is a mess :D
<ifreund> leon-p: once river is "done" I might write some kind of modern vaguely emacs but more kakoune inspired TUI framework/text editor with janet instead of elisp or "kakscript"
<snakedye> leon-p: would it be feasible to rewrite emacs I'm a way that meets current standards
<elshize> leon-p: tripple borders, sounds fun
<ifreund> did y'all see the double borders river fork?
<snakedye> Yeah
<elshize> nope
<leon-p> ifreund: I'd be down for that kakemacs.
<ifreund> maybe they'll make it generic and move to N-borders someday
<snakedye> Didn't used it yet
<leon-p> snakedye: yes, it would be feasably. My idea is to have a central server allocating buffers and such and clients in the form of simple xdg shell windows with fully scriptable widgets.
<snakedye> leon-p: I feel like such a pleb with my mono border compositor
<leon-p> snakedye: don't worry. I moved back to singular borders as well :D
<leon-p> snakedye: if you want a screenshot of tripple border bliss: https://git.sr.ht/~leon_plickat/antares/blob/master/example_images/example5.png
<snakedye> Reminds me of the decorations of old school wm like icewm
<leon-p> turns out 2017-me had a better sense of style than 2021-me :(
<snakedye> Less colors, less borders, less stylish. Aging is frightening
<leon-p> re-reading my old code, there are so many size hints for X windows. There are NormalHints BaseHints Size and SizeHints. All of which may or may not tell you the desired default size of a window. What a mess.
<ifreund> I haven't changed my theme away from solarized dark in almost 2 years now
<leon-p> solarized is one of the few themes that is actually engineered instead of just designed, that is fully understandable.
<ifreund> someday I want to get solarized light/dark toggling set up. It's a pretty big pain though
<novakane> so I go away 15min and when I back I saw some triple borders screenshot, what is it, we're unixporn now? :P
<snakedye> better... usabilityporn
<novakane> I tried a light/dark theme for river but hard to change at runtime
<leon-p> ifreund: at least the river part is simple :D but yeah, colour changers for terminals are a pain, especially if you want to syncronize it with the rest of the syytem
<novakane> snakedye: ah nice
Layla555 has joined #river
<Layla555> Hi! Can I ask questions about setting up river?
<leon-p> yes you can
<Layla555> oh okay so i've followed the instruction but when I log into the river session and open up any application (for example alacritty) i only see the empty title bar and nothing else. Any help ?
<leon-p> By title bar, do you mean the title bar of the window?
<Layla555> yes I think its the title bar of the window but if it isn't I can only describe it as a white bar
<leon-p> Interesting. By default, no window on river should show titlebars (except GTK, but that is a different issue).
<leon-p> Do you have the right wlroots version installed?
<leon-p> Is a layout generator running?
<Layla555> I had gotten the wlroots from gentoo's emerge --ask wlroots. idk about layout generator really sorry if i'm unaware of something that i should be knowing
<leon-p> Could you perhaps show us a screenshot of what is happening?
<Layla555> ok might take a little time
Layla555 has quit [Quit: https://mibbit.com Online IRC Client]
Layla555 has joined #river
<Layla555> The app opened is working but doesn't display anything other than that bar
<novakane> hmm the image doesn"t load for ma
<leon-p> Layla555: My guess is that that is not the titlebar, but the window with weird dimensions.
<Layla555> but that is happening to all applications
<leon-p> Yes, something is wonky. Perhaps your river and wlroots versions mismatch.
<leon-p> have you build river from source?
<Layla555> yes i've built it from source. what version of wlroots am i supposed to use specifically?
<novakane> wlroots 0.14.1
<novakane> wlroots 0.14.0 should works too I think
<Layla555> i used 0.14.0
<novakane> yeah I don't think 0.14.0 would cause any issue
<Layla555> would it be a problem caused the env variables?
<Layla555> caused by the *
<novakane> could you grab a log `river -l 7 >river.log 2&>1
<Layla555> can i do that log nested in an X session or do i have to go into the river session?
<novakane> well you could start by get it in an X session but we could miss something in it
<Layla555> oh ok give me some time
Layla555 has quit [Quit: https://mibbit.com Online IRC Client]
Layla555 has joined #river
<Layla555> the log file is empty
<novakane> oh wait I made a typo, it's river -l 7 >river.log 2>&1
<novakane> my bad
<Layla555> it saying it could not resolve keysyms
<Layla555> Errors from xkbcomp are not fatal to the X server 00:00:00.170 [DEBUG] [types/wlr_surface.c:761] New wlr_surface 0x196cd90 (res 0x19710c0) 00:00:00.170 [DEBUG] [types/wlr_relative_pointer_v1.c:145] relative_pointer_v1 0x19e2210 created for client 0x122c9f0 00:00:00.171 [DEBUG] [xwayland/server.c:257] Xserver is ready 00:00:00.172 [DEBUG] [xwayland/xwm.c:1740]
<Layla555> this part (along with all the other keysym errors) kept repeating
<Layla555> whatever i'll just use wayfire, sorry for wasting all your time
<novakane> keysyms errors are not important
<novakane> I don't see what could cause that weird thing
Layla555 has left #river [#river]
novakane has quit [Quit: WeeChat 3.2]
<waleee> Is it possible they just forgot to enable xwayland when building river?
<ifreund> waleee: nope, there wouldn't be any xwayland related log messages in that case
<ifreund> I think I'll actually just replace the layout value stuff with arbitrary commands. It's simpler and more flexible: https://0x0.st/-Olx.txt
<ifreund> let the layout client decide how to parse
<leon-p> if we leave parsing up to the client, why not also just have it as a single event? Separating by whitespace isn't that hard.
<leon-p> I think that having multiple events per command is overcomplicating things a bit
<leon-p> anyway, I need sleep so I am gone for today.
leon-p has quit [Quit: leaving]
<ifreund> leon-p: (assuming you read the logs) it's nice to expose from riverctl this way I think, no need to mess with quoting
<ifreund> riverctl send-layout-cmd rivertile mod-main-count 1
<ifreund> vs
<ifreund> riverctl send-layout-cmd rivertile "mod-main-count 1"
<ifreund> we could of course have riverctl join all args after the layout namespace with spaces, but that would almost certainly produce unexpect results in some cases
<ifreund> e.g. riverctl send-layout-cmd rivertile "foo bar" "foo bar"
<ifreund> I'm not terribly happy with the complexity of the two events either, but I think it has the fewest edge cases this way
<elshize> ifreund: how does one read logs in irc anyway?
<ifreund> elshize: there's no universal way, but there's a log bot in this channel thanks to whitequark and you can view the logs at their website (link in the channel topic)
elshize has quit [Quit: WeeChat 3.0.1]
tsujp has quit [Remote host closed the connection]
<ifreund> leon-p: ok, implementing the multiple events version in rivertile was too much of a pain, I think I'll switch to the single event with a single string arg version in the morning
waleee has quit [Ping timeout: 246 seconds]
waleee has joined #river
elshize has joined #river