-
Notifications
You must be signed in to change notification settings - Fork 476
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Async branch progress #1440
Comments
@MaxVerevkin copied the table here to make things easier to track. |
Is this the only non-block specific thing left to implement? |
I think so. It's pretty easy to implement, but I already mentioned that this particular solution is probably not the best one - it doesn't allow for "short formats". |
Originally posted by @GladOSkar in MaxVerevkin/swaystatus#4 (comment) Doesn't it work out with the above suggestion? |
Consider a block with the following format: [block.format]
full = "two buttons: $btn1 $btn2"
short = "one button: $btn1" The full format expands into something like [
{"full_text": "two_buttons "},
{"full_text": "<btn1 label> ", "instance": "btn1"},
{"full_text": "<btn2 label>", "instance": "btn2"},
] How should the short version integrate into this? |
Maybe i'm not seeing something but I don't see why
wouldn't work? |
Okay, bad example. How about [block.format]
full = "two buttons: $btn1 $btn2"
short = " $btn2 $btn1" # buttons are swapped |
Yeah true there i'm stumped :D I would probably try to prohibit this in some way unless there's a good reason for it |
Well, telling users that both of their formats should contain buttons in the same order is kinda weird. And BTW, when/if i3/i3#4113 is implemented, the whole idea of splitting stuff into widgets will be broken. |
Also true :( |
Actually, something like this might work 😆 (haven't tried it yet) [block.format]
full = "two buttons: $btn1 $btn2"
short = "$btn2 $btn1" # buttons are swapped [
{"full_text": "two_buttons ", "short_text": ""},
{"full_text": "<btn1 label> ", "short_text": "", "instance": "btn1"},
{"full_text": "<btn2 label>", "short_text": "", "instance": "btn2"},
{"short_text": "<btn2 label> ", "full_text": "", "instance": "btn2"},
{"short_text": "<btn1 label>", "full_text": "", "instance": "btn1"},
] |
Oh no... As if a lot of all this wasn't already hacky enough -.- |
There's more. Setting full text to |
b42df75. For now I've implemented only clickable placeholders, i.e buttons. Now, configs like this are possible [[block]]
block = "music"
[block.format]
full = "$title_artist.rot-str(20) $prev $play $next|"
short = "$title_artist.rot-str(15) $play|"
Actually, this (given that something like this will be accepted) can be easily fixed - |
If anyone has an nvidia gpu, please test this block: https://greshake.github.io/i3status-rust/i3status_rs/blocks/nvidia_gpu/index.html. |
Music block: |
About the networkmanager block: is it really necessary to display multiple widgets at once? Perhaps an approach identical to the music block is sufficient? Edit: never mind, apparently each connection can have multiple devices (which implies that a connection can have multiple access points, IDK if this is actually possible). I'm not sure what it means in practice, but this is impossible to implement using current formatting system unless I implement some sort of loops (#1304 (comment)). |
I've implemented this in my port of |
Startup time comparison with the same configMasterold.mp4That branchnew.mp4 |
I can't find the post but I remember seeing you write that the second design would make it easier to port existing blocks. Do you think that's the way to go for now in order to switch master over to async ASAP? |
IDK :) Porting complex blocks (networkmanager / music / dbus in general) is still painful, and everything except |
And just to clarify, networkmanager is over-complicated and I neither understand nor use all of it's features, so don't expect me to port it |
Yeah it's basically untouched from the time it was contributed. I'm in favour of dropping it for now since there's no one available to maintain it anyway. |
Closing this since async branch has been merged. Create separate issues if required. |
Fully compatible ✔️
Not implemented ❌
Partially implemented 🕒
Complete but incompatible 🔵
kbdd
(unable to get it work on my machine), greshake/i3status-rust#1386smart_trim
ip(6)
,bitrate
andhide_(missing/inactive)
format
,format_singular
andformat_everything_done
Other issues that will be solved once async branch is merged:
#430
#557
#1015
#1024
#1038
#1127
#1262
#1304
#1314
#1318
#1334
#1371 (partially)
#1442
The text was updated successfully, but these errors were encountered: