Jump to content
1,618 posts in this topic

Recommended Posts

2 hours ago, luky35 said:

Copied icons from CircleBlobIcon to the EFI OC Resources - Image folder, but did not show the icon menu at startup.
Why?

Do you have OpenCanopy and selected external picker in your config.plist?  Also make sure that the new icons you added are named exactly as the ones they are replacing.

  • Like 1
1 hour ago, billgates said:

Do you have OpenCanopy and selected external picker in your config.plist?  Also make sure that the new icons you added are named exactly as the ones they are replacing.

I don't think the icons are compatible, so the start menu doesn't work.

10 hours ago, luky35 said:

I don't think the icons are compatible, so the start menu doesn't work.

I use these icons everyday. See screen shot a few posts back. I'd be sure to check for what @billgates said. They are all named exactly what they need to be named.

 

Not sure what you mean by "start menu" doesn’t work.

Edited by pkdesign
13 hours ago, luky35 said:

I don't think the icons are compatible, so the start menu doesn't work.

You didn't answer on whether you have installed and setup OpenCanopy or not.  There are a few steps that need to be taken beyond the initial OpenCore setup in order to get the GUI and custom icons to work.  Anyway if you haven't already setup OpenCanopy here is the link to the instructions:

https://dortania.github.io/OpenCore-Post-Install/cosmetic/gui.html

 

ps. I couldn't get this to work on OC 5.9 but it worked right away on 6.0 so make sure you are up to date.

Edited by billgates
  • Like 2
4 hours ago, billgates said:

You didn't answer on whether you have installed and setup OpenCanopy or not.  There are a few steps that need to be taken beyond the initial OpenCore setup in order to get the GUI and custom icons to work.  Anyway if you haven't already setup OpenCanopy here is the link to the instructions:

https://dortania.github.io/OpenCore-Post-Install/cosmetic/gui.html

 

ps. I couldn't get this to work on OC 5.9 but it worked right away on 6.0 so make sure you are up to date.

For me, it works with all the other icons except the NO ones I wrote.  (CircleBlobIcon not OK)

Edited by luky35
On 8/16/2020 at 10:08 PM, blackosx said:

After Vit's post this week regarding icon packs for a customisation gallery I've gone ahead and put together some icon packs based on the collection of icons I've been creating and added them to a new github repo https://github.com/blackosx/OpenCanopyIconPacks

 

  Reveal hidden contents

repo-Image-Packs.png

 

These icon packs contain icons for:

- Cursor

- Selected (Some pack also include OldSelected)

- Selector (Some pack also include OldSelector)

- Apple Recovery & External Apple Recovery

- Apple Time Machine & External Apple Time Machine

- HardDrive & External HardDrive

- Windows

- Shell

- Tool

 

While these packs contain a base selection of icons, there are many more icons available at the OpenCanopyIcons repo. For example, HardDrives for different versions of macOS and Linux, different selections and selectors, and external drives.

 

Current icon packs:

 

From Set1:

Front lit matte icons with soft shadows. 

 

BOCIP_1_Dark

Preview (Grey) | Preview (Black) | Download

 

BOCIP_1_Grey

Preview (Grey) | Preview (Black) | Download

 

BOCIP_1_Light

Preview (Grey) | Preview (Black) | Download

 

 

From Set2:
More subtly lit icons than Set1, with increased level of reflectiveness.

 

BOCIP_2_Dark

Preview (Grey) | Preview (Black) | Download


BOCIP_2_Light

Preview (Grey) | Preview (Black) | Download

 

 

From Set3:
Studio lit icons, brighter than Set2, with higher level of reflectiveness and narrower devices to better match the shapes of the latest Apple device icons.


BOCIP_3_AppleEsque

Preview (Grey) | Preview (Black) | Download


BOCIP_3_Aqua

Preview (Grey) | Preview (Black) | Preview (Custom) | Download


BOCIP_3_Blue

Preview (Grey) | Preview (Black) | Preview (Custom) | Download


BOCIP_3_Cardinal

Preview (Grey) | Preview (Black) | Preview (Custom) | Download


BOCIP_3_Dark

Preview (Grey) | Preview (Black) | Preview (Custom) | Download


BOCIP_3_Green

Preview (Grey) | Preview (Black) | Preview (Custom) | Download


BOCIP_3_Light

Preview (Grey) | Preview (Black) | Preview (Custom) | Download


BOCIP_3_LightBlue

Preview (Grey) | Preview (Black) | Preview (Custom) | Download


BOCIP_3_Lime

Preview (Grey) | Preview (Black) | Preview (Custom) | Download


BOCIP_3_Orange

Preview (Grey) | Preview (Black) | Preview (Custom) | Download


BOCIP_3_Pink

Preview (Grey) | Preview (Black) | Preview (Custom) | Download


BOCIP_3_Purple

Preview (Grey) | Preview (Black) | Preview (Custom) | Download


BOCIP_3_Red

Preview (Grey) | Preview (Black) | Preview (Custom) | Download


BOCIP_3_Violet

Preview (Grey) | Preview (Black) | Preview (Custom) | Download


BOCIP_3_Yellow

Preview (Grey) | Preview (Black) | Preview (Custom) | Download

 

EDIT: Added Special Editions

 

BOCIP_3_SE_Silver&Gold

Preview (Grey) | Preview (Black) | Preview (Custom) | Download

 

BOCIP_3_SE_SilverBlue

Preview (Grey) | Preview (Black) | Preview (Custom) | Download

 

 

Installation:

Assuming you have already downloaded and installed the OCBinaryData/Resources in to your OC directory then the contents of each pack is intended to be placed in


EFI/OC/Resources/Image/

The icons are disproportionate, they are stretched horizontally.

 

 

On 8/31/2020 at 11:20 PM, pkdesign said:

Well, after many weeks of trying to perfect this process, I have created a second and third set of icons for OpenCanopy I call CircleBlobIcon and CircleBlobText. I take a very different approach to icons.

 

You can find them here: https://github.com/pkdesign/OpenCanopyIcons

 

Many, many thanks to @chris1111 for his incredible batch script!

 

 

  Hide contents

CircleBlobIcon.thumb.png.f261d773a5c7afff7fb85019ddae3551.png

 

Nice job @pkdesign :)

 

Edited by blackosx
  • Thanks 1

@AliPas52 - No need to quote the whole post.

Quote

The icons are disproportionate, they are stretched horizontally.

If you see squashed icons when using OpenCanopy then check your video setup with OpenCore. Maybe you use old hardware without GOP? See here for a starting point.

 

@chris1111

I've had a chance to look at your icnsbuilder script and I think it's a good start. Well done.:)

 

I can understand the attraction of this because of the wish for some to avoid using the terminal and also to avoid the extra work and time involved to create both sizes of image that OpenCore ICNS files require.

 

The SIPS command does a really good job here for scaling the icons, with good AA results, though I wish to make users aware that scaling an image will never produce as sharp an image when compared to an image created specifically as the target size.

 

If I could suggest an improvement then currently your script requires the user to rename their PNG files to a known name before running the script, for example HardDrive.png. However I think it would be more helpful to allow the script to process 'ANY' .png file you throw at it and then have the user just rename the final .icns file. This will make the script more flexible and allow for processing 'extra' images.

 

I also think you could add some image compressor to your builder so final icons are optimised for size, for example, pngquant or imageoptim (i think imageoptim has a command line version). I've seen imageoptim being the recommended solution due to lossless compression vs lossy compression but TBH, for the majority of icons you will not notice a difference in quality using pngquant and have small file sizes.

 

Just my thoughts :)

 

 

18 hours ago, pkdesign said:

Stupid question I know, how do I get Shell and Tools to show? Space bar doesn't do it.

Once they've been added to the OC directory structure and configured in config.plist you will then just need to add the icon for using the name of the tool including the extension and add .icns at the end.


For example, for ResetSystem.efi the icon should be named ResetSystem.efi.icns
 

 

Edited by blackosx
edits, here and there.
  • Like 1
6 minutes ago, blackosx said:

Once they've been added to the OC directory structure and configured in config.plist you will then just need to add the icon for using the name of the tool including the extension and add .icns at the end.


For example, for ResetSystem.efi the icon should be named ResetSystem.efi.icns
 

 

I don't understand well: I thought so far that OC use Tools.icns and print Label configured in the config.plist. Thanks for your explanation  :)

