Skip to main content

Generate pixel-perfect macOS folder icons in the native style.

Project description

folderify

mask.png + folder = folderified!

Generate pixel-perfect macOS folder icons in the native style.

  • Works for macOS 10.5 (Leopard) through 11.0 (Big Sur).
  • Automatically includes all icon sizes from 16x16 through 512x512@2x.
  • Light or dark mode (automatically selected by default).

Using folderify? Let me know or let me know and I'd love to feature some real-world uses!

Install using Homebrew

brew install folderify

Usage

Use a mask to assign an icon to a folder:

folderify mask.png /path/to/folder

Generate mask.icns and mask.iconset files:

folderify mask.png

Generate icon files for a specific version of macOS (the default is your current version):

folderify --macOS 11.0 mask.png

By default, folderify uses your systems's current light/dark mode. To generate a specific color scheme (only supported for macOS 11.0 right now):

folderify --macOS 11.0 --color-scheme dark mask.png

(Note that currently there is no simple way to set an icon that will automatically switch between light and dark with the entire OS. You have to pick one icon.)

Tips

For best results:

  • Use a .png mask.
  • Use a solid black design over a transparent background.
  • Make sure the corner pixels of the mask image are transparent. They are used for empty margins.
  • Pass the --no-trim flag and use a mask:
    • with a height of 384px,
    • with a width that is a multiple of 128px (up to 768px),
    • using a 16px grid.
    • Each 64x64 tile will exactly align with 1 pixel at the smallest icon size.

Other installation options

If you don't have Homebrew but you already have ImageMagick (the convert binary) on your system, you can use the following:

Install using pip

pip install folderify

Download the source code directly

Or download the code directly:

curl -L https://github.com/lgarron/folderify/archive/main.zip -o folderify-main.zip
unzip folderify-main.zip && cd folderify-main
python -m folderify examples/src/folder_outline.png . --reveal

The repository folder should now have a custom icon.

for file in examples/src/*.png; do python -m folderify $file; done
open examples/src/

You should see a bunch of new .iconset folders and .icns files that were automatically generated from the .png masks.

Dependencies

  • ImageMagick - for image processing (you should be able to run convert on the commandline).
  • Included with macOS:
    • Python (version 2 or 3).
    • iconutil
  • Bundled with folderify:

Full options

usage: folderify [-h] [--reveal] [--macOS VERSION] [--osx VERSION]
                 [--color-scheme COLOR_SCHEME] [--no-trim] [--verbose]
                 [mask] [target]
Generate a native-style macOS folder icon from a mask file.

positional arguments:
  mask                  Mask image file. For best results:
                        - Use a .png mask.
                        - Use a solid black design over a transparent background.
                        - Make sure the corner pixels of the mask image are transparent. They are used for empty margins.
                        - Make sure the non-transparent pixels span a height of 384px, using a 16px grid.
                          If the height is 384px and the width is a multiple of 128px, each 64x64 tile will exactly align with 1 pixel at the smallest folder size.
  target                Target file or folder. If a target is specified, the resulting icon will be applied to the target file/folder.
                        Else, a .iconset folder and .icns file will be created in the same folder as the mask (you can use "Get Info" in Finder to copy the icon from the .icns file).

optional arguments:
  -h, --help            show this help message and exit
  --reveal, -r          Reveal the target (or resulting .icns file) in Finder.
  --macOS VERSION       Version of the macOS folder icon, e.g. "10.13". Defaults to the version currently running (10.15).
  --osx VERSION, -x VERSION
                        Synonym for the --macOS argument.
  --color-scheme COLOR_SCHEME
                        Color scheme: auto (match current system), light, dark.
  --no-trim             Don't trim margins from the mask. By default, transparent margins are trimmed from all 4 sides.
  --verbose, -v         Detailed output.

Example generated from the Apple logo: Icons from apple.iconset at resolutions from 16x16  up to 512x5125@2x, shown in Quicklook on macOS

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

folderify-2.2.1.tar.gz (4.6 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

folderify-2.2.1-py2-none-any.whl (4.6 MB view details)

Uploaded Python 2

File details

Details for the file folderify-2.2.1.tar.gz.

File metadata

  • Download URL: folderify-2.2.1.tar.gz
  • Upload date:
  • Size: 4.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1

File hashes

Hashes for folderify-2.2.1.tar.gz
Algorithm Hash digest
SHA256 cae0ae7dbe0340f6221622ea3d5eab20ef250d98515f970c17923ab85967e26a
MD5 f6664861a71f639dff0cd082dd409411
BLAKE2b-256 fd1c7f8bcc8da5996df8bcf4b49403a7ecaed2b1d7d8691e1a00a6ba38beca6b

See more details on using hashes here.

File details

Details for the file folderify-2.2.1-py2-none-any.whl.

File metadata

  • Download URL: folderify-2.2.1-py2-none-any.whl
  • Upload date:
  • Size: 4.6 MB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.1

File hashes

Hashes for folderify-2.2.1-py2-none-any.whl
Algorithm Hash digest
SHA256 0f1c666fac90d572939f3f354b1b0e1161fe0905433c5892f66f4e45bce385a9
MD5 7c54c3e4949b54f3109661ef22903b29
BLAKE2b-256 d986d6fd1ef5acf858812a11ca3f2aac3c5efa0b29ef4886bac2320986f1c122

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page