diff --git a/mac_osx/icons/README.md b/mac_osx/icons/README.md
new file mode 100644
index 00000000..3aa2ff8a
--- /dev/null
+++ b/mac_osx/icons/README.md
@@ -0,0 +1,26 @@
+# macOS icons
+
+This folder contains vector graphics to create the macOS icons from.
+
+There are two variants for 16x16 sized and 32x32 sized icons.
+In both variants, the stroke width of the logo is increased to keep it at least
+someone legible on the small icon sizes. The 16x16 stroke width is even heavier
+than the 32x32 stroke width.
+
+Use the SVG files to generate the following PNG file in folder ending with
+`.iconset` (use grayscale with alpha channel):
+
+* `icon_16x16.png`
+* `icon_16x16@2x.png'
+* `icon_32x32.png`
+* `icon_32x32@2x.png'
+
+Then the folder can be converted to an ICNS file with `iconutil`:
+
+```shell
+iconutil -c icns -o output.icns input.iconset
+```
+
+The ICNS file can then be assigned to the respective layout in the bundle file
+with Ukelele.
+
diff --git a/mac_osx/icons/bone-icon-16.svg b/mac_osx/icons/bone-icon-16.svg
new file mode 100644
index 00000000..b0e8da02
--- /dev/null
+++ b/mac_osx/icons/bone-icon-16.svg
@@ -0,0 +1,82 @@
+
+
diff --git a/mac_osx/icons/bone-icon-32.svg b/mac_osx/icons/bone-icon-32.svg
new file mode 100644
index 00000000..632b84eb
--- /dev/null
+++ b/mac_osx/icons/bone-icon-32.svg
@@ -0,0 +1,83 @@
+
+
diff --git a/mac_osx/icons/icon-square.svg b/mac_osx/icons/icon-square.svg
new file mode 100644
index 00000000..ce5f0181
--- /dev/null
+++ b/mac_osx/icons/icon-square.svg
@@ -0,0 +1,75 @@
+
+
diff --git a/mac_osx/icons/neo-icon-16.svg b/mac_osx/icons/neo-icon-16.svg
new file mode 100644
index 00000000..9a546f5c
--- /dev/null
+++ b/mac_osx/icons/neo-icon-16.svg
@@ -0,0 +1,81 @@
+
+
diff --git a/mac_osx/icons/neo-icon-32.svg b/mac_osx/icons/neo-icon-32.svg
new file mode 100644
index 00000000..e11c06ed
--- /dev/null
+++ b/mac_osx/icons/neo-icon-32.svg
@@ -0,0 +1,85 @@
+
+
diff --git a/mac_osx/icons/neoqwertz-icon-32.svg b/mac_osx/icons/neoqwertz-icon-32.svg
new file mode 100644
index 00000000..f2226d21
--- /dev/null
+++ b/mac_osx/icons/neoqwertz-icon-32.svg
@@ -0,0 +1,95 @@
+
+
diff --git a/mac_osx/icons/neoqwertz-icon16.svg b/mac_osx/icons/neoqwertz-icon16.svg
new file mode 100644
index 00000000..97dcd7b8
--- /dev/null
+++ b/mac_osx/icons/neoqwertz-icon16.svg
@@ -0,0 +1,95 @@
+
+
diff --git a/mac_osx/neo-layouts.bundle/Contents/Info.plist b/mac_osx/neo-layouts.bundle/Contents/Info.plist
index c90a5034..ec420489 100644
--- a/mac_osx/neo-layouts.bundle/Contents/Info.plist
+++ b/mac_osx/neo-layouts.bundle/Contents/Info.plist
@@ -12,6 +12,8 @@
TICapsLockLanguageSwitchCapable
+ TISIconIsTemplate
+
TISInputSourceID
org.sil.ukelele.keyboardlayout.neo.deutsch(bone)
TISIntendedLanguage
@@ -21,6 +23,8 @@
TICapsLockLanguageSwitchCapable
+ TISIconIsTemplate
+
TISInputSourceID
org.sil.ukelele.keyboardlayout.neo.deutsch(neo2)
TISIntendedLanguage
@@ -30,6 +34,8 @@
TICapsLockLanguageSwitchCapable
+ TISIconIsTemplate
+
TISInputSourceID
org.sil.ukelele.keyboardlayout.neo.deutsch(neoqwertz)
TISIntendedLanguage
diff --git a/mac_osx/neo-layouts.bundle/Contents/Resources/Deutsch (Bone).icns b/mac_osx/neo-layouts.bundle/Contents/Resources/Deutsch (Bone).icns
index e8c082c5..22b83ba7 100644
Binary files a/mac_osx/neo-layouts.bundle/Contents/Resources/Deutsch (Bone).icns and b/mac_osx/neo-layouts.bundle/Contents/Resources/Deutsch (Bone).icns differ
diff --git a/mac_osx/neo-layouts.bundle/Contents/Resources/Deutsch (Neo 2).icns b/mac_osx/neo-layouts.bundle/Contents/Resources/Deutsch (Neo 2).icns
index a305cf76..8eeec8ee 100644
Binary files a/mac_osx/neo-layouts.bundle/Contents/Resources/Deutsch (Neo 2).icns and b/mac_osx/neo-layouts.bundle/Contents/Resources/Deutsch (Neo 2).icns differ
diff --git a/mac_osx/neo-layouts.bundle/Contents/Resources/Deutsch (NeoQwertz).icns b/mac_osx/neo-layouts.bundle/Contents/Resources/Deutsch (NeoQwertz).icns
index 4a5df555..8558165a 100644
Binary files a/mac_osx/neo-layouts.bundle/Contents/Resources/Deutsch (NeoQwertz).icns and b/mac_osx/neo-layouts.bundle/Contents/Resources/Deutsch (NeoQwertz).icns differ