diff options
Diffstat (limited to 'meshmc/branding/genicons.sh')
| -rwxr-xr-x | meshmc/branding/genicons.sh | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/meshmc/branding/genicons.sh b/meshmc/branding/genicons.sh new file mode 100755 index 0000000000..ebf92123d4 --- /dev/null +++ b/meshmc/branding/genicons.sh @@ -0,0 +1,71 @@ +#!/bin/bash +# SPDX-FileCopyrightText: 2026 Project Tick +# SPDX-FileContributor: Project Tick +# SPDX-License-Identifier: GPL-3.0-or-later + +svg2png() { + input_file="$1" + output_file="$2" + width="$3" + height="$4" + + inkscape -w "$width" -h "$height" -o "$output_file" "$input_file" +} + +if command -v "inkscape" && command -v "icotool" && command -v "oxipng"; then + # Windows ICO + d=$(mktemp -d) + + svg2png org.projecttick.MeshMC.svg "$d/MeshMC_16.png" 16 16 + svg2png org.projecttick.MeshMC.svg "$d/MeshMC_24.png" 24 24 + svg2png org.projecttick.MeshMC.svg "$d/MeshMC_32.png" 32 32 + svg2png org.projecttick.MeshMC.svg "$d/MeshMC_48.png" 48 48 + svg2png org.projecttick.MeshMC.svg "$d/MeshMC_64.png" 64 64 + svg2png org.projecttick.MeshMC.svg "$d/MeshMC_128.png" 128 128 + svg2png org.projecttick.MeshMC.svg "$d/MeshMC_256.png" 256 256 + + oxipng --opt max --strip all --alpha --interlace 0 "$d/MeshMC_"*".png" + + rm org.projecttick.MeshMC.ico && icotool -o org.projecttick.MeshMC.ico -c \ + "$d/MeshMC_256.png" \ + "$d/MeshMC_128.png" \ + "$d/MeshMC_64.png" \ + "$d/MeshMC_48.png" \ + "$d/MeshMC_32.png" \ + "$d/MeshMC_24.png" \ + "$d/MeshMC_16.png" +else + echo "ERROR: Windows icons were NOT generated!" >&2 + echo "ERROR: requires inkscape, icotool and oxipng in PATH" +fi + +if command -v "inkscape" && command -v "iconutil" && command -v "oxipng"; then + # macOS ICNS + d=$(mktemp -d) + + d="$d/org.projecttick.MeshMC.iconset" + + mkdir -p "$d" + + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_16x16.png" 16 16 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_16x16@2x.png" 32 32 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_32x32.png" 32 32 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_32x32@2x.png" 64 64 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_128x128.png" 128 128 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_128x128@2x.png" 256 256 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_256x256.png" 256 256 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_256x256@2x.png" 512 512 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_512x512.png" 512 512 + svg2png org.projecttick.MeshMC.bigsur.svg "$d/icon_512x512@2x.png" 1024 1024 + + oxipng --opt max --strip all --alpha --interlace 0 "$d/icon_"*".png" + + iconutil -c icns "$d" + cp -v "$d/org.projecttick.MeshMC.icns" . +else + echo "ERROR: macOS icons were NOT generated!" >&2 + echo "ERROR: requires inkscape, iconutil and oxipng in PATH" +fi + +# replace icon in themes +cp -v org.projecttick.MeshMC.svg "../launcher/resources/multimc/scalable/instances/logo.svg" |
