A minimal app to customize your macOS app icons with ease.
Works on macOS Ventura 13 or newer.
Note
If you like using this project, consider starring it! :D It motivates me a lot to develop and deploy these projects.
- Simple workflow for changing regular app icons
- Doesn't require disabling SIP (System Integrity Protection)
- Continuous and managed app synchronization in the background
- Small binary size (19 MiB when compressed)
- Based on the Flutter framework
🍺 Install Alter using Homebrew (Recommended):
brew install --cask hitblast/tap/alter
Alternatively, use GitHub Releases to download the latest builds.
Important
By using Alter, you acknowledge that Alter is not notarized.
It's a security feature of Apple, based on which binaries are validated before running on consumer hardware. Since I do not plan to notarize Alter, the Homebrew installation script will automatically remove the com.apple.quarantine
attribute upon installation.
A better reference could be found for this concept and why invalidating the attribute is important in this section of the documentation nikitabobko wrote for AeroSpace.
I come from a Linux and Windows background, and customizability was at the forefront of what I was doing with my laptop back when I started learning. However, when I switched to my Apple Silicon-powered machine, I wasn't really sure how to take "customizability" like I used to. Sure, there are apps which help me power through my everyday workflow now, but aside of keybindings and shortcuts, I also wanted my Mac to look and feel just like how I want it to.
I eventually came across IconChamp and Pictogram, and while the latter one allows me to easily change "some" of my app icons, IconChamp can change basically all of them. Including, obviously, system icons. The problem? None of them are really "open-source" and not "really stable" either, according to this Reddit thread which describes IconChamp glitching out while changing system icons on a regular basis.
I wanted to take the good parts of both apps and make my own, personal solution with a fully open-sourced near-native development experience.
Based on basic analysis of the project, a few, possibly resolvable issues have been found so far:
-
Self-validating binaries like Discord do not cooperate with the attribute modifications happening inside, and could very as well broken once they're customized. To solve this, I've tried incorporating a blacklist of apps which should be prohibited from modifying unless the user really desires.
-
The Flutter Engine is a part of the compiled binary (obviously since it's a Flutter project), so there will always be a tiny difference in size when it comes to comparing with a Swift binary.
-
For now, Alter cannot modify the system apps on macOS due to SIP (System Integrity Protection) being a thing. I'm still working on possible workarounds.
Contributions are always welcome. If you are a developer who is willing to improve any aspect of the application, consider reading dev-docs/DEVELOPMENT.md for everything related to reproducing the development environment and more. If you have already attached the development environment, however, consider following through the ethical guidelines of contributing written in CONTRIBUTING.md.
This project has been licensed under the MIT License.