It depends of the PickerAtrtibutes you use, but I'm away from my hack this week so am recalling from memory ;)

 

From the configuration.pdf

• 0x0001 — OC_ATTR_USE_VOLUME_ICON, provides custom icons for boot entries:

For Tools OpenCore will try to load a custom icon and fallback to the default icon:
– ResetNVRAM — Resources\Image\ResetNVRAM.icns — ResetNVRAM.icns from icons directory.
– Tools\<TOOL_RELATIVE_PATH>.icns — icon near the tool file with appended .icns extension.

 

• 0x0002 — OC_ATTR_USE_DISK_LABEL_FILE, provides custom rendered titles for boot entries:
– .disk_label (.disk_label_2x) file near bootloader for all filesystems.
– <TOOL_NAME>.lbl (<TOOL_NAME>.l2x) file near tool for Tools.
 

 

Edited by blackosx
  • Thanks 1
4 hours ago, blackosx said:

 

 

@chris1111

I've had a chance to look at your icnsbuilder script and I think it's a good start. Well done.:)

 

I can understand the attraction of this because of the wish for some to avoid using the terminal and also to avoid the extra work and time involved to create both sizes of image that OpenCore ICNS files require.

 

The SIPS command does a really good job here for scaling the icons, with good AA results, though I wish to make users aware that scaling an image will never produce as sharp an image when compared to an image created specifically as the target size.

 

If I could suggest an improvement then currently your script requires the user to rename their PNG files to a known name before running the script, for example HardDrive.png. However I think it would be more helpful to allow the script to process 'ANY' .png file you throw at it and then have the user just rename the final .icns file. This will make the script more flexible and allow for processing 'extra' images.

 

I also think you could add some image compressor to your builder so final icons are optimised for size, for example, pngquant or imageoptim (i think imageoptim has a command line version). I've seen imageoptim being the recommended solution due to lossless compression vs lossy compression but TBH, for the majority of icons you will not notice a difference in quality using pngquant and have small file sizes.

 

Just my thoughts :)

 

 

Once they've been added to the OC directory structure and configured in config.plist you will then just need to add the icon for using the name of the tool including the extension and add .icns at the end.


For example, for ResetSystem.efi the icon should be named ResetSystem.efi.icns
 

 

 

Thanks @blackosx

I believe that renaming the .png before or renaming the .icns afterwards doesn't make a big difference in wasting time? Regarding the name of the images, you must have a name for the SIPS command because some images have a different size and you must know what size they should be.

I am working on an app that does the job even better and I soon put a V2 of the program

  • Thanks 1

I believe accepting *.png will allow your script to process many files and not be restricted to the list you have defined. You can accept a directory of .PNG files then use SIPS to get the width and height and scale accordingly.

 

For example, I have the following directory of PNG files, some at different sizes like the cursor, selector and selected

Apple.png
AppleRecv_HDD_AM.png
AppleTM.png
Cursor.png
ExtApple.png
ExtAppleRecv.png
ExtAppleTM.png
ExtHardDrive.png
HardDrive_HDD.png
HardDrive_HDD_Linux.png
HardDrive_HDD_Linux_Arch.png
HardDrive_HDD_Linux_Debian.png
HardDrive_HDD_Linux_Deepin.png
HardDrive_HDD_Linux_ElementaryOS.png
HardDrive_HDD_Linux_Endless.png
HardDrive_HDD_Linux_Fedora.png
HardDrive_HDD_Linux_KDEneon.png
HardDrive_HDD_Linux_Kali.png
HardDrive_HDD_Linux_MX.png
HardDrive_HDD_Linux_Manjaro.png
HardDrive_HDD_Linux_Mint.png
HardDrive_HDD_Linux_PopOS.png
HardDrive_HDD_Linux_ReactOS.png
HardDrive_HDD_Linux_Solus.png
HardDrive_HDD_Linux_Ubuntu.png
HardDrive_HDD_Linux_Zorin.png
HardDrive_HDD_Linux_openSUSE.png
HardDrive_HDD_Microsoft.png
HardDrive_HDD_Windows10.png
Selected_Black_100_Fill_Keyline_SilverGold.png
Selected_Black_20_Fill_Keyline_SilverGold.png
Selected_Black_40_Fill_Keyline_SilverGold.png
Selected_Black_50_Fill_Keyline_SilverGold.png
Selected_Black_60_Fill_Keyline_SilverGold.png
Selected_Black_80_Fill_Keyline_SilverGold.png
Selected_White_100_Fill_Keyline_SilverGold.png
Selected_White_20_Fill_Keyline_SilverGold.png
Selected_White_40_Fill_Keyline_SilverGold.png
Selected_White_50_Fill_Keyline_SilverGold.png
Selected_White_60_Fill_Keyline_SilverGold.png
Selected_White_80_Fill_Keyline_SilverGold.png
Selector.png
Shell.png
Tool.png

 

