diff --git a/src/apps/desktop/icons/hicolor/128x128/apps/bitfun-desktop.png b/src/apps/desktop/icons/hicolor/128x128/apps/bitfun-desktop.png new file mode 100644 index 00000000..dd07f726 Binary files /dev/null and b/src/apps/desktop/icons/hicolor/128x128/apps/bitfun-desktop.png differ diff --git a/src/apps/desktop/icons/hicolor/16x16/apps/bitfun-desktop.png b/src/apps/desktop/icons/hicolor/16x16/apps/bitfun-desktop.png new file mode 100644 index 00000000..789ca6a1 Binary files /dev/null and b/src/apps/desktop/icons/hicolor/16x16/apps/bitfun-desktop.png differ diff --git a/src/apps/desktop/icons/hicolor/256x256/apps/bitfun-desktop.png b/src/apps/desktop/icons/hicolor/256x256/apps/bitfun-desktop.png new file mode 100644 index 00000000..f95ff593 Binary files /dev/null and b/src/apps/desktop/icons/hicolor/256x256/apps/bitfun-desktop.png differ diff --git a/src/apps/desktop/icons/hicolor/32x32/apps/bitfun-desktop.png b/src/apps/desktop/icons/hicolor/32x32/apps/bitfun-desktop.png new file mode 100644 index 00000000..b8e17a20 Binary files /dev/null and b/src/apps/desktop/icons/hicolor/32x32/apps/bitfun-desktop.png differ diff --git a/src/apps/desktop/icons/hicolor/48x48/apps/bitfun-desktop.png b/src/apps/desktop/icons/hicolor/48x48/apps/bitfun-desktop.png new file mode 100644 index 00000000..c8581d24 Binary files /dev/null and b/src/apps/desktop/icons/hicolor/48x48/apps/bitfun-desktop.png differ diff --git a/src/apps/desktop/icons/hicolor/512x512/apps/bitfun-desktop.png b/src/apps/desktop/icons/hicolor/512x512/apps/bitfun-desktop.png new file mode 100644 index 00000000..4acbf76f Binary files /dev/null and b/src/apps/desktop/icons/hicolor/512x512/apps/bitfun-desktop.png differ diff --git a/src/apps/desktop/icons/hicolor/64x64/apps/bitfun-desktop.png b/src/apps/desktop/icons/hicolor/64x64/apps/bitfun-desktop.png new file mode 100644 index 00000000..0b67e2c0 Binary files /dev/null and b/src/apps/desktop/icons/hicolor/64x64/apps/bitfun-desktop.png differ diff --git a/src/apps/desktop/icons/hicolor/96x96/apps/bitfun-desktop.png b/src/apps/desktop/icons/hicolor/96x96/apps/bitfun-desktop.png new file mode 100644 index 00000000..533cecea Binary files /dev/null and b/src/apps/desktop/icons/hicolor/96x96/apps/bitfun-desktop.png differ diff --git a/src/apps/desktop/scripts/post-install-icons.sh b/src/apps/desktop/scripts/post-install-icons.sh new file mode 100755 index 00000000..cb62a9f5 --- /dev/null +++ b/src/apps/desktop/scripts/post-install-icons.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# post-install script: install multi-size icons to hicolor theme +# Tauri only installs 1024x1024; this adds smaller sizes for taskbar/dock/alt-tab + +ICON_SRC="/usr/lib/BitFun/share/icons" +ICON_DST_BASE="/usr/share/icons/hicolor" + +# Try multiple possible source locations +for src_dir in \ + "/usr/lib/BitFun/share/icons" \ + "/opt/bitfun/share/icons" \ + "/usr/share/bitfun/icons"; do + if [ -d "$src_dir/hicolor" ]; then + ICON_SRC="$src_dir/hicolor" + break + fi +done + +if [ ! -d "$ICON_SRC" ]; then + exit 0 +fi + +# Copy all icon sizes to system hicolor theme +cp -rn "$ICON_SRC"/* "$ICON_DST_BASE/" 2>/dev/null || true + +# Update icon cache +if command -v gtk-update-icon-cache &>/dev/null; then + gtk-update-icon-cache -f "$ICON_DST_BASE" 2>/dev/null || true +fi + +exit 0 diff --git a/src/apps/desktop/tauri.conf.json b/src/apps/desktop/tauri.conf.json index 0335b048..69bf611c 100644 --- a/src/apps/desktop/tauri.conf.json +++ b/src/apps/desktop/tauri.conf.json @@ -24,7 +24,21 @@ "depends": [ "libwebkit2gtk-4.1-0", "libgtk-3-0" - ] + ], + "files": { + "icons/hicolor/16x16/apps/bitfun-desktop.png": "/usr/share/icons/hicolor/16x16/apps/bitfun-desktop.png", + "icons/hicolor/32x32/apps/bitfun-desktop.png": "/usr/share/icons/hicolor/32x32/apps/bitfun-desktop.png", + "icons/hicolor/48x48/apps/bitfun-desktop.png": "/usr/share/icons/hicolor/48x48/apps/bitfun-desktop.png", + "icons/hicolor/64x64/apps/bitfun-desktop.png": "/usr/share/icons/hicolor/64x64/apps/bitfun-desktop.png", + "icons/hicolor/96x96/apps/bitfun-desktop.png": "/usr/share/icons/hicolor/96x96/apps/bitfun-desktop.png", + "icons/hicolor/128x128/apps/bitfun-desktop.png": "/usr/share/icons/hicolor/128x128/apps/bitfun-desktop.png", + "icons/hicolor/256x256/apps/bitfun-desktop.png": "/usr/share/icons/hicolor/256x256/apps/bitfun-desktop.png", + "icons/hicolor/512x512/apps/bitfun-desktop.png": "/usr/share/icons/hicolor/512x512/apps/bitfun-desktop.png" + }, + "postInstallScript": "scripts/post-install-icons.sh" + }, + "appimage": { + "bundleMediaFramework": false } } }, diff --git a/src/web-ui/public/Logo-ICON.png b/src/web-ui/public/Logo-ICON.png index e250ea97..2d84e948 100644 Binary files a/src/web-ui/public/Logo-ICON.png and b/src/web-ui/public/Logo-ICON.png differ diff --git a/src/web-ui/src/app/components/SplashScreen/SplashScreen.scss b/src/web-ui/src/app/components/SplashScreen/SplashScreen.scss index 6919e640..5783c3a9 100644 --- a/src/web-ui/src/app/components/SplashScreen/SplashScreen.scss +++ b/src/web-ui/src/app/components/SplashScreen/SplashScreen.scss @@ -16,7 +16,9 @@ display: flex; align-items: center; justify-content: center; - background: var(--color-bg-primary); + // Explicit dark background as fallback for Linux WebKitGTK + // where CSS variable might not load synchronously + background: var(--color-bg-primary, #121214); pointer-events: none; // ── Exit state ───────────────────────────────────────────────────────────── @@ -45,6 +47,8 @@ .splash-screen__logo-wrap { animation: splash-logo-idle 3.2s ease-in-out infinite; + // WebKit prefix for Linux WebKitGTK compatibility + -webkit-animation: splash-logo-idle 3.2s ease-in-out infinite; } .splash-screen__logo { @@ -53,6 +57,8 @@ height: 112px; border-radius: $size-radius-lg; user-select: none; + // Ensure proper rendering on Linux + -webkit-user-select: none; } // ── Keyframes ───────────────────────────────────────────────────────────────── @@ -60,11 +66,11 @@ // Idle logo: soft opacity pulse with a slight breathing scale @keyframes splash-logo-idle { 0%, 100% { - opacity: 0.38; + opacity: 0.85; transform: scale(0.98); } 50% { - opacity: 0.98; + opacity: 1; transform: scale(1); } }