bakkeby / dwm-flexipatch

A dwm build with preprocessor directives to decide which patches to include during build time
MIT License
1.18k stars 238 forks source link

Maybe a Feature Request: Extrastatus ( Multi-Extrastatus ) #99

Closed Kemmojo closed 3 years ago

Kemmojo commented 3 years ago

Hey again,

just wanted to ask if there is a "defined" way to have multible extrastatus modules on different sides of the extrastatusbar?

I kinda achieved this by duplcating everything dedicated to extrastatus, statuscmd and status2d and created a second seperator. To my surprise, this was working flawlessly, except the rawtext handling, that needed some nesting. But thats of course a totally messy way.

Here a screenshot: dwm_multi_extrastatus

( By the way, i love the statusbar module appoach, that´s what inspired my to try. )

Have a good one.

bakkeby commented 3 years ago

Yes that's the way you'd have to do it, duplicate and deal with the nesting. It should be fine in general, but one of the complications is that you can't guarantee that there will be enough space for each of the three statuses - so you end up having a large array just to make sure there is enough.

What if you wanted more though? How about six of them? Rather than going through the root window name and have dwm detect the name change to update the statuses what you can do is have dedicated functions to do this via the IPC patch. That way you can also update each status individually.

This is actually fairly straightforward to do, but it will depend on what you use to update the bar and if you expect button clicks as well.

Kemmojo commented 3 years ago

That actually works for me.

Having the IPC Patch to handle certain things sound like a thing i could use in one or two scenarios.

Thanks a lot, that answered the question.

bakkeby commented 3 years ago

I actually ended up implementing support for multiple statuses in my personal dusk build. I have yet to write up documentation for that though.

The gist of it is that each status has a separate ID number, 0, 1, 2, etc. and you can have as many statuses as you want and they are all updated separately via the IPC patch.

Some of the benefits I observed were:

Some obvious cons in terms of bloat:

I'm not sure if I'd actually recommend others to go down this route, but for me I don't think I'm ever going back.

In any case I think it is a bit too involved / invasive to integrate into dwm-flexipatch.

Kemmojo commented 3 years ago

In terms of people showing interest for and extrabar & create / align multible statuses,

i found myself getting asked by some work colleagues about my setup ( Still WIP and similar to the positioning in the image above ) and how difficult it would be to implement something similar themselves. For some i got the time to show them a little bit about the patching process and the module system, and was pleasantly surprised by how positiv some of them responeded to it. ( Mainly because of the patch.h documentation )

But i additionally checked some r/unixporn posts and the number of people using setups like this on any WM ( mostly using polybar ) seem fairly low.

So, my guesses would be that:

or

Would be interesting to have some what more direct feedback about the idea in general and if people willing to take the time to setup, customize dwm with this approach.

I can´t right know, but i think i will check out your dusk build somewhat later that year. But for now, i´m totally happy with what is implemented in dwm-flexipatch.