They could all be resized by using something like this:

for pngFile in "$ICONS_DIR"/*.png
do

  width=$(sips -g pixelWidth "$pngFile")
  height=$(sips -g pixelHeight "$pngFile")

  width="${width##*: }"
  height="${height##*: }"

  halfWidth=$(( width/2 ))
  halfHeight=$(( height/2 ))

  echo "Convert $width x $height to $halfWidth x $halfHeight"
  sips -z $halfWidth $halfHeight "$pngFile" -o "$SAVE_DIR"

done

 

  • Like 1
1 hour ago, blackosx said:

I believe accepting *.png will allow your script to process many files and not be restricted to the list you have defined. You can accept a directory of .PNG files then use SIPS to get the width and height and scale accordingly.

 

For example, I have the following directory of PNG files, some at different sizes like the cursor, selector and selected


Apple.png
AppleRecv_HDD_AM.png
AppleTM.png
Cursor.png
ExtApple.png
ExtAppleRecv.png
ExtAppleTM.png
ExtHardDrive.png
HardDrive_HDD.png
HardDrive_HDD_Linux.png
HardDrive_HDD_Linux_Arch.png
HardDrive_HDD_Linux_Debian.png
HardDrive_HDD_Linux_Deepin.png
HardDrive_HDD_Linux_ElementaryOS.png
HardDrive_HDD_Linux_Endless.png
HardDrive_HDD_Linux_Fedora.png
HardDrive_HDD_Linux_KDEneon.png
HardDrive_HDD_Linux_Kali.png
HardDrive_HDD_Linux_MX.png
HardDrive_HDD_Linux_Manjaro.png
HardDrive_HDD_Linux_Mint.png
HardDrive_HDD_Linux_PopOS.png
HardDrive_HDD_Linux_ReactOS.png
HardDrive_HDD_Linux_Solus.png
HardDrive_HDD_Linux_Ubuntu.png
HardDrive_HDD_Linux_Zorin.png
HardDrive_HDD_Linux_openSUSE.png
HardDrive_HDD_Microsoft.png
HardDrive_HDD_Windows10.png
Selected_Black_100_Fill_Keyline_SilverGold.png
Selected_Black_20_Fill_Keyline_SilverGold.png
Selected_Black_40_Fill_Keyline_SilverGold.png
Selected_Black_50_Fill_Keyline_SilverGold.png
Selected_Black_60_Fill_Keyline_SilverGold.png
Selected_Black_80_Fill_Keyline_SilverGold.png
Selected_White_100_Fill_Keyline_SilverGold.png
Selected_White_20_Fill_Keyline_SilverGold.png
Selected_White_40_Fill_Keyline_SilverGold.png
Selected_White_50_Fill_Keyline_SilverGold.png
Selected_White_60_Fill_Keyline_SilverGold.png
Selected_White_80_Fill_Keyline_SilverGold.png
Selector.png
Shell.png
Tool.png

 

They could all be resized by using something like this:


for pngFile in "$ICONS_DIR"/*.png
do

  width=$(sips -g pixelWidth "$pngFile")
  height=$(sips -g pixelHeight "$pngFile")

  width="${width##*: }"
  height="${height##*: }"

  halfWidth=$(( width/2 ))
  halfHeight=$(( height/2 ))

  echo "Convert $width x $height to $halfWidth x $halfHeight"
  sips -z $halfWidth $halfHeight "$pngFile" -o "$SAVE_DIR"

done

 

The list of .png file can by modify by User , the script is editable even for my App

311726284_Capturedcranle2020-09-0310_15_09.png.a62ed3debeea659d9aa6fac8a70d3a0a.png

 

I always opt for simple things like for scripts and for Apps, if you try to complicate things this is where you will miss.

How many times have I seen things complicated in the hackintosh which had a lot of flaws.

EDIT *** Anyway you can do a few things to your liking, like PRO  I opted to simplify it. 

Just my thoughts

thank you anyway for your interest :)

Edited by chris1111
Just my thoughts
  • Like 1

Good morning all,

 

I am relatively new to the world of macOS. I have successfully installed Catalina on my AMD Ryzen PC. So I end up with a triple boot pc (MacOS, Windows and Linux Mint).

I use the Opencore booloader with OpenCanopy for a GUI boot ...

I would like to associate new icons with each of my OS ... but I do not understand how the link is made between the icon and the OS to boot .... Should I use a precise labeling for that? and if so which one?

10 hours ago, blackosx said:

Once they've been added to the OC directory structure and configured in config.plist you will then just need to add the icon for using the name of the tool including the extension and add .icns at the end.


For example, for ResetSystem.efi the icon should be named ResetSystem.efi.icns

 

Hmm, so "Tools.icns" needs to be duplicated and renamed to "ResetSystem.efi.icns" (or should that be just "ResetSystem.icns") in order for it to show up? And if that is the case, each tool can have it's own icon?

 

This is in my config right now so I assume it is available:

		<key>Tools</key>
		<array>
			<dict>
				<key>Arguments</key>
				<string></string>
				<key>Comment</key>
				<string>Not signed for security reasons</string>
				<key>Enabled</key>
				<false/>
				<key>Name</key>
				<string>UEFI Shell</string>
				<key>Path</key>
				<string>OpenShell.efi</string>
			</dict>
			<dict>
				<key>Arguments</key>
				<string></string>
				<key>Comment</key>
				<string>Memory testing utility</string>
				<key>Enabled</key>
				<false/>
				<key>Name</key>
				<string>memcheck</string>
				<key>Path</key>
				<string>memcheck/memcheck.efi</string>
			</dict>
			<dict>
				<key>Arguments</key>
				<string>Shutdown</string>
				<key>Auxiliary</key>
				<true/>
				<key>Comment</key>
				<string>Perform shutdown</string>
				<key>Enabled</key>
				<false/>
				<key>Name</key>
				<string>Shutdown</string>
				<key>Path</key>
				<string>ResetSystem.efi</string>
			</dict>

And when/how does the "Shell.icns" show up? Or is it the same case as above? The "Shell.icns" needs to be renamed "OpenShell.icns"?

 

As far as @chris1111 app, it would be great for it to optimize images automatically, but I just run all my PNGs through ImageOptimize before I add it to his app/script.

 

I think having to name the PNG properly keeps thing organized for me. They will have to be properly named for OpenCanopy to work anyway, so you will always have to do some renaming, whether that is before of afterwards. But I do see your point if you are creating a lot of icons for all situations (i.e. Linux flavors, etc)

  • Like 1
  • Thanks 1
7 hours ago, jbellomo said:

Good morning all,

 

I am relatively new to the world of macOS. I have successfully installed Catalina on my AMD Ryzen PC. So I end up with a triple boot pc (MacOS, Windows and Linux Mint).

I use the Opencore booloader with OpenCanopy for a GUI boot ...

I would like to associate new icons with each of my OS ... but I do not understand how the link is made between the icon and the OS to boot .... Should I use a precise labeling for that? and if so which one?

Place the Apple.icns and Windows.icns icons that you want to use in EFI/OC/Resources/Image.  For Linux see my comment in the previous page.

  • Like 1
11 hours ago, pkdesign said:

 

Hmm, so "Tools.icns" needs to be duplicated and renamed to "ResetSystem.efi.icns" (or should that be just "ResetSystem.icns") in order for it to show up? And if that is the case, each tool can have it's own icon?

 

This is in my config right now so I assume it is available:


		<key>Tools</key>
		<array>
			<dict>
				<key>Arguments</key>
				<string></string>
				<key>Comment</key>
				<string>Not signed for security reasons</string>
				<key>Enabled</key>
				<false/>
				<key>Name</key>
				<string>UEFI Shell</string>
				<key>Path</key>
				<string>OpenShell.efi</string>
			</dict>
			<dict>
				<key>Arguments</key>
				<string></string>
				<key>Comment</key>
				<string>Memory testing utility</string>
				<key>Enabled</key>
				<false/>
				<key>Name</key>
				<string>memcheck</string>
				<key>Path</key>
				<string>memcheck/memcheck.efi</string>
			</dict>
			<dict>
				<key>Arguments</key>
				<string>Shutdown</string>
				<key>Auxiliary</key>
				<true/>
				<key>Comment</key>
				<string>Perform shutdown</string>
				<key>Enabled</key>
				<false/>
				<key>Name</key>
				<string>Shutdown</string>
				<key>Path</key>
				<string>ResetSystem.efi</string>
			</dict>

And when/how does the "Shell.icns" show up? Or is it the same case as above? The "Shell.icns" needs to be renamed "OpenShell.icns"?

Yes. Each tool can have its own icon.

 

In your above config you will have to set all three of those tools to enabled (as they are currently disabled), then add the following icons which correspond with those entries.

 

EFI/OC/Tools/OpenShell.efi.icns
EFI/OC/Tools/memcheck/memcheck.efi.icns
EFI/OC/Tools/ResetSystem.efi.icns

 

Your shutdown entry is set to be Auxillary so that will only show after you've pressed the space bar.

 

If you want to see ResetNVRAM.icns then you need the following icon and must have AllowNvramReset set to true in config.plist:

EFI/OC/Resources/Images/ResetNVRAM.icns

 

Of course, this is if you don't have the background colour set to v7+/AA== (apple grey) in config.plist, in which case you will need OldResetNVARAM.icns

  • Thanks 1
On 8/31/2020 at 11:20 PM, pkdesign said:

Well, after many weeks of trying to perfect this process, I have created a second and third set of icons for OpenCanopy I call CircleBlobIcon and CircleBlobText. I take a very different approach to icons.

 

You can find them here: https://github.com/pkdesign/OpenCanopyIcons

I created some previews of your icons (one on a grey BG and another on a black BG), though Outline_v1.0 failed as it has a missing selector.icns

Spoiler

CircleBlobIcon_Preview_AppleGrey_#BFBFBF.png

CircleBlobIcon_Preview_Black_#000000.png

CircleBlobText_Preview_AppleGrey_#BFBFBF.png

CircleBlobText_Preview_Black_#000000.png

Outline_v1.1_Preview_AppleGrey_#BFBFBF.png

Outline_v1.1_Preview_Black_#000000.png

 

 

Edited by blackosx
Put images in spoiler
12 hours ago, pkdesign said:

I think having to name the PNG properly keeps thing organized for me. They will have to be properly named for OpenCanopy to work anyway, so you will always have to do some renaming, whether that is before of afterwards. But I do see your point if you are creating a lot of icons for all situations (i.e. Linux flavors, etc)

Sure, the name is important for OpenCore to recognise the icon, but my point was that his script was just too limited to what you throw at it. Let's say you want to now create a resetSystem tool icon, or another new XYZ tool icon. How do you get those through the script without editing the script first? 
 

13 hours ago, blackosx said:

I created some previews of your themes (one on a grey BG and another on a black BG), though Outline_v1.0 failed as it has a missing selector.icns

Oh my gosh! Thank you for that! I could not figure out how to get them to show.

 

Yes Outline 1.0 is bad. I need to delete it from GitHub.

 

Looks like the Tool.icns is a bit big :D I will have to fix.

 

13 hours ago, blackosx said:

Sure, the name is important for OpenCore to recognise the icon, but my point was that his script was just too limited to what you throw at it. Let's say you want to now create a resetSystem tool icon, or another new XYZ tool icon. How do you get those through the script without editing the script first?

Agreed. I have had to edit it a few times to add icons. Still, I love having it. Let's me concentrate on creativity :yes:

 

Uploaded a new set of icons called Hex to GitHub.  I'm getting this down slowly but surely.

 

https://github.com/pkdesign/OpenCanopyIcons

 

Thanks to @blackosx and @chris1111 for their help!

Spoiler

04201648.png

Edited by pkdesign
  • Like 2
×
×
  • Create New...