diff --git a/resources/windows/download_and_build.sh b/resources/windows/download_and_build.sh
index a0a5a3b..273087b 100755
--- a/resources/windows/download_and_build.sh
+++ b/resources/windows/download_and_build.sh
@@ -26,7 +26,8 @@ cp ../icons/syng.ico src/
 # docker run --volume "$(pwd)/src:/src/" batonogov/pyinstaller-linux:latest "pyinstaller --onefile syng/main.py"
 # rm -rf src/build
 # rm -rf src/dist
-docker run --volume "$(pwd)/src:/src/" batonogov/pyinstaller-windows:latest "pyinstaller --onefile -w -i'.\syng.ico' --add-binary '.\mpv.exe;.' --add-binary '.\vulkan-1.dll;.' --add-binary '.\ffmpeg.exe;.' syng/main.py"
+# docker run --volume "$(pwd)/src:/src/" batonogov/pyinstaller-windows:latest "pyinstaller --onefile -w -i'.\syng.ico' --add-data='.\syng\static\syng.png;.\static' --add-binary '.\mpv.exe;.' --add-binary '.\vulkan-1.dll;.' --add-binary '.\ffmpeg.exe;.' syng/main.py"
+docker run --volume "$(pwd)/src:/src/" batonogov/pyinstaller-windows:latest "pyinstaller -F -w -i'.\syng.ico' --add-data='.\syng.ico;.' --add-binary '.\mpv.exe;.' --add-binary '.\vulkan-1.dll;.' --add-binary '.\ffmpeg.exe;.' syng/main.py"
 
 # cd syng-2.0.1
 # wine python -m poetry install -E client
diff --git a/syng/gui.py b/syng/gui.py
index 09f0b3c..afd95be 100644
--- a/syng/gui.py
+++ b/syng/gui.py
@@ -1,4 +1,5 @@
 from io import BytesIO
+import sys
 import logging
 from logging.handlers import QueueListener
 from multiprocessing import Process, Queue
@@ -8,12 +9,22 @@ import os
 import builtins
 from functools import partial
 import random
-from typing import Any, Optional
+from typing import TYPE_CHECKING, Any, Optional
 import multiprocessing
 import secrets
 import string
 import signal
 
+try:
+    if not TYPE_CHECKING:
+        from ctypes import windll
+
+        appid = "rocks.syng.Syng.2.0.1"
+        windll.shell32.SetCurrentProcessExplicitAppUserModelID(appid)
+except ImportError:
+    pass
+
+
 from PyQt6.QtCore import QTimer
 from PyQt6.QtGui import QCloseEvent, QIcon, QPixmap
 from PyQt6.QtWidgets import (
@@ -379,13 +390,12 @@ class SyngGui(QMainWindow):
         super().__init__()
         self.setWindowTitle("Syng")
 
-        rel_path = os.path.dirname(__file__)
-        qt_img = QPixmap(os.path.join(rel_path, "static/syng.png"))
-        self.qt_icon = QIcon(qt_img)
-        self.setWindowIcon(self.qt_icon)
+        if os.name != "nt":
+            rel_path = os.path.dirname(__file__)
+            qt_img = QPixmap(os.path.join(rel_path, "static", "syng.png"))
+            self.setWindowIcon(QIcon(qt_img))
 
         self.syng_server: Optional[Process] = None
-        # self.syng_client: Optional[subprocess.Popen[bytes]] = None
         self.syng_client: Optional[Process] = None
         self.syng_client_logging_listener: Optional[QueueListener] = None
 
@@ -553,9 +563,14 @@ class LoggingLabelHandler(logging.Handler):
 
 
 def run_gui() -> None:
+    base_dir = os.path.dirname(__file__)
+    if getattr(sys, "frozen", False) and hasattr(sys, "_MEIPASS"):
+        base_dir = sys._MEIPASS
+
     signal.signal(signal.SIGINT, signal.SIG_DFL)
 
     app = QApplication([])
+    app.setWindowIcon(QIcon(os.path.join(base_dir, "syng.ico")))
     app.setApplicationName("Syng")
     app.setDesktopFileName("rocks.syng.Syng")
     window = SyngGui()