diff options
| author | Oskar Nyberg <oskar@mullvad.net> | 2020-03-19 13:39:26 +0100 |
|---|---|---|
| committer | Oskar Nyberg <oskar@mullvad.net> | 2020-03-19 13:39:26 +0100 |
| commit | c58353a281eef4af089ff25c4a0bed558f4c9fdd (patch) | |
| tree | 22a50e853ffcec90fea07cd9fcb9ab1ac2c9a617 /gui/scripts | |
| parent | 583a3fc01505993afc30903ea30b1a217e2f1f82 (diff) | |
| parent | d307143ff3cf87bd7ca5eb8e8e95eb6deb56eaa3 (diff) | |
| download | mullvadvpn-c58353a281eef4af089ff25c4a0bed558f4c9fdd.tar.xz mullvadvpn-c58353a281eef4af089ff25c4a0bed558f4c9fdd.zip | |
Merge branch 'desktop-switch-to-new-logo'
Diffstat (limited to 'gui/scripts')
| -rwxr-xr-x | gui/scripts/build-logo-icons.sh | 75 | ||||
| -rwxr-xr-x | gui/scripts/build-menubar-icons.sh | 4 |
2 files changed, 77 insertions, 2 deletions
diff --git a/gui/scripts/build-logo-icons.sh b/gui/scripts/build-logo-icons.sh new file mode 100755 index 0000000000..0f0a803d4d --- /dev/null +++ b/gui/scripts/build-logo-icons.sh @@ -0,0 +1,75 @@ +#!/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_ICO_DIR="$TMP_DIR/ico" +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 +mkdir $TMP_ICO_DIR +for size in 16 20 24 30 32 36 40 48 60 64 72 80 96 256 512; do + rsvg-convert -o $TMP_ICO_DIR/$size.png -w $size -h $size $SVG_SOURCE_PATH +done +convert $TMP_ICO_DIR/* $COMPRESSION_OPTIONS $DIST_ASSETS_DIR/icon.ico +rm -rf $TMP_ICO_DIR + +# Windows installer sidebar +# "bmp3" specifies the Windows 3.x format which is required for the image to be displayed +sidebar_path="$TMP_DIR/sidebar.png" +sidebar_logo_size=234 +rsvg-convert -o $sidebar_path -w $sidebar_logo_size -h $sidebar_logo_size $SVG_SOURCE_PATH +convert -background "#294D73" $sidebar_path \ + -gravity center -extent ${sidebar_logo_size}x314 \ + -gravity west -crop 164x314+10+0 bmp3:$DIST_ASSETS_DIR/windows/installersidebar.bmp +rm $sidebar_path + +# GUI notification icon +rsvg-convert -o ../assets/images/icon-notification.png -w 128 -h 128 $SVG_SOURCE_PATH + +# GUI in app icon +cp ../../dist-assets/icon.svg ../assets/images/logo-icon.svg + +rmdir $TMP_DIR + diff --git a/gui/scripts/build-menubar-icons.sh b/gui/scripts/build-menubar-icons.sh index 5bc2c26b64..465dc8619c 100755 --- a/gui/scripts/build-menubar-icons.sh +++ b/gui/scripts/build-menubar-icons.sh @@ -21,7 +21,7 @@ SVG_DIR="$MENUBAR_ICONS_DIR/svg" MACOS_DIR="$MENUBAR_ICONS_DIR/darwin" WINDOWS_DIR="$MENUBAR_ICONS_DIR/win32" LINUX_DIR="$MENUBAR_ICONS_DIR/linux" -TMP_DIR="$MENUBAR_ICONS_DIR/tmp" +TMP_DIR=$(mktemp -d) COMPRESSION_OPTIONS="-define png:compression-filter=5 -define png:compression-level=9 \ -define png:compression-strategy=1 -define png:exclude-chunk=all -strip" @@ -99,7 +99,7 @@ function generate() { rm "$black_svg_source_path" "$white_svg_source_path" } -mkdir -p "$MACOS_DIR" "$WINDOWS_DIR" "$LINUX_DIR" "$TMP_DIR" +mkdir -p "$MACOS_DIR" "$WINDOWS_DIR" "$LINUX_DIR" for frame in {1..9}; do generate lock-$frame lock-$frame |
