-
Notifications
You must be signed in to change notification settings - Fork 53
Support for automatic theme generation from wallpaper #27
Comments
I have done Mockup for this in #25, I really want it too. |
I published an npm package for the script here so the script could be integrated by having However, I am not sure if a flatpak can install an npm package within itself. |
I am not a developer (for now), but i think we can add this script directly in the project, or like with blueprint-compiler, pull it from git repo |
I'll probably do it one day. I think it'll be better to rewrite the program so it was more oomox-like for easier integration of new features. |
I looked into some solutions, but there really isn't any good way to get around the dependency of requiring all of NodeJS installed to run the script because the material-color-utilities JavaScript package is only usable with ES6 and pkg only compiles JavaScript packages that use ES5 and below. Some other options like ncc and caxa package it into a single file but still require Node to be installed locally on the system to run it. This is a bit of a problem for it to be usable in flatpak because there isn't a flatpak distribution of NodeJS available, so the user would have to manually install that through their package manager. I'm currently working on porting material-color-utilities to Python in this repo so this script can be run without Node. |
Good luck! |
Progress went very well. I have ported the whole material-color-utilities library to Python (available here). It should be very easy now to integrate this into the project. The only dependency it uses is |
This is just amazing! |
Hi @avanishsubbiah. Do you want to add this repo to the org, it will be more easy to integrate your amazing tool with Adwaita Manager. |
Hello, I'm currently working on updating the code to follow Google's Python guidelines so it can be added into the material-color-utilities repo (pr here). The current code works just fine, it just needs some variables renamed so feel free to fork and use it. |
Thanks 👍🙏. I'll include ur generator in the UI redisgn |
OK, looks nice! But can you add radio buttons (circles that becomes blue when selected)? |
Or segmented slider |
Where should i add radio buttons ?? |
Nevermind, just checked, you maked it correctly |
I think tones works pretty good, but first one is too dark |
Yes, i am removing tone 1. I need to try all others tone to determine which one is better and set this one as default |
There is some extra processing used beyond the palette to make a cohesive scheme with Material You. I recommend picking tokens from here: https://m3.material.io/styles/color/the-color-system/tokens, and there might be a way to have it brighten the tone of the generated tokens for tone selection. As an example here are some token to adwaita mappings. |
@daudix-UFO I also need to add another combo box to select if the theme will be light or dark |
I think we need to make automatic, see #12 |
Yes, but we can also let user choice Adwaita Manager can automaticly select dark or light following user preferences and the user can change it if he want |
Also correct! |
It's working |
Also added automatic choice |
Also, maybe wiered question, but any idea why there is a huge difference in performance between material you GNOME extension and in-app generator? |
Material you is written in JavaScript with the original library by google. Adwaita Manager use a port in python. Just created 14 days ago |
It's a goal for the next release |
By default the extension resizes the wallpaper to 64x64 before processing it because it barely makes any visible difference to the colors picked. Also the Python port I made is slower than the JavaScript version of the material-color-utilities library. Either of these or both could contribute to performance differences. |
Thank you for detailed explanation! |
#108 will improve performance |
I created a script here that creates a preset.json file with color definitions from any provided image (Created using material-color-utilities).
I was wondering if it would be possible to integrate this functionality into AdwCustomizer as a section in the themes drop down to allow the user to select an automatically generated light or dark theme using their wallpaper. I don't know if it will be entirely possible because I had to write the script in JavaScript because material-color-utils doesn't currently have a Python library yet.
The text was updated successfully, but these errors were encountered: