tale / iconset

A nifty command-line tool to customize macOS icons

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

iconset

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.

Installing

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

Usage

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.

Current Options

  • Specifying an icon and an application file to theme
  • Specifying the directory where Applications are stored (defaults to /Applications, ~/Applications)
  • Specifying a folder of .icns files who's names match their respective icons
  • Reverting an icon by supplying a folder of .icns or the path to a .app
  • Recursively searches through folders for .app files

Possible Expansions

  • Advanced manifest file which lets you map .icns files to .app files directly
  • Accompanying status bar app for macOS with automation and easy config UI

Building

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.

About

A nifty command-line tool to customize macOS icons

License:Apache License 2.0


Languages

Language:Swift 97.9%Language:Objective-C 2.1%