diff --git a/README.md b/README.md
index 17fd521..e7b7602 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,8 @@
-# Iridium OS Installer
+
+

+
+ # Iridium OS Installer
+
> [!WARNING]
> For now this is only a mockup and not actually functional.
diff --git a/data/org.iridium.Installer.desktop b/data/org.iridium.Installer.desktop
new file mode 100644
index 0000000..336ad71
--- /dev/null
+++ b/data/org.iridium.Installer.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Iridium Installer
+Comment=Install Iridium OS on your computer
+Exec=iridium-installer
+Icon=org.iridium.Installer
+Type=Application
+Categories=System;Settings;
+StartupNotify=true
+Terminal=false
diff --git a/iridium_installer/ui/pages/welcome.py b/iridium_installer/ui/pages/welcome.py
index 412b55b..906b376 100644
--- a/iridium_installer/ui/pages/welcome.py
+++ b/iridium_installer/ui/pages/welcome.py
@@ -1,8 +1,10 @@
+import os
+
import gi
gi.require_version("Gtk", "4.0")
gi.require_version("Adw", "1")
-from gi.repository import Adw, Gtk
+from gi.repository import Adw, Gdk, Gtk
class WelcomePage(Adw.Bin):
@@ -12,13 +14,30 @@ class WelcomePage(Adw.Bin):
page = Adw.StatusPage()
page.set_title("Welcome to Iridium OS")
page.set_description("The installation will begin shortly")
- page.set_icon_name("system-software-install-symbolic")
+
+ # Load custom icon
+ icon_path = os.path.join(
+ os.path.dirname(__file__),
+ "..",
+ "..",
+ "..",
+ "data",
+ "icons",
+ "org.iridium.Installer.svg",
+ )
+ if os.path.exists(icon_path):
+ try:
+ paintable = Gdk.Texture.new_from_filename(icon_path)
+ page.set_paintable(paintable)
+ except Exception:
+ page.set_icon_name("system-software-install-symbolic")
+ else:
+ page.set_icon_name("system-software-install-symbolic")
# Content Box
box = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
box.set_spacing(12)
box.set_halign(Gtk.Align.CENTER)
- box.set_valign(Gtk.Align.CENTER)
lbl = Gtk.Label(label="Select your language:")
lbl.add_css_class("heading")
@@ -29,7 +48,6 @@ class WelcomePage(Adw.Bin):
"English",
]
dropdown = Gtk.DropDown.new_from_strings(languages)
- dropdown.set_margin_bottom(20)
box.append(dropdown)
page.set_child(box)
diff --git a/iridium_installer/ui/window.py b/iridium_installer/ui/window.py
index abf1daf..fc94331 100644
--- a/iridium_installer/ui/window.py
+++ b/iridium_installer/ui/window.py
@@ -21,6 +21,7 @@ class InstallerWindow(Adw.ApplicationWindow):
self.set_default_size(900, 650)
self.set_title("Iridium Installer" + (" (MOCK MODE)" if mock_mode else ""))
+ self.set_icon_name("org.iridium.Installer")
self.toolbar_view = Adw.ToolbarView()
self.set_content(self.toolbar_view)
diff --git a/run.sh b/run.sh
index 2bff674..f762fbe 100755
--- a/run.sh
+++ b/run.sh
@@ -1,4 +1,32 @@
#!/bin/bash
+
+# Install icons to ~/.local/share/icons if not already installed
+ICON_DIR="$HOME/.local/share/icons/hicolor/128x128/apps"
+SYMBOLIC_DIR="$HOME/.local/share/icons/hicolor/symbolic/apps"
+
+mkdir -p "$ICON_DIR"
+mkdir -p "$SYMBOLIC_DIR"
+
+# Get script directory
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+
+# Copy main icon if not exists or if source is newer
+if [ ! -f "$ICON_DIR/org.iridium.Installer.svg" ] || [ "${SCRIPT_DIR}/data/icons/org.iridium.Installer.svg" -nt "$ICON_DIR/org.iridium.Installer.svg" ]; then
+ cp "${SCRIPT_DIR}/data/icons/org.iridium.Installer.svg" "$ICON_DIR/"
+ echo "Installed 128x128 icon"
+fi
+
+# Copy symbolic icon if not exists or if source is newer
+if [ ! -f "$SYMBOLIC_DIR/org.iridium.Installer-symbolic.svg" ] || [ "${SCRIPT_DIR}/data/icons/org.iridium.Installer-symbolic.svg" -nt "$SYMBOLIC_DIR/org.iridium.Installer-symbolic.svg" ]; then
+ cp "${SCRIPT_DIR}/data/icons/org.iridium.Installer-symbolic.svg" "$SYMBOLIC_DIR/org.iridium.Installer-symbolic.svg"
+ echo "Installed symbolic icon"
+fi
+
+# Update icon cache if gtk-update-icon-cache exists
+if command -v gtk-update-icon-cache &> /dev/null; then
+ gtk-update-icon-cache -f -t "$HOME/.local/share/icons/hicolor" 2>/dev/null || true
+fi
+
export GSETTINGS_SCHEMA_DIR=.
python3 -m iridium_installer.main "$@"