Support and General Use > Theming and Appearance Customization

OneBit_OLED

(1/3) > >>

gnomacor:
Oh no, yet another modified OneBit theme? Hear me out, I swear it's not yet another recolouring.

This was in my back burner ever since the original OneBit came out. I was also looking to replicate the 80s/90s audio gear look on Rockbox, down to it being VFD. I appreciate the effort to make it look interesting, but IMHO this theme doesn't really nail the look. But that's not the point here.

What I did notice however is the SBS/menu theme. It had such a clean and organised look, with popping colours to accentuate some elements. I actually felt something. It strongly reminded me of 2000s/2010s MP3 interfaces, hence OLED. I swear I have seen something similar in an actual product but I can't seem to be able to identify them.

So this theme brings the visual of the SBS to the WPS, which is quite interesting if I might say. I wanted it to look as "stock" as possible, as if it could have been in a real product. The result is a text-centric theme with emphasis on colouring. Player informations are all converted into icons. Shuffle and Repeat indicators share space, as some mp3 players did. The theme has otherwise received some quality of life upgrades such as better fallback for music with missing tags (the original had none) and respecting 12/24hr preferences.

If you miss the loud VU meter of the OneBit theme, don't worry! I'm working on it, but it's not as simple as a bar tag. Hopefully I can bring more interesting stuff to the table soon.

PS. I wanted to make the accent colour customisable using the foreground colour but because this theme messes a lot with colours, it is actually infeasible. Real bummer.

Frankenpod:

--- Quote from: gnomacor on June 16, 2025, 03:33:38 PM ---PS. I wanted to make the accent colour customisable using the foreground colour but because this theme messes a lot with colours, it is actually infeasible. Real bummer.

--- End quote ---

Yeah, I tried doing things like

%?if(%ss(0,1,%St(background color),number),>,9)<%Vf(000000)|%Vf(ffffff)>%Vb(-)

i.e. querying the background colour and setting other colours based on that

But never really got it to work as expected, beyond, as above, getting a general idea of if it was a light or dark shade and setting foreground colour white or black accordingly.  Couldn't work out how to get the chosen colour as a number, that one could then manipulate to produce a different 'accent' colour.

gnomacor:

--- Quote from: Frankenpod on June 17, 2025, 10:33:22 AM ---
--- Quote from: gnomacor on June 16, 2025, 03:33:38 PM ---PS. I wanted to make the accent colour customisable using the foreground colour but because this theme messes a lot with colours, it is actually infeasible. Real bummer.

--- End quote ---

Yeah, I tried doing things like

%?if(%ss(0,1,%St(background color),number),>,9)<%Vf(000000)|%Vf(ffffff)>%Vb(-)

--- End quote ---

no, because it's a hexadecimal it wouldn't see it as a number. I actually got it working brute-force by comparing it as a string:

%?or(%if(%ss(0,1,%St(background color)),=,8),%if(%ss(0,1,%St(background color)),=,9),%if(%ss(0,1,%St(background color)),=,a),%if(%ss(0,1,%St(background color)),=,b),%if(%ss(0,1,%St(background color)),=,c),%if(%ss(0,1,%St(background color)),=,d),%if(%ss(0,1,%St(background color)),=,e),%if(%ss(0,1,%St(background color)),=,f))<%Vf(ffffff)|%Vf(000000)>%Vb(-)

it has to be the upper part of the hexadecimal, the lower 0-7 approach won't work because apparently all the letters match to 1? that took some debugging.

also in the process of solving this, I also figured out how to solve the previous issue I had with foreground colours. so the problem was that, since now the ui viewport needs to use a different foreground colour (which applies to list elements). changing the foreground colour of the info viewport has a side effect of changing the WPS's foreground colour as well, which idk if it's intended. it's undocumented, but %Vf(-) lets you reset those colours and use the one actually set by the user.

the colour adjustments below were achieved with just stock rockbox settings. it's actually quite usable, thanks for the idea and guidance, unintentional it may be!

Edit: the adaptive theme is now uploaded as v1.1.

Dook:
I developed a similar solution for a WIP themify update last year, it's the same idea as yours but a little cleaner so I thought I'd share it if you wanted to give it a try.

%?or(%or(%if(%ss(0,1,%St(foreground color)),>,7),%if(%ss(0,1,%St(foreground color)),>=,a)),%or(%if(%ss(2,1,%St(foreground color)),>,7),%if(%ss(2,1,%St(foreground color)),>=,a)),%or(%if(%ss(4,1,%St(foreground color)),>,7),%if(%ss(4,1,%St(foreground color)),>=,a)))<%Vf(ffffff)|%Vf(000000)>

I use the foreground colour because you can just let the user do the hard work of setting good contrast, you can be sure that the user has set a readable colour and based on that you know you can use the right accent colour.

gnomacor:
thanks for the help, dook. nice to know that you can compare letters, is it perhaps based on ascii value?

aside from that, it turns out the battery indicator was broken. i learned it the hard way when my player ran out of battery. i woud have rather waited before i push another update but i had to. v1.2 fixes this and incorporates dook's logic.

also because the battery indicator logic was previously not modified, this also means that OneBit_VFD/Mono has a broken battery indicator.

Navigation

[0] Message Index

[#] Next page

Go to full version