diff --git a/Makefile b/Makefile
index d2979a8d..3d81ca51 100644
--- a/Makefile
+++ b/Makefile
@@ -12,9 +12,9 @@ TARGET_OS?=${GOOS}
# Keep version hardcoded so app build works also without Git repository.
BRIDGE_APP_VERSION?=2.2.0+git
APP_VERSION:=${BRIDGE_APP_VERSION}
-SRC_ICO:=logo.ico
+SRC_ICO:=bridge.ico
SRC_ICNS:=Bridge.icns
-SRC_SVG:=logo.svg
+SRC_SVG:=bridge.svg
EXE_NAME:=proton-bridge
CONFIGNAME:=bridge
REVISION:=$(shell git rev-parse --short=10 HEAD)
@@ -88,7 +88,7 @@ ${TGZ_TARGET}: ${DEPLOY_DIR}/${TARGET_OS}
cd ${DEPLOY_DIR}/${TARGET_OS} && tar -czvf ../../../../$@ .
${DEPLOY_DIR}/linux: ${EXE_TARGET}
- cp -pf ./internal/frontend/share/${SRC_SVG} ${DEPLOY_DIR}/linux/logo.svg
+ cp -pf ./dist/${SRC_SVG} ${DEPLOY_DIR}/linux/logo.svg
cp -pf ./LICENSE ${DEPLOY_DIR}/linux/
cp -pf ./Changelog.md ${DEPLOY_DIR}/linux/
cp -pf ./dist/${EXE_NAME}.desktop ${DEPLOY_DIR}/linux/
@@ -98,7 +98,7 @@ ${DEPLOY_DIR}/darwin: ${EXE_TARGET}
mv ${EXE_TARGET}/Contents/MacOS/{${DIRNAME},${EXE_NAME}}; \
perl -i -pe"s/>${DIRNAME}/>${EXE_NAME}/g" ${EXE_TARGET}/Contents/Info.plist; \
fi
- cp ./internal/frontend/share/${SRC_ICNS} ${DARWINAPP_CONTENTS}/Resources/${SRC_ICNS}
+ cp ./dist/${SRC_ICNS} ${DARWINAPP_CONTENTS}/Resources/${SRC_ICNS}
cp LICENSE ${DARWINAPP_CONTENTS}/Resources/
rm -rf "${DARWINAPP_CONTENTS}/Frameworks/QtWebEngine.framework"
rm -rf "${DARWINAPP_CONTENTS}/Frameworks/QtWebView.framework"
@@ -106,7 +106,7 @@ ${DEPLOY_DIR}/darwin: ${EXE_TARGET}
./utils/remove_non_relative_links_darwin.sh "${EXE_TARGET}${EXE_BINARY_DARWIN}"
${DEPLOY_DIR}/windows: ${EXE_TARGET}
- cp ./internal/frontend/share/${SRC_ICO} ${DEPLOY_DIR}/windows/logo.ico
+ cp ./dist/${SRC_ICO} ${DEPLOY_DIR}/windows/logo.ico
cp LICENSE ${DEPLOY_DIR}/windows/
QT_BUILD_TARGET:=build desktop
@@ -127,7 +127,7 @@ ${EXE_TARGET}: check-has-go gofiles ${RESOURCE_FILE} ${VENDOR_TARGET}
WINDRES_YEAR:=$(shell date +%Y)
APP_VERSION_COMMA:=$(shell echo "${APP_VERSION}" | sed -e 's/[^0-9,.]*//g' -e 's/\./,/g')
-resource.syso: ./internal/frontend/share/info.rc ./internal/frontend/share/${SRC_ICO} .FORCE
+resource.syso: ./dist/info.rc ./dist/${SRC_ICO} .FORCE
rm -f ./*.syso
windres --target=pe-x86-64 -I ./internal/frontend/share/ -D ICO_FILE=${SRC_ICO} -D EXE_NAME="${EXE_NAME}" -D FILE_VERSION="${APP_VERSION}" -D ORIGINAL_FILE_NAME="${EXE}" -D PRODUCT_VERSION="${APP_VERSION}" -D FILE_VERSION_COMMA=${APP_VERSION_COMMA} -D YEAR=${WINDRES_YEAR} -o $@ $<
diff --git a/dist/Bridge.icns b/dist/Bridge.icns
new file mode 100644
index 00000000..106db672
Binary files /dev/null and b/dist/Bridge.icns differ
diff --git a/dist/bridge.ico b/dist/bridge.ico
new file mode 100644
index 00000000..331d2ce3
Binary files /dev/null and b/dist/bridge.ico differ
diff --git a/dist/bridge.svg b/dist/bridge.svg
new file mode 100644
index 00000000..81c18b8f
--- /dev/null
+++ b/dist/bridge.svg
@@ -0,0 +1,32 @@
+
diff --git a/internal/frontend/share/info.rc b/dist/info.rc
similarity index 100%
rename from internal/frontend/share/info.rc
rename to dist/info.rc
diff --git a/dist/proton-bridge.desktop b/dist/proton-bridge.desktop
index 5dc83c01..220e0685 100644
--- a/dist/proton-bridge.desktop
+++ b/dist/proton-bridge.desktop
@@ -8,4 +8,4 @@ Icon=protonmail-bridge
Exec=protonmail-bridge
Terminal=false
Categories=Office;Email;Network
-StartupWMClass=protonmail-bridge
+StartupWMClass=Proton Mail Bridge
diff --git a/dist/raw/mac_icon_1024x1024.png b/dist/raw/mac_icon_1024x1024.png
new file mode 100644
index 00000000..a61d9d4d
Binary files /dev/null and b/dist/raw/mac_icon_1024x1024.png differ
diff --git a/dist/raw/mac_icon_128x128.png b/dist/raw/mac_icon_128x128.png
new file mode 100644
index 00000000..f88468c8
Binary files /dev/null and b/dist/raw/mac_icon_128x128.png differ
diff --git a/dist/raw/mac_icon_128x128.svg b/dist/raw/mac_icon_128x128.svg
new file mode 100644
index 00000000..d4a5af75
--- /dev/null
+++ b/dist/raw/mac_icon_128x128.svg
@@ -0,0 +1,57 @@
+
diff --git a/dist/raw/mac_icon_16x16.png b/dist/raw/mac_icon_16x16.png
new file mode 100644
index 00000000..8bce82f6
Binary files /dev/null and b/dist/raw/mac_icon_16x16.png differ
diff --git a/dist/raw/mac_icon_16x16.svg b/dist/raw/mac_icon_16x16.svg
new file mode 100644
index 00000000..5d0ad498
--- /dev/null
+++ b/dist/raw/mac_icon_16x16.svg
@@ -0,0 +1,57 @@
+
diff --git a/dist/raw/mac_icon_256x256.png b/dist/raw/mac_icon_256x256.png
new file mode 100644
index 00000000..73e23d7b
Binary files /dev/null and b/dist/raw/mac_icon_256x256.png differ
diff --git a/dist/raw/mac_icon_256x256.svg b/dist/raw/mac_icon_256x256.svg
new file mode 100644
index 00000000..401dcf83
--- /dev/null
+++ b/dist/raw/mac_icon_256x256.svg
@@ -0,0 +1,57 @@
+
diff --git a/dist/raw/mac_icon_32x32.png b/dist/raw/mac_icon_32x32.png
new file mode 100644
index 00000000..c0d4a0c3
Binary files /dev/null and b/dist/raw/mac_icon_32x32.png differ
diff --git a/dist/raw/mac_icon_32x32.svg b/dist/raw/mac_icon_32x32.svg
new file mode 100644
index 00000000..a4a2e514
--- /dev/null
+++ b/dist/raw/mac_icon_32x32.svg
@@ -0,0 +1,57 @@
+
diff --git a/dist/raw/mac_icon_512x512.png b/dist/raw/mac_icon_512x512.png
new file mode 100644
index 00000000..c2928d4f
Binary files /dev/null and b/dist/raw/mac_icon_512x512.png differ
diff --git a/dist/raw/mac_icon_512x512.svg b/dist/raw/mac_icon_512x512.svg
new file mode 100644
index 00000000..070cd9df
--- /dev/null
+++ b/dist/raw/mac_icon_512x512.svg
@@ -0,0 +1,57 @@
+
diff --git a/dist/raw/win+lin_icon_16x16.svg b/dist/raw/win+lin_icon_16x16.svg
new file mode 100644
index 00000000..182972f1
--- /dev/null
+++ b/dist/raw/win+lin_icon_16x16.svg
@@ -0,0 +1,32 @@
+
diff --git a/dist/raw/win+lin_icon_24x24.svg b/dist/raw/win+lin_icon_24x24.svg
new file mode 100644
index 00000000..c3520335
--- /dev/null
+++ b/dist/raw/win+lin_icon_24x24.svg
@@ -0,0 +1,32 @@
+
diff --git a/dist/raw/win+lin_icon_256x256.png b/dist/raw/win+lin_icon_256x256.png
new file mode 100644
index 00000000..fa0f7899
Binary files /dev/null and b/dist/raw/win+lin_icon_256x256.png differ
diff --git a/dist/raw/win+lin_icon_256x256.svg b/dist/raw/win+lin_icon_256x256.svg
new file mode 100644
index 00000000..81c18b8f
--- /dev/null
+++ b/dist/raw/win+lin_icon_256x256.svg
@@ -0,0 +1,32 @@
+
diff --git a/dist/raw/win+lin_icon_32x32.svg b/dist/raw/win+lin_icon_32x32.svg
new file mode 100644
index 00000000..bd2684ab
--- /dev/null
+++ b/dist/raw/win+lin_icon_32x32.svg
@@ -0,0 +1,32 @@
+
diff --git a/dist/raw/win+lin_icon_48x48.svg b/dist/raw/win+lin_icon_48x48.svg
new file mode 100644
index 00000000..5fe260d1
--- /dev/null
+++ b/dist/raw/win+lin_icon_48x48.svg
@@ -0,0 +1,32 @@
+
diff --git a/icon.iconset/icon_128x128.png b/icon.iconset/icon_128x128.png
deleted file mode 100644
index a4bbbd97..00000000
Binary files a/icon.iconset/icon_128x128.png and /dev/null differ
diff --git a/icon.iconset/icon_128x128@2x.png b/icon.iconset/icon_128x128@2x.png
deleted file mode 100644
index d12764ae..00000000
Binary files a/icon.iconset/icon_128x128@2x.png and /dev/null differ
diff --git a/icon.iconset/icon_16x16.png b/icon.iconset/icon_16x16.png
deleted file mode 100644
index 9ed58081..00000000
Binary files a/icon.iconset/icon_16x16.png and /dev/null differ
diff --git a/icon.iconset/icon_16x16@2x.png b/icon.iconset/icon_16x16@2x.png
deleted file mode 100644
index 6447fe43..00000000
Binary files a/icon.iconset/icon_16x16@2x.png and /dev/null differ
diff --git a/icon.iconset/icon_256x256.png b/icon.iconset/icon_256x256.png
deleted file mode 100644
index d12764ae..00000000
Binary files a/icon.iconset/icon_256x256.png and /dev/null differ
diff --git a/icon.iconset/icon_256x256@2x.png b/icon.iconset/icon_256x256@2x.png
deleted file mode 100644
index 9ec04491..00000000
Binary files a/icon.iconset/icon_256x256@2x.png and /dev/null differ
diff --git a/icon.iconset/icon_32x32.png b/icon.iconset/icon_32x32.png
deleted file mode 100644
index 6447fe43..00000000
Binary files a/icon.iconset/icon_32x32.png and /dev/null differ
diff --git a/icon.iconset/icon_32x32@2x.png b/icon.iconset/icon_32x32@2x.png
deleted file mode 100644
index 134f027c..00000000
Binary files a/icon.iconset/icon_32x32@2x.png and /dev/null differ
diff --git a/icon.iconset/icon_512x512.png b/icon.iconset/icon_512x512.png
deleted file mode 100644
index 9ec04491..00000000
Binary files a/icon.iconset/icon_512x512.png and /dev/null differ
diff --git a/icon.iconset/icon_512x512@2x.png b/icon.iconset/icon_512x512@2x.png
deleted file mode 100644
index 99222ac1..00000000
Binary files a/icon.iconset/icon_512x512@2x.png and /dev/null differ
diff --git a/internal/frontend/share/Bridge.icns b/internal/frontend/share/Bridge.icns
deleted file mode 100644
index 3520a0eb..00000000
Binary files a/internal/frontend/share/Bridge.icns and /dev/null differ
diff --git a/internal/frontend/share/logo.ico b/internal/frontend/share/logo.ico
deleted file mode 100644
index 2b0e2f0f..00000000
Binary files a/internal/frontend/share/logo.ico and /dev/null differ
diff --git a/internal/frontend/share/logo.svg b/internal/frontend/share/logo.svg
deleted file mode 100644
index dc807142..00000000
--- a/internal/frontend/share/logo.svg
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
diff --git a/utils/export_icons.sh b/utils/export_icons.sh
new file mode 100755
index 00000000..c58460e7
--- /dev/null
+++ b/utils/export_icons.sh
@@ -0,0 +1,79 @@
+# Copyright (c) 2022 Proton AG
+#
+# This file is part of Proton Mail Bridge.
+#
+# Proton Mail Bridge is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Proton Mail Bridge is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Proton Mail Bridge. If not, see .
+
+
+
+RAW_PATHS=./dist/raw
+
+create_bitmaps(){
+ rm -f ${RAW_PATHS}/*_icon_*.png
+
+ export_png ${RAW_PATHS}/mac_icon_512x512.svg 384 1024
+ export_png ${RAW_PATHS}/mac_icon_512x512.svg 192 512
+ export_png ${RAW_PATHS}/mac_icon_512x512.svg 96 256
+ export_png ${RAW_PATHS}/mac_icon_256x256.svg 96 128
+ export_png ${RAW_PATHS}/mac_icon_32x32.svg 192 32
+ export_png ${RAW_PATHS}/mac_icon_32x32.svg 96 16
+
+ export_png ${RAW_PATHS}/win+lin_icon_256x256.svg 192 256
+}
+
+
+# Inkscape (more precisely cairo) doesn't support customization of rendering
+# and direct output is too sharp. Therefore, we double DPI for inkscape export
+# and then scale down to correct dimension.
+export_png(){
+ inSVG=$1
+ dpi=$2
+ size=$3
+
+ dimensions=${size}x${size}
+ outPNG=$(echo "$inSVG" | sed 's/\(.*_icon\)_.*/\1/')_${dimensions}.png
+
+ echo "$inSVG -> $outPNG $dpi $dimensions"
+ inkscape "$inSVG" --export-filename=tmp.png --export-dpi "$dpi"
+ file tmp.png
+ convert tmp.png -resize "$dimensions" "$outPNG"
+ file "$outPNG"
+ rm tmp.png
+}
+
+create_mac_icon(){
+ out=./dist/Bridge.icns
+ rm -f ${out}
+ png2icns ${out} \
+ ${RAW_PATHS}/mac_icon_{1024x1024,512x512,256x256,128x128,32x32,16x16}.png
+}
+
+create_windows_icon(){
+ out=./dist/bridge.ico
+ rm -f ${out}
+ convert \
+ ${RAW_PATHS}/win+lin_icon_256x256.png \
+ -define icon:auto-resize=256,128,64,48,32,16 ${out}
+}
+
+create_linux_icon(){
+ out=./dist/bridge.svg
+ rm -f ${out}
+ cp ${RAW_PATHS}/win+lin_icon_256x256.svg ${out}
+}
+
+create_bitmaps
+create_mac_icon
+create_windows_icon
+create_linux_icon