ifreund changed the topic of #river to: river - a dynamic tiling wayland compositor || https://github.com/riverwm/river || channel logs: https://libera.irclog.whitequark.org/river/
snakedye has quit [Read error: Connection reset by peer]
snakedye has joined #river
randomString has quit [Quit: Client closed]
dbuckley has quit [Read error: Connection reset by peer]
dbuckley has joined #river
talismanick has quit [Ping timeout: 265 seconds]
snakedye has quit [Ping timeout: 246 seconds]
uncomfy has joined #river
uncomfy has quit [Remote host closed the connection]
eShaev9z_ has quit [Ping timeout: 248 seconds]
eShaev9z has joined #river
snakedye has joined #river
talismanick has joined #river
nt1036 has joined #river
uncomfy has joined #river
waleee has quit [Ping timeout: 268 seconds]
snakedye has quit [Ping timeout: 264 seconds]
snakedye has joined #river
elshize has quit [Ping timeout: 252 seconds]
V-T60 has joined #river
<V-T60> can i switch between two last (probably i don't know the most appropriate word) workspaces? like i was used to do in dwm on X Window System with super+tab
<V-T60> with super+{0,1,2,3...} it can be done, but i need to keep in mind numbers
jao has quit [Ping timeout: 252 seconds]
snakedye has quit [Ping timeout: 246 seconds]
fitrh has joined #river
<NickH> V-T60: there are at least two third party tools to do this. See https://github.com/riverwm/river/wiki/Recommended-Software#other
<NickH> One in python "riverwm-utils" and one in c "river-shifttags".
<NickH> The first one is mine, so let me know if you use it and have questions.
<wrl> V-T60: there's also the focus-previous-tags
<wrl> action
<NickH> Ahh yes, for switching back to the prviously focussed tag
<NickH> s
<NickH> Maybe that is what you were actually asking ;-/
uncomfy has quit [Quit: uncomfy]
nt1036 has quit [Quit: nt1036]
nt1036 has joined #river
nt1036 has quit [Quit: nt1036]
fitrh has quit [Ping timeout: 265 seconds]
snakedye has joined #river
talismanick has quit [Ping timeout: 250 seconds]
<V-T60> NickH: but focus-previous-tags doesn't change anything?
<V-T60> oh, it is not in default ~/.config/river/init
<V-T60> this was nice thing to bind
<V-T60> riverctl map normal Super Tab focus-previous-tags
<V-T60> that is # Super+Tab to focus the previous output
<leon-p> yeah I have the same bind. I bound focus previous output to super+backspace
<leon-p> although I think I could do without focus-previous-tags if I changed the Super+{1..9} binds to toggle instead of set
<V-T60> leon-p: even this is more comfortable, than doing all of these super+{9,1,5,3,8,2,3,4...} mess
<V-T60> i'm not aware of difference between `toggle` and `set`
<leon-p> river allows you to have more than one tag visible at once
<leon-p> so you can either set the active tags to a single one, or toggle the visibility of any tag
<V-T60> like split screen? but this is not very convenient for those who don't use big enough screen
<leon-p> no, not split screen. River only has a single window stack per output, so no matter how many tags you have active, the basic window managing will always behave the same
<leon-p> so multiple tags active is like all windows from all active tags sharing the same layout
<leon-p> (although I think I'd like a split screen option. would allow me to downsize to a single monitor and a smaller desk)
LemanR has joined #river
<LemanR> Hey all, is there a way to set volume from commandline. For example I am trying to 'load' into the command line `riverctl map $mode None 0xffbf spawn "amixer set Master 10%+"`
<LemanR> I am getting `error: cannot add/remove mapping to/from non-existant made 'None'`
<leon-p> $mode isn't defined in your shell
<leon-p> it's only defined in the init script
<leon-p> it's a shell var, not something internal to river
<LemanR> k so if I restart river then it should load (assuming no typos and so on)
<leon-p> no need to restart
<leon-p> you can just run the commands in the shell and replace $mode with "normal" (or whatever mode you want)
<LemanR> can I change it to normal in my init, or is there a reason I should use the $mode None like in the example init?
<leon-p> It's $mode in the init in exactly one place: In a loop that loops over two modes, "normal" and "locked". If you don't want to do anything fancy there is no reason to use a var
StopNGo has joined #river
<leon-p> (it's best to think of init exactly like you'd think of a simple shell script. Because that is all it is. There is nothing special or magic about it, it's literally just a shell script)
<LemanR> Thanks leon-p . yeah I'm not ready for modes yet :p lol btw a question about tags. Do outputs and 'views' use the same bitmap (the 000000000)? or do outputs and views have their own bitmap?
<LemanR> not sure if views is the correct jargon there
<leon-p> it's a u32 in both cases (32 bit unsigned (meaning positive) integer))
<leon-p> view is fine. A bit more correct than window, I guess. Other terms include "toplevel". All in all terminology is a bit muddy
<LemanR> so if I have a view with tag 3 that in 'on' and everything else is 0 then I can expect something like 000000100. But if that is right how does this allow multi monitors?
<leon-p> simple: every output has it's own window list
<LemanR> just using 9 0's for example purposes
<LemanR> a 'window' being the monitor? so I define this in my init?
<leon-p> no, windows == view == toplevel, monitor == output == screen
<LemanR> k, rereading real quick with the updated 'definition'
<leon-p> views are assigned to outputs, views have tags, outputs have tags. Outputs only display views that are assigned to them ("in their list", if we want to get into the implementation details).
<LemanR> one sec, making a doc real quick and adding whats been said lol.
<LemanR> it's something in the details that just isn't 'clicking' for me hence why the doc. so going to make that, look at it and see if I can find exactly where my confusion with this system is. Normally I'm fine understanding systems but this just eludes me lol
<LemanR> so brb
<leon-p> a great moment to shill my blog post again. It has a section on tags: https://leon_plickat.srht.site/blog/setting-up-river-010/article.html
<LemanR> so each monitor has it's own output or 'bitmap' (000000000) and a view also has it's own bitmap. A view will appear on an output if the 1's on each bitmap (the output and view) agree with each other. Am I understanding that much correctly?
<ifreund> yep
<LemanR> cool. Is there a good example of multiple output-bitmap lists? I think that's the point that my brain breaks. Like how is the distinction made between output 1 (monitor 1) and output 2 (monitor 2).
<leon-p> by each output having a separate list of views. Moving a view from one output to the next removes it from the first outputs list and attaches it to the second outputs list. An output only ever compares its tags against windows in its own list.
<LemanR> Is there still a way to have a view on multiple outputs or is what you said just now a pretty 'unbreakable' rule. I'd just find in very useful if I can have the same instance of say emacs on multiple monitors but then beside that have different programs.
<LemanR> so on one monitor having emacs and a firefox window and on a second monitor have that same instance of emacs and Rstudio just as an example.
<LemanR> like imo that would make workspaces obsolete (checkmate workspaces)
aryak has joined #river
<leon-p> yeah that is a hard rule (in river, not necesarily Wayland, but since a client commonly adapts how it renders to the output its window is on, it's not a good idea to try to display the same window on multiple outputs)
<leon-p> however at least in the case of emacs, you can just spawn another frame and display the same buffer
<LemanR> I see, yeah that would be difficult. I think I understand enough to control one output. I will look online to see an example of an init with multiple outputs (I believe I've seen one before on reddit I think).
<leon-p> Each output basically operates as a fully independant thing. Multi-monitor river is just like normal river: All keybinds affect only the focused output and you have keybinds for switching outputs.
<leon-p> Your concept of river may be a bit more complicated than reality :)
<leon-p> FWIW I use multiple outputs and my init isn't special: https://git.sr.ht/~leon_plickat/river-config/tree/master/item/river/init
elshize has joined #river
fitrh has joined #river
LemanR has quit [Ping timeout: 252 seconds]
notzmv has joined #river
waleee has joined #river
LemanR has joined #river
<LemanR> and back. And that's possible lol but I do have to run. Definitely going to copy your init as a well polished example.
jao has joined #river
<LemanR> and once again thanks to all the creators and maintainer. I am loving the DE.
LemanR has quit [Quit: Client closed]
snakedye has quit [Ping timeout: 264 seconds]
snakedye has joined #river
elshize has quit [Ping timeout: 248 seconds]
LemanR has joined #river
LemanR has left #river [#river]
fitrh has quit [Quit: fitrh]
waleee has quit [Ping timeout: 268 seconds]
snakedye has quit [Ping timeout: 268 seconds]
snakedye has joined #river
<plumeus> I mostly hear people referring it as a WM, but eh.
<leon-p> both are wrong, technically, but at this point it's a lost cause, so whatever
<leon-p> we don't ship an application suite, so we aren't a desktop environment. window management is just one of many things river does.
<leon-p> I usually just use "wayland server" or "desktop" (without "environment")
<jao> (i've always called it "wayland compositor")
<plumeus> I always thought the distinction between DE and WM was a bit pointless too. I guess it makes sense for a DE dev that wants to specify that they are referring to the logic that handles windows.
<plumeus> Also, doesn't help that River is in a git repo named "riverwm" (it used to be Issac's repo but still)
<leon-p> the distinction defines the scope. You can use river to build a DE (or "shell" as certain circles would call it), but on it's own it isn't.
<leon-p> (now please ignore that I have worked on a file manager and many wayland desktop widgets, because that kinda breaks my point :P )
<plumeus> What's the file manager?
<plumeus> I've been using something `ranger` or `lf`, here and there
<leon-p> nfm, also a terminal file manager, because I got annoyed at ranger the two times a week I use it: https://git.sr.ht/~leon_plickat/nfm
<leon-p> not finished or anything, pretty WIP still, but useable
<plumeus> Meanwhile with `lf`: https://github.com/gokcehan/lf/issues/942
<leon-p> FWIW alpha sorting in nfm is also slightly buggy, but not annoying enough for me to fix it :)
<leon-p> was a bit surprised I ccouldn't find an alphabetical comparator in the zig std, but oh well
<plumeus> If only you could just leverage `sort` so it respects locales. But then, locales suck.
<leon-p> shell'ing out to subcommands is pretty slow unfortunately
<leon-p> Some things you'll have to implement yourself for bearable performance. However for file management operations I gladly use external programs
<plumeus> also, I stumbled across files with SJIS names and `lf` just gave up on opening the relevant files with the proper MIME types. Should make an issue on this too.
<leon-p> I just call xdg-open with the full file path. No idea why people insist on re-implementing file type matching and openers in their file managers...
<leon-p> only thing I do it check if it's a text file beforehand, to see if maybe $EDITOR is a more appropriate choice
<plumeus> I sure hope it's not an `xdg-open` bug, probably will check later when I'm not so sleepy.
snakedye has quit [Ping timeout: 265 seconds]
snakedye has joined #river
snakedye has quit [Read error: Connection reset by peer]
snakedye has joined #river
nt1036 has joined #river
nt1036 has quit [Remote host closed the connection]
waleee has joined #river
Guest28 has joined #river
Guest28 has quit [Client Quit]
elshize has joined #river
talismanick has joined #river
snakedye has quit [Ping timeout: 260 seconds]
snakedye has joined #river
snakedye has quit [Ping timeout: 248 seconds]
snakedye has joined #river
uncomfy has joined #river