diff options
| author | Oskar Nyberg <oskar@mullvad.net> | 2020-03-18 16:24:03 +0100 |
|---|---|---|
| committer | Oskar Nyberg <oskar@mullvad.net> | 2020-03-19 13:22:22 +0100 |
| commit | 4ae6b7a54487105b7551cb2fc41ed598d73872b5 (patch) | |
| tree | 669b8d84f9b615d463453a94cb4f2aa072250f3e /gui/scripts | |
| parent | d0b9be5efae4f41f05c2774f6066d6d0d7ac9d75 (diff) | |
| download | mullvadvpn-4ae6b7a54487105b7551cb2fc41ed598d73872b5.tar.xz mullvadvpn-4ae6b7a54487105b7551cb2fc41ed598d73872b5.zip | |
Add script for creating desktop icon
Diffstat (limited to 'gui/scripts')
| -rwxr-xr-x | gui/scripts/build-logo-icons.sh | 56 |
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 + |
