A collection of fun custom icons for applications.
- Browse the ./icons directory to see what applications are supported.
- Pick a flavor of icon
- Download the appropriate format for your operating system
- Download the
.icns
file from one of the available icon directories - In another tab or window, open the directory containing the target application
- Right or option-click the
.app
file and select “Get Info” - Drag the desired
.icns
file to the icon on the top-left of the “Get Info” window
Or (Thanks to @smallwat3r)
EMACS_APP="/Applications/Emacs.app"
curl -o /tmp/doom.png https://raw.githubusercontent.com/eccentric-j/doom-icon/master/icons/doom-emacs/cute-doom/doom.png &&
sips -i /tmp/doom.png >/dev/null &&
DeRez -only icns /tmp/doom.png >/tmp/icns.rsrc &&
Rez -append /tmp/icns.rsrc -o "$APP"$'/Icon\r' &&
SetFile -a C "$APP" &&
SetFile -a V "$APP"$'/Icon\r'
(Thanks to @drchsl)
ICON="$HOME/.local/share/icons/doom.png"
DESKTOP_FILE=/usr/local/share/applications/emacs.desktop
wget https://raw.githubusercontent.com/eccentric-j/doom-icon/master/icons/doom-emacs/cute-doom/doom.png -O "$ICON" &&
sudo --preserve-env=ICON,DESKTOP_FILE sed -i "s|Icon=.*|Icon=$ICON|" $DESKTOP_FILE
(Thanks to @elken)
- Download the
.ico
file from one of the available icon directories - Keep the containing directory open
- Download Resource Hacker
- Save in a useful place
Repeat the below section for any related *.exe
files.
- Locate your emacs install directory (depends on if it has been installer with `choco` or the official installer)
- Open Resource Hacker
- Drag the exe into the window
- Left click on “Icon” on the left tree
- Right click -> Replace icon
- Locate the ICO file from before
- Replace
- Save
Yes please! I love design-focused feedback. For example, “Can you change x so that y because z?” is much more helpful to me than “x hurts my eyes”.
Very yes!
Definitely! Alternatives are welcome. Please note, there are some requirements:
- a source image png that is at a minimum 1024x1024 pixels in size
- create a
./icons/{app}/{flavor}/src
directory, consistently will help automate this later - the app refers to a kabob-case application name, just needs to be human readable
- the flavor refers to a simple way to describe the icon like
3d
cute
abject
. This way we can have multiple alternatives per app.
Then I’ll change this readme by adding a table mapping the icon path to the author. We’ll cross that bridge when we get there.
Yes! Working on some scripts to automate the process entirely. The plan is to support PRs that just add the original src pngs, optionally specifing some size overrides if different images should be used at smaller sizes, and then the tooling will use that to generate all the desired formats. A rough draft of the scripts exists but currently only supports a single image to iconset to icns.
That’s pretty brutal comrade. But if you feel that way, it is what it is.
You may request an icon via creating an issue. However, getting one done depends on my available time, workload, the accessibility of the app, and the style of icon.
Yes! Yes I probably am.
People who have inspired or contributed to this project
- @drchsl
- @elken
- @shankar2k
- @tecosaur
Install node dependencies. The scripts are written in node-babashka ClojureScript as that’s my favorite language and runtime combo at the moment.
npm install
Convert an image to an iconset:
cd icons/kitty-terminal/3d
npm run resize ./src/kitty-icon.png kitty-terminal
Convert the iconset to an icns file:
cd icons/kitty-terminal/3d
npm run resize ./kitty-terminal.iconset
Just keep in mind these scripts are subject to change soon to support size overrides and more formats for more operating systems.