summaryrefslogtreecommitdiffhomepage
path: root/gui/scripts
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2020-02-05 08:57:51 +0100
committerOskar Nyberg <oskar@mullvad.net>2020-02-06 16:58:45 +0100
commit9776a54aca3482bd81710aa2250efd4c1a11868c (patch)
tree71e1c95943f97420abf87650d4700129b3a0f5bb /gui/scripts
parent9612283dde1c889c08203cc1fa18acc99ca6c9b0 (diff)
downloadmullvadvpn-9776a54aca3482bd81710aa2250efd4c1a11868c.tar.xz
mullvadvpn-9776a54aca3482bd81710aa2250efd4c1a11868c.zip
Add script which builds icons from svgs
Diffstat (limited to 'gui/scripts')
-rwxr-xr-xgui/scripts/build-menubar-icons.sh62
1 files changed, 62 insertions, 0 deletions
diff --git a/gui/scripts/build-menubar-icons.sh b/gui/scripts/build-menubar-icons.sh
new file mode 100755
index 0000000000..f886b089af
--- /dev/null
+++ b/gui/scripts/build-menubar-icons.sh
@@ -0,0 +1,62 @@
+#!/usr/bin/env sh
+
+if ! command -v convert > /dev/null; then
+ echo >&2 "convert (imagemagick) is required to run this script"
+ exit 1
+fi
+
+MENUBAR_PATH="assets/images/menubar icons"
+
+MACOS="$MENUBAR_PATH/darwin"
+WINDOWS="$MENUBAR_PATH/win32"
+LINUX="$MENUBAR_PATH/linux"
+
+WINDOWS_SIZES="-define icon:auto-resize=48,32,16"
+
+MAKE_BLACK='s/#[0-9a-fA-f]{6}/#000000/g'
+MAKE_WHITE='s/#[0-9a-fA-f]{6}/#FFFFFF/g'
+
+COMPRESSION_OPTIONS="-define png:compression-filter=5 -define png:compression-level=9 \
+ -define png:compression-strategy=1 -define png:exclude-chunk=all -strip"
+OPTIONS="-background transparent -density 1200 $COMPRESSION_OPTIONS"
+
+function resize() {
+ WITHOUT_PADDING=$[$1 - ($2 * 2)]
+ echo "-resize ${WITHOUT_PADDING}x$WITHOUT_PADDING -gravity center -extent ${1}x$1"
+}
+
+function generate() {
+ IN="$MENUBAR_PATH/svg/$1.svg"
+ IN_MONO="$MENUBAR_PATH/svg/$2.svg"
+ OUT="$1"
+
+ # MacOS colored
+ convert $OPTIONS $(resize 22 3) "$IN" "$MACOS/$OUT.png"
+ convert $OPTIONS $(resize 44 6) "$IN" "$MACOS/$OUT@2x.png"
+
+ # MacOS monochrome
+ sed -E $MAKE_BLACK "$IN_MONO" | convert $OPTIONS $(resize 22 3) - "$MACOS/${OUT}Template.png"
+ sed -E $MAKE_BLACK "$IN_MONO" | convert $OPTIONS $(resize 44 6) - "$MACOS/${OUT}Template@2x.png"
+
+ # Linux colored
+ convert $OPTIONS $(resize 32 4) "$IN" "$LINUX/$OUT.png"
+
+ # Linux white
+ sed -E $MAKE_WHITE "$IN_MONO" | convert $OPTIONS $(resize 32 4) - "$LINUX/${OUT}_white.png"
+
+ # Windows colored
+ convert $OPTIONS $(resize 64 3) "$IN" $WINDOWS_SIZES "$WINDOWS/$OUT.ico"
+
+ # Windows white
+ sed -E $MAKE_WHITE "$IN_MONO" \
+ | convert $OPTIONS $(resize 64 2) - $WINDOWS_SIZES "$WINDOWS/${OUT}_white.ico"
+}
+
+mkdir -p "$MENUBAR_PATH/darwin" "$MENUBAR_PATH/win32" "$MENUBAR_PATH/linux"
+
+for i in {1..9}; do
+ generate lock-$i lock-$i
+done
+
+generate lock-10 lock-10_2
+