From a79eab956480102b88618f17d83595faf4ca606d Mon Sep 17 00:00:00 2001 From: Caio Oliveira Date: Wed, 31 Dec 2025 17:01:35 +0100 Subject: [tools] update-icons: Update ALL icons (#3184) - remove leftovers - update script to update all Eden related icons - using base_named rather than base on About page - TODO: Reduce size of the icons even more and add Monochrome variation Signed-off-by: Caio Oliveira Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3184 Reviewed-by: CamilleLaVey Reviewed-by: Lizzie Reviewed-by: Maufeat Co-authored-by: Caio Oliveira Co-committed-by: Caio Oliveira --- tools/generate-legacy-icons.sh | 30 --------------- tools/update-icons.sh | 83 +++++++++++++++++++++++++++++++----------- 2 files changed, 61 insertions(+), 52 deletions(-) delete mode 100755 tools/generate-legacy-icons.sh (limited to 'tools') diff --git a/tools/generate-legacy-icons.sh b/tools/generate-legacy-icons.sh deleted file mode 100755 index 3661a75bb8..0000000000 --- a/tools/generate-legacy-icons.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -e - -# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project -# SPDX-License-Identifier: GPL-3.0-or-later - -# Generate SDK <26 icons for android -# requires imagemagick, inkscape - -ROOTDIR=$PWD - -cd src/android/app/src/main - -cd res/drawable -# convert vector to svg--needed to generate launcher png -cp ic_yuzu_icon.xml tmp - -python3 "$ROOTDIR"/tools/VectorDrawable2Svg.py tmp - -inkscape -w 768 -h 768 tmp.svg -o ic_tmp.png -magick ic_icon_bg_orig.png -resize 512x512 bg_tmp.png - -magick bg_tmp.png -strip -type TrueColor -depth 8 -colorspace sRGB -color-matrix "1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0" bg_tmp_rgb.png -magick -verbose bg_tmp_rgb.png ic_tmp.png -gravity center -composite -colorspace sRGB ic_launcher.png -echo - -rm ./*tmp* - -cd "$ROOTDIR" - -# TODO: add legacy icons diff --git a/tools/update-icons.sh b/tools/update-icons.sh index 2e685fdd87..1fcadbdf9f 100755 --- a/tools/update-icons.sh +++ b/tools/update-icons.sh @@ -5,33 +5,72 @@ # Updates main icons for eden -#which png2icns || (which yay && yay libicns) || exit which magick || exit +which optipng || exit -EDEN_BASE_SVG="dist/icon_variations/base.svg" -#EDEN_SMALL_SVG="dist/icon_variations/base_small.svg" -EDEN_NAMED_SVG="dist/icon_variations/base_named.svg" +VARIATION=${VARIATION:-base} -magick -density 256x256 -background transparent $EDEN_BASE_SVG -define icon:auto-resize -colors 256 dist/eden.ico || exit -convert -density 256x256 -resize 256x256 -background transparent $EDEN_BASE_SVG dist/yuzu.bmp || exit +EDEN_BASE_SVG="dist/icon_variations/${VARIATION}.svg" +EDEN_NAMED_SVG="dist/icon_variations/${VARIATION}_named.svg" +EDEN_BG_COLOR="dist/icon_variations/${VARIATION}_bgcolor" +# TODO: EDEN_MONOCHROME_SVG Variation -magick -size 256x256 -background transparent $EDEN_BASE_SVG dist/qt_themes/default/icons/256x256/eden.png || exit -magick -size 256x256 -background transparent $EDEN_NAMED_SVG dist/qt_themes/default/icons/256x256/eden_named.png || exit -magick dist/qt_themes/default/icons/256x256/eden.png -resize 256x256! dist/qt_themes/default/icons/256x256/eden.png || exit -magick dist/qt_themes/default/icons/256x256/eden_named.png -resize 256x256! dist/qt_themes/default/icons/256x256/eden_named.png || exit +[ -f "$EDEN_BASE_SVG" ] && [ -f "$EDEN_NAMED_SVG" ] && [ -f "$EDEN_BG_COLOR" ] || { echo "Error: missing ${VARIATION}.svg/${VARIATION}_named.svg/${VARIATION}_bgcolor" >&2; exit; } -# Now do more fancy things (like composition) -TMP_PNG="dist/eden-tmp.png" -magick -size 1024x1024 -background transparent $EDEN_BASE_SVG $TMP_PNG || exit -composite $TMP_PNG -gravity center -geometry 2048x2048+0+0 \ - src/android/app/src/main/res/drawable/ic_icon_bg_orig.png \ - src/android/app/src/main/res/drawable/ic_launcher.png || exit -magick src/android/app/src/main/res/drawable/ic_launcher.png -resize 512x512! src/android/app/src/main/res/drawable/ic_launcher.png || exit +# Desktop / Windows / Qt icons + +EDEN_DESKTOP_SVG="dist/dev.eden_emu.eden.svg" + +cp "$EDEN_BASE_SVG" "$EDEN_DESKTOP_SVG" + +magick -density 256x256 -background transparent "$EDEN_BASE_SVG" -define icon:auto-resize -colors 256 dist/eden.ico || exit +magick -density 256x256 -background transparent "$EDEN_BASE_SVG" -resize 256x256 dist/eden.bmp || exit + +magick -size 256x256 -background transparent "$EDEN_BASE_SVG" -resize 256x256 dist/qt_themes/default/icons/256x256/eden.png || exit +magick -size 256x256 -background transparent "$EDEN_NAMED_SVG" -resize 256x256 dist/qt_themes/default/icons/256x256/eden_named.png || exit -optipng -o7 src/android/app/src/main/res/drawable/ic_launcher.png -optipng -o7 dist/qt_themes/default/icons/256x256/eden_named.png optipng -o7 dist/qt_themes/default/icons/256x256/eden.png +optipng -o7 dist/qt_themes/default/icons/256x256/eden_named.png + +# Android adaptive icon (API 26+) + +EDEN_ANDROID_RES="src/android/app/src/main/res" +EDEN_ANDROID_FG="$EDEN_ANDROID_RES/drawable/ic_launcher_foreground.png" +EDEN_ANDROID_BG_COLOR=$(cat $EDEN_BG_COLOR) + +# Update Icon Background Color +echo "${EDEN_ANDROID_BG_COLOR}" > "$EDEN_ANDROID_RES/values/colors.xml" + +magick -size 1080x1080 -background transparent "$EDEN_BASE_SVG" -gravity center -resize 660x660 -extent 1080x1080 "$EDEN_ANDROID_FG" || exit +magick -background transparent "$EDEN_BASE_SVG" -gravity center -resize 512x512 "$EDEN_ANDROID_RES/drawable/ic_yuzu.png" || exit +magick -size 512x512 -background transparent "$EDEN_BASE_SVG" -gravity center -resize 338x338 -extent 512x512 "$EDEN_ANDROID_RES/drawable/ic_yuzu_splash.png" || exit +magick -background transparent "$EDEN_NAMED_SVG" -gravity center -resize 512x512 "$EDEN_ANDROID_RES/drawable/ic_yuzu_named.png" || exit + +optipng -o7 "$EDEN_ANDROID_FG" +optipng -o7 "$EDEN_ANDROID_RES/drawable/ic_yuzu.png" +optipng -o7 "$EDEN_ANDROID_RES/drawable/ic_yuzu_splash.png" +optipng -o7 "$EDEN_ANDROID_RES/drawable/ic_yuzu_named.png" + +# Android legacy launcher icon (API <= 24) + +BASE_LEGACY="$EDEN_ANDROID_RES/mipmap-xxxhdpi/ic_launcher.png" + +magick -size 512x512 xc:${EDEN_ANDROID_BG_COLOR} "$EDEN_ANDROID_FG" -gravity center -resize 384x384 -composite "$BASE_LEGACY" || exit + +magick "$BASE_LEGACY" -resize 192x192 "$EDEN_ANDROID_RES/mipmap-xxhdpi/ic_launcher.png" +magick "$BASE_LEGACY" -resize 144x144 "$EDEN_ANDROID_RES/mipmap-xhdpi/ic_launcher.png" +magick "$BASE_LEGACY" -resize 96x96 "$EDEN_ANDROID_RES/mipmap-hdpi/ic_launcher.png" +magick "$BASE_LEGACY" -resize 72x72 "$EDEN_ANDROID_RES/mipmap-mdpi/ic_launcher.png" + +optipng -o7 "$EDEN_ANDROID_RES"/mipmap-*/ic_launcher.png + +# macOS +# TODO: Update Assets.car too + +TMP_PNG="dist/eden-tmp.png" + +magick -size 1024x1024 -background none "$EDEN_BASE_SVG" "$TMP_PNG" || exit + +png2icns dist/eden.icns "$TMP_PNG" || echo 'non fatal' -png2icns dist/eden.icns $TMP_PNG || echo 'non fatal' -cp dist/eden.icns dist/yuzu.icns -rm $TMP_PNG +rm "$TMP_PNG" -- cgit v1.2.3