-
Notifications
You must be signed in to change notification settings - Fork 133
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
Remove Fluent-Dark and Fluent-Light themes, add Fluent theme #784
Conversation
This is extremely tough on my browser to review but I'm almost through. Is there an easier way to present the options to users? I understand the flexibility that the scripts offer but for the average user, they expect a theme to be usable after downloading it via the built-in module. Adding an extra step to that process will leave more people thinking that the theme doesn't work rather than looking for a README. It's a departure from the standard convention. I see how having the option scripts mean there won't need to be a virtual infinite number of themes in the repository/site but the tradeoff seems steep right now. |
Yeah, it froze chrome for me as well. Maybe I should have done separate PRs?
The theme is usable straight away. It is the standard version of the theme by default. The options.py program modifies theme "in place". Actually, I guess I should mention the options.py in the description in info.json, I forgot about that. I'll do that in another PR. But in any case, the theme works as is without using the options program. |
I can't think of an easier way to present the options to the user. If you have any ideas, I'd love to hear them. The only way I can think of involves changes to the themes module in cinnamon settings. In fact, that's kinda the plan. The themes module could search in the current theme for the file: |
Something like this is what I'm thinking too. I think a JSON settings file might be easier here, just like applets, desklets, and extensions but we'll also need some common interface too, just like One thing to think about is how to handle the changes in place. In X, a Cinnamon restart will work but should that be left to the user to execute? Again, there's precedent here of things being applied immediately which isn't immediately possible if the theme files are modified. Then there's the question of how this would work on the current Wayland implementation that doesn't support restarting Cinnamon (yet?). It feels like we're in agreement about wanting some form of this feature. 😅 I don't know what should be done about this PR (I want to see feedback from the team and others first) but I think that implementing something proper in the Themes module is the best user experience in the end and hopefully it can be done in a simple way for developers to implement in themes too. (I'm thinking of the Actions module that was just rolled out recently.) If we can agree on how it should look, we can try to implement it sooner than later. I'm not speaking for the team here, but if we can at least get the changes on master in a reasonable enough time-frame, hopefully you can work your magic on a few themes to start with and we can have something for the next release. Maybe I'm being too ambitious but I think it's a good enough idea to invest some time into. |
Yes, there is one major hurdle to overcome, how to reload the window manager theme (window decorations) after a theme has been modified. Reloading the gtk and cinnamon themes is easy enough though. The solution I came up with in this PR is to rename the theme after each modification so as to force the WM to reload it. But I don't think this is a practical solution if it's going to be integrated into cinnamon settings. I also don't think that automatically restarting Cinnamon after each options change is practical either. The only other alternative is to notify the user that they'll need to restart cinnamon to see all changes take effect - also not ideal. As for a standard JSON file, I've already included this in this PR: The choice in cinnamon is either to create its own GUI to this json file or to import as a module and run I also separated out the code that reloads the theme in the OS into /options.py (which in turn imports btw, in |
Right, I was referencing some of what is already here. What I mean is a standard/schema that would be consistent. For settings, we would probably want to use the existing settings-schema.json structure, etc. etc. I think we should also implement something like a tagging feature so that developers could identify which aspects a theme provides among the Applications and Desktop categories.
I think it depends on how we implement it. Ideally, it would be something close to plug-and-play but the structure might also only matter for inclusion into this repository. Removing the barrier to this functionality and implementing it natively within Cinnamon would mean those themes could be added to the repository via a series of pull requests, just like what you're doing here. |
Another idea I had was that if we can find a way to reload the WM window decorations theme then this could also be implemented for the Mint-Y and Mint-X themes so that that instead of having all the color variations listed in the themes settings, we could have just one Mint-Y theme and an options button available when it's selected. |
I don't think that this is something we should make cinnamon specific because I don't think that theme designers would see it as something worthwhile in this case. It's not just a matter of uploading it to cinnamon spices, it's a matter creating a self modifying theme and all the work that that involves. Unless this is going to be adopted by gtk theme designers generally then I don't think it's worth bothering with just for a few (probably unpopular) cinnamon specific themes uploaded to the repository As for people modifying existing themes to make them self modifying only for cinnamon, sure that's possible but it's a lot of work that would only benefit cinnamon and I certainly won't be able to find time to start modifying and uploading lots of themes. I think we have to rely on theme designers implementing this and that means making it DE agnostic.
Yes, this is something that can be added to
I think to be worthwhile, we can't rely only on themes being uploaded to the repository. This would have to be something where people could also download such "self- modifying" themes from the internet and put them in |
Also, I don't see any reason why this PR can't be merged as is. It's just a theme with an optional config script added to it. There are already such themes with config scripts in the repository such as Adapta-Nokto and the Cinnamox themes. |
I wasn't aware. I'll go ahead and merge this then. We can revisit this another time. |
Remove Fluent-Dark and Fluent-Light themes and replace with Fluent theme which is configurable.