-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Dynamic branding color for different build types #5166
base: master
Are you sure you want to change the base?
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. |
@tresf What are the remaining tasks for this PR? Are there anything that I may help? |
The TODO is pretty up-to-date. I was hoping to use Gimp as a rendering engine on machines without the standard build tools (e.g. MSVC). This is a pretty esoteric task though... https://superuser.com/a/1545028/443147 (Gimp was chosen because it's a very common Desktop app for Windows developers, but one which can technically pull this off through a batch process) The other tasks are simply testing and fixing any logical fall throughs (mostly the handling of changing build types between compiles, something that's probably a buggy process anyway). Edit: Probably worth noting, Microsoft has since dropped the Windows 8-style "tile" icons, so these can probably be pulled from the PR (e.g. |
Coming back to this after a few years with the hope of actually finishing what I started. I don't know much about cmake, and I think once that got introduced (which was correct) I let responsibility fall on Tres. That wasn't very considerate of me since he has much more important things to worry about than gui colors lmao. I'd like to give this another shot, this time with the intention of actually learning cmake myself. It looks like in the time since this was last touched, the way Apple builds are handled have been fundamentally changed, Windows 8 tiles have already been dropped, and some headway has been made on using SVG resources directly in LMMS. I'll post another update once I've read some docs and have any idea what I'm looking at. |
We have this now since #7667. I'm not sure how much this will help this effort.
Yes! Our packaging is completely different now and we actually are using Windows for builds now (they'll likely become our default windows installers in the not-so-distant future), so the concerns about tooling on Windows are more valid than ever. So I think the next step is to cherry-pick the parts of this PR that work, but try to make it more organized so that files like |
Ok, I've made some progress with the refactor... So far I have three utility classes:
What's needed:
I've coded very basic support for inkscape and imagemagick. WIP here: master...tresf:lmms:dynamic-icon I'll continue working from this WIP branch and then once viable @rubiefawn, I'll ask to merge back into this PR. This refactor should help make the rest of the cmake logic much easier to navigate. The code is pretty simple: include(SvgRecolor)
set(svg_green "#27ab5f;#249a56;#34d07b;opacity=\".1\" fill=\"#fff\"")
set(svg_purple "#5547bd;#493ba1;#7871c5;opacity=\".05\" fill=\"#fff\"")
svg_recolor(svg_green svg_purple "${CMAKE_SOURCE_DIR}/cmake/linux/icons/scalable/apps/lmms.svg" svg_recolored)
include(SvgConvert)
svg_convert("16@2;32;48;64;128" "${svg_recolored}" "icons/%size%x%size%@%mult%/%name%.png")
include(IcnsConvert)
icns_convert("${svg_recolored}" "${CMAKE_CURRENT_BINARY_DIR}/lmms.icns") Sample output: Click to expand
|
WIP updated: master...tresf:lmms:dynamic-icon Added:
Todo:
|
Purple builds for macOS and Linux should be building. Still have to do a bit more refactoring for Windows due to WINRC. |
Windows is building now for msvc and mingw. master...tresf:lmms:dynamic-icon In 2019 this PR was in a struggle when to perform branding (it was at configure time 🤢)
So, with the new branch, I found a strategy that can do both... which is to leverage the same code (
How it works:
The one item left for parity with this PR is updating the about dialog. After that point, if it's OK with you @rubiefawn I'd like to merge the new branch back into this PR. |
Co-authored-by: rubiefawn <[email protected]>
Thanks for the OK. Merged my WIP branch back over this one. Ready for testing and review. (Old code is backed up incase we need to reference it, PR description updated with link) |
Slight enhancements added to this PR:
... however for PRs, I've been asked to use |
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
,imagemagick
inkscape
,gimp
WANT_DYNAMIC_BRANDING
(defaultON
)cmake/modules/branding/
BRANDING_DEBUG
(defaultOFF
) for troubleshooting branding related issuescmake
bash
and other command-line tools aren't available (Windows compatibility, see issues below)❓ Optional
svg
resources directly in LMMS (would require significant effort, documentation)cmake
to increase cross-platform compatibility (big task)❌ Issues
msvc
build environment not handled at all. Windows does not have the tools required to render.svg
files without some significant setup..ico
files can be produced withgimp
from a set of.png
images, though.msvc
builds 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