A nifty command line tool to manage macOS icons
iconset is a new command line tool for macOS that allows you to change icons for macOS apps (excluding system ones of course).
It's considered generally stable and utilizes NSWorkspace() to change icons, so it should work on all macOS versions above 15.4.1.
In the future, I plan to set this up on brew, but for now the following command should work:
curl https://github.com/tale/iconset/releases/download/v1.0.0/iconset -Lo /usr/local/bin/iconset
sudo chmod +x /usr/local/bin/iconset
OVERVIEW: A nifty command line tool to manage macOS icons
USAGE: iconset <subcommand>
OPTIONS:
--version Show the version.
-h, --help Show help information.
SUBCOMMANDS:
folder Set icons using a folder of '.icns' files with the same names as their '.app' counterparts
single Set the icon of a '.app' file using a '.icns' file
revert Revert a custom icon by supplying a path to a '.app' file or directory
See 'iconset help <subcommand>' for detailed help.
- Specifying an icon and an application file to theme
- Specifying the directory where Applications are stored (defaults to
/Applications, ~/Applications) - Specifying a folder of
.icnsfiles who's names match their respective icons - Reverting an icon by supplying a folder of
.icnsor the path to a.app - Recursively searches through folders for
.appfiles
- Advanced manifest file which lets you map
.icnsfiles to.appfiles directly - Accompanying status bar app for macOS with automation and easy config UI
The project is an SPM Package that requires Xcode 13 and Swift 5.5.
Run swift build --disable-sandbox in the project root to build a debug binary.
For release binaries, instead run swift build -c release --arch arm64 --arch x86_64 --disable-sandbox in the project root
Currently, the in-app Xcode builds are sandbox enforced, potentially breaking iconset's access to certain files.