Dynamic branding color for different build types - #5166
Conversation
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
|
Hi Guys,
Just a suggestion I wouldn’t call the read heart unknown I would call it development or something of the sort that way people know its under development and can have breakages.
Regards,
Jonathan
(Email quote removed by @PhysSong)
|
|
Thanks for the input, @eagles051387, but the red will remain "unknown". See below: What ❤️
|
|
@eagles051387 your comments are a bit out of context because they were placed in the main discussion (I assume they were in reference to this #5166 (comment) review discussion). I gave it a thumbs down because of your history of lazy replies to complicated problems. Please be more considerate of the way the tracker works (you should know, you helped set it up). <3 |
|
Alright, I hope this comment helps to sort things out and provide some assistance. Let's recap a few things: The files needed for this project are?
A thorough comb over the discord conversation tells me that somehow different people were under different impressions (including me, previously understanding that we were only finalizing the green/yellow options) for the colors so I wanted to address that here to clarity. This was the original proposal If the script is able to auto-detect the build type, then the red option can be taken out. I already had the colors used for LMMS documented in our design elements file, but I have separated it out and added it to the directory on its own so that it is easier to use and find in our artwork repo here. Of course, the green and even the yellow can stay exactly as it is, but I wanted to suggest tweaking the hues of the other colors to match these for consistency. That would these examples all color variations available if matched exactly to these colors (I'm assuming we would just match to the right hue, but wanted to add everything for clear communication): And as per Ian's request, here are the hex codes for all of the colors: If we do end up using red, I suggest matching to the wine-red already in our palette. |
|
@iansannar has given me permission to help with this script to add multiple SVG size support. What I need:
So pretty much ALL SVGs need to be optimized and redelivered. The build colors should be easy to tweak. Side note, I feel these colors are too close to be used as versioning identifiers. Lastly, we'll need to make a decision on number of colors we're doing. I think Discord is the best place for that conversation? |
|
@tresf can you explain what
I am in the process of making the optimised SVG's, I'll be delivering them to the artwork repo in a pull request |
@Umcaruje please take a look at the green hex color used in the Windows 10 tile. It's off slightly when compared to the icon. e.g. |
That's because it does not use a gradient, and the background is a solid color, though I suppose we could change it if it will simplify the scripts, it's not that big of a shade difference |
I'm fine either way, but I can't believe with any reasonable belief that this is intentional. The difference between the colors is indistinguishable by the naked eye. It seems unlikely that this was intentional. I don't mind, but if by some chance it is intentional, I'll need blue, yellow, red equivalents. If these aren't provided, the PR will be merged with the ones I've created. |
I'll change them to the hex you said |
|
@tresf @iansannar I have pushed the icons in optimized svg format to You can find them in folder Let me know if there is any more issues with these files, all your demands should have been met. |
Done.
Will put together some clear options and head up the conversation over on discord as soon as I can. |
|
hey @tresf could you try and resolve those conflicts we got going on in this pr? |
Eventually. Since the artwork changed, I've realized the need to offer a way to do this programmatically, which requires a refactor. I'm not sure when I'll jump back into this as IRL things keep taking precedence. |
oh ok |
Can you not just put the images in a folder and have LMMS refer to that? I might just be dumb, but that sounds like a good option in my head. (For different branches of course) Edit: You could also just make it a downloadable theme, that exists… I might do that actually. |
Yes, we can ABSOLUTELY place the burden of managing artwork at arbitrary sizes (16x16, 16x16@2, 32x32, 32x32@2, 64x64, 64x64@2), formats (.ico, .icns, .svg, .png) and locations (/usr/share/icons/hicolor/, etc) and colors (green, blue, purple, yellow) upon the artwork designer, but this PR already manages all four of those burdens, so we should make it easier to automate this (which is the main remaining task here).
Although this PR does modify files that a theme can take advantage of, theming is not the primary purpose of this PR because the LMMS theme cannot make changes to things like the Slight scope creep, but this PR will also help isolate versions by applying a default file naming convention to the LMMS properties (.lmmsrc.xml) files. |
This comment was marked as off-topic.
This comment was marked as off-topic.
This post is off-topic, and I've hid it to keep this thread on-topic. (Yes, we understand how our own themes work, and I've explained why this does NOT solve the problem). |
Oh, my bad. |
what if the background was its own image that can be hue shifted (or something like that) and we place the headphones on top? |
|
we’d probably have to change the shading of the headphones to be less dependent on the background color, but it could work. |
The current strategy does no such thing and this recommendation is not very helpful considering we're currently using SVG graphics for the task. The remaining work on this still is the same; it needs a slight refactor to allow the batching of assets from their SVG counterparts. This isn't a huge task, just one that's held up by the person that wrote and understand the code. Sorry for the delay. |
oh, my bad. |
|
if the problem is that we’re unable to render SVG images on Windows (or I guess just in C++ in general), we could use Direct2D. however, if the problem is something else (i.e. there are too many app icon sizes to just make them manually), then it might be a matter of changing some code infrastructure rather than just throwing in another dependency that needs to be accounted for in OS support. I suggest we render the splash image and all the UI stuff normally with a few color changes here and there, and just have a simple program that lets us change the background of the app icons on the fly (probably by having gradient rendering, and a headphone image to make the icons) and because it’s an SVG, we can scale it as we need, since it’s a vector image format that’s defined by math instead of individual pixels. |
|
tbh once I learn how to render images in Python I might just make the program myself. |
Who said anything about not being able to render SVG images on Windows?
The only thing preventing this from being merged is a code refactor.
I'm not sure what you're speculating about here. We don't have any issues with this PR, I just have to refactor some of it to make batching of resources easier. I appreciate the enthusiasm here, but if you don't know what this PR does, I would strongly advise not trying to offer solutions to problems that don't exist. 💚 |
I think I gaslighted myself into thinking that SVG images couldn’t be rendered on Windows when I made that post |
Ah, gotcha. Yeah, it was broken on Windows for a while but we fixed that here |



Adds scripts that, if run, change the color of the branding to indicate unstable builds.
/Applications/LMMS Nightly, etcC:\Program Files\LMMS Nightly, etcDevelopers notes:
rsvg-convert,imagemagickinkscape,gimpWANT_DYNAMIC_BRANDING(defaultON)cmake/modules/branding/BRANDING_DEBUG(defaultOFF) for troubleshooting branding related issuescmakebashand other command-line tools aren't available (Windows compatibility, see issues below)❓ Optional
svgresources directly in LMMS (would require significant effort, documentation)cmaketo increase cross-platform compatibility (big task)❌ Issues
msvcbuild environment not handled at all. Windows does not have the tools required to render.svgfiles without some significant setup..icofiles can be produced withgimpfrom a set of.pngimages, though.msvcbuilds will default to the existing default green raster resources. (Fixed with `choco install imagemagick rsvg-convert)Previews (as of 2019-09-15)

This PR was rewritten in 2025. The original code is left available here for historical purposes: https://github.com/tresf/lmms/tree/dynamic-icon-old