summaryrefslogtreecommitdiffhomepage
path: root/gui/scripts
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2020-03-18 16:24:03 +0100
committerOskar Nyberg <oskar@mullvad.net>2020-03-19 13:22:22 +0100
commit4ae6b7a54487105b7551cb2fc41ed598d73872b5 (patch)
tree669b8d84f9b615d463453a94cb4f2aa072250f3e /gui/scripts
parentd0b9be5efae4f41f05c2774f6066d6d0d7ac9d75 (diff)
downloadmullvadvpn-4ae6b7a54487105b7551cb2fc41ed598d73872b5.tar.xz
mullvadvpn-4ae6b7a54487105b7551cb2fc41ed598d73872b5.zip
Add script for creating desktop icon
Diffstat (limited to 'gui/scripts')
-rwxr-xr-xgui/scripts/build-logo-icons.sh56
1 files changed, 56 insertions, 0 deletions
diff --git a/gui/scripts/build-logo-icons.sh b/gui/scripts/build-logo-icons.sh
new file mode 100755
index 0000000000..b1c59e1df7
--- /dev/null
+++ b/gui/scripts/build-logo-icons.sh
@@ -0,0 +1,56 @@
+#!/usr/bin/env bash
+
+# Icon guidlines for MacOS:
+# https://developer.apple.com/design/human-interface-guidelines/macos/icons-and-images/app-icon/
+#
+# Icon guidlines for Windows:
+# https://docs.microsoft.com/en-us/windows/uwp/design/style/app-icons-and-logos#target-size-app-icon-assets
+# https://docs.microsoft.com/en-us/windows/win32/uxguide/vis-icons
+
+set -eu
+
+if ! command -v convert > /dev/null; then
+ echo >&2 "convert (imagemagick) is required to run this script"
+ exit 1
+fi
+
+if ! command -v rsvg-convert > /dev/null; then
+ echo >&2 "rsvg-convert (librsvg) is required to run this script"
+ exit 1
+fi
+
+if ! command -v iconutil > /dev/null; then
+ echo >&2 "iconutil is required to run this script"
+ exit 1
+fi
+
+SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+cd "$SCRIPT_DIR"
+
+DIST_ASSETS_DIR="../../dist-assets"
+SVG_SOURCE_PATH="$DIST_ASSETS_DIR/icon.svg"
+TMP_DIR=$(mktemp -d)
+TMP_ICONSET_DIR="$TMP_DIR/icon.iconset"
+
+COMPRESSION_OPTIONS="-define png:compression-filter=5 -define png:compression-level=9 \
+ -define png:compression-strategy=1 -define png:exclude-chunk=all -strip"
+
+# MacOS and Linux .icns icon
+mkdir $TMP_ICONSET_DIR
+for size in 16 32 128 256 512; do
+ double_size=$[$size * 2]
+ rsvg-convert -o $TMP_ICONSET_DIR/icon-$size.png -w $size -h $size $SVG_SOURCE_PATH
+ rsvg-convert -o $TMP_ICONSET_DIR/icon-$size@2x.png -w $double_size -h $double_size \
+ $SVG_SOURCE_PATH
+done
+iconutil --convert icns --output $DIST_ASSETS_DIR/icon.icns $TMP_ICONSET_DIR
+rm -rf $TMP_ICONSET_DIR
+
+# Windows .ico icon
+for size in 16 20 24 30 32 36 40 48 60 64 72 80 96 256 512; do
+ rsvg-convert -o $TMP_DIR/$size.png -w $size -h $size $SVG_SOURCE_PATH
+done
+convert $TMP_DIR/* $COMPRESSION_OPTIONS $DIST_ASSETS_DIR/icon.ico
+
+rm -rf $TMP_DIR
+