-
Notifications
You must be signed in to change notification settings - Fork 45
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
Theme meta issue #1614
Comments
Linked to: |
Excellent text!!! I liked it a lot. As usual. |
M'ok... guess a like would have been fine then, but thanks.... Have updated the issue with a much more readable TL/DR. :-) |
Here's a short story in pictures, to try to explain why I think per-theme per-OS and per-Tool icons would be good (all captured from a legacy retina MBP, where I'm using OC in order to install and run Big Sur):
Note use of
All looks nice, picking up the Volume Icons (after a little documented playing around with their locations). Because I have named my shell entry 'Open Shell' it is not picking up the shell icon. Because there is no shipped
Hmm, looks nice! But note that I manually copied the theme icon
Okay, pretty close - although, dammit, the shell icon has gone! (Only way to get it back is to name the entry to "UEFI Shell".) I'd also like to use one of the Linux custom icons that ship with the theme for my Ubuntu partition... that should be easy...?
Looks great again! But no, it wasn't easy... I had to re-enable Volume Icons, then I had to delete (or rename)
Note that the specifically themed OS and shell icons are being used on all themes - there is no way round that. Obviously the fact that I had to delete most volume icons to get a custom OS icon into my theme is having an effect too. Thinking about some of the slight difficulties in the above (something like!) my suggested custom icon changes (OP) would allow:
In the scenario above, after getting to step 4 I would have just had to add one entry in |
I'm sorry, but even reading the article overwhelmed me. Everything seems very complicated. I think the given picture examples do not meet OC's understanding of simplicity and clean appearance. I think the current state of the icons is quite sufficient. My advice is; it will be creating a Theme folder and placing three different folders in it. Folder names should be as follows; Old, Modern, Custom If the default is to be Modern, it would be better to remove Modern and Auto from the PickerVariant and instead have the selections like this; PickerVariant = Default, Old, and Custom If someone is going to use their own icons, it will be sufficient to drop all their icons into the Custom Folder and change them to PickerVariant = Custom. |
@telepati Thanks for your input. It might have been a mistake of mine to give extra details of the approved change and try to have my discussion of less clear changes that I'd like to make, all in the same issue. But I think the already agreed theme folder layout change isn't as complicated, nor as different from how themes currently work, as you think it is! |
@telepati First, OpenCore doesn’t have simplicity as a must-have, al least not the more important. For me, to get hackintosh working as near as a real mac is the first target. |
Just to update anyone following: something like what I have suggested, for themeable custom OS and Tool icons, has now been approved 🎉 - but made a bit less anarchic, and with more guidance for artists about filenames to use than what I proposed - and ofc with other improvements too! Details will follow. The theme directory layout changes were designed and approved before this issue - not by me, and in consultation with theme designers - and also are (and always were) happening. 🙂 Btw, the directory layout changes will require changes to themes - specifically, at least adding one directory - but my other changes above will not require any new changes, they will allow (but not require) some more optional icons from theme designers, and some more ways to specify them, for users. In order to avoid requiring artists to change themes without much notice, the plan is all these changes will be put live early in 0.7.0, not squeezed into the 0.6.9 release. |
Wow Mike!. You've given this a proper once-over and having your interest in this right now is great as while other changes to OpenCanopy are being looked at this may be the only window of opportunity to get these things at least considered. OpenCanopy has come a long way since it's inception and is currently a slick UI thanks to the hard work of the developer(s). Maybe OpenCanopy is already close to becoming the intended vision that was set out to begin with (approved up-coming changes aside) but I also believe that your observations and suggestions could transform it from a slick UI with a working default installation to an incredible UI offering full customisation options for those whose wish to do that. I mean, with all the hard work gone in to get it to where it is, why not go the extra mile and make it better. I understand changes take time and energy from the developers which can be hard to come by when we all have real lives and jobs etc. so I guess there is no immediate rush to implement everything at once (if decided upon). But having these things on the roadmap and slowly rolled out will result in a UI that's complete/done/finished without a need to re-visit it in six months time when more users discover OpenCore/OpenCanopy and attempt to customise it to suit their own system only to discover the same findings that you have highlighted above and post similar questions. EDIT: |
There are some already approved and designed (with feedback from theme designers) changes coming up to how themes work. Details below, along with some additional suggestions for changes which
may or may not be approved - input and discussion welcomehave now been approved, in somewhat changed and cleaner form.TL/DR:
Approved:
Undecided
Exhaustive detail:
1) Change theme directory structure (was approved and designed prior to this issue)
Currently themes are identified by file prefixes in a flat directory structure, e.g.
Selector.icns
,OldSelector.icns
,ModernSelector.icns
.This is to be replaced by a
[vendor]/[theme]
directory structure, with the existing Acidanthera themes directories named for corresponding macOS codenames:PickerVariant
=Auto
,Default
,Old
andModern
will be still be supported as special cases, so users will just have to update OcBinaryData as normal when this change is made.In future, all other
PickerVariant
values should be[vendor]/[theme]
, but can also be just[theme]
in case there is no vendor subfolder. Unlike now, there must be at least one subfolder.2) Hardcoded tool names
The hardcoded tool names "Reset NVRAM" (which is usually added as a boot entry via
Misc/Security/AllowNvramReset
, but can also be added manually in theMisc/Tools
section) and "UEFI Shell" (which must be added manually inMisc/Tools
, as per the sample plist files) are mapped to theme iconsResetNVRAM.icns
andShell.icns
respectively. (Actually these special entry names also trigger the appropriate audio prompts in boot picker audio assist.)OpenShell.efi
andCleanNvram.efi
?3) Custom tool icons
Tool custom icons can be put next to the tool. E.g. for
Tools/OpenShell.efi
we can put in placeTools/OpenShell.efi.icns
.PickerAttributes
OC_ATTR_USE_VOLUME_ICON
is set. To me this was also non-obvious, although the idea is that these files are logically equivalent to.VolumeIcon.icns
files.ResetSystem.efi
previously could (in fact, still can) be used to provide Shutdown and Restart boot entries, but it is not possible to set a different icon for each of these. Although this case is now more or less replaced by the new Shutdown and Restart buttons in both pickers, it seems reasonable in principle to want to apply different icons to the same tool, when called with different arguments in different boot entries.4) Custom OS icons
Apple macOS and Windows support per-theme icons
Apple.icns
,ExtApple.icns
,Windows.icns
,ExtWindows.icns
..VolumeIcons.icns
in the appropriate location near to the relevant OS boot file5) Resolution-specific backgrounds
Background.icns
is searched for and used as a background.I'm mentioning this because one of the current requirements for themes (see below) is that the average normal user should not need to edit their theme directory, and can (e.g.) easily just pull updates from the theme's repo. However, this is one example where that already does not work.
6) Supported theme icons without implementations in the default themes
Some supported theme icons (e.g.
ResetNVRAM.icns
,Apple.icns
,ExtApple.icns
,ExtWindows.icns
) are supported as part of custom themes, but have no implementation in the shipped themes.THEME REQUIREMENTS
Ext...
icon (e.g.ExtHardDrive.icns
instead ofHardDrive.icns
) when the OS is on an external drive is a security risk. (As noted inConfiguration.pdf
, using.VolumeIcon.icns
violates this, but this is an exception and not desirable behaviour.)/Tools
, never mind from elsewhereSUGGESTION (updated and cleaner version of this is now approved)
Despite the above Theme Requirements, I feel it would be desirable to allow per-theme custom icons for tools and OSes beyond the ones in the fixed set of support.
In order to allow for per-theme custom icons for Tools, I would propose adding a new string
CustomIcon
key to eachMisc/Tools
andMisc/Entries
entry. The value of this could be, e.g.,Shell
to select the standardShell.icns
from the theme directory, orSysRestart
to select the customSysRestart.icns
. (Note: searching for icons this way could work whether or notOC_ATTR_USE_VOLUME_ICON
is set, which I believe is desirable.)In order to allow for custom icons for other OSes, I would propose adding a new
Misc/CustomIcons
section, e.g.:This assigns the per-theme custom icon
Ubuntu.icns
to the specified boot entry (if this icon exists in the current theme, or default OS icon otherwise). This only makes sense if at least several theme providers provide e.g. Ubuntu icons. I believe they already do.In terms of priority, I would suggest that these custom icons are searched for first (when specified), and if not found (or not specified) all existing locations are searched next as now.
Probably both the above suggestions only make sense if we accept that users do do some manual editing and placing of their themes files, but I believe they already do, both for different sized backgrounds and to allow for (e.g.) different Unix flavour OS icons.
NB I am not suggesting that any such additional icon names become required or recommended defaults. One theme provider might provide custom
Ubuntu.icns
,SysShutDown.icns
andSysRestart.icns
, another one might provide equivalent custom icons but call them something else. The aim is only to allow theme providers to provide additional icons and to allow users a way to select them.(EDIT: As part of the approved version of these changes, there will be a centrally maintained list of approved additional icon names, to make it easier for theme designers; all custom icons will always have a defined fallback to a (required) standard OC theme icon, so using custom icons won't break anything if you switch themes to a theme without a custom icon which you were using - e.g.
Ubuntu
would fallback to the default OS icon.)The text was updated successfully, but these errors were encountered: