From 55580535dbedb6dbbcf7a893bb22b502c609e976 Mon Sep 17 00:00:00 2001 From: Stephen Horvath Date: Wed, 17 Sep 2025 16:26:21 +1000 Subject: [PATCH] Add new logo and splash screen --- .../scalable/apps/au.stevetech.yafi.svg | 128 ++++-- .../apps/au.stevetech.yafi-symbolic.svg | 57 +-- logo.svg | 159 ++++++++ pyinstaller/splash.png | Bin 0 -> 36066 bytes pyinstaller/splash.svg | 384 ++++++++++++++++++ pyinstaller/yafi.spec | 11 + yafi/main.py | 15 + yafi/yafi.gresource | Bin 24293 -> 26643 bytes 8 files changed, 682 insertions(+), 72 deletions(-) create mode 100644 logo.svg create mode 100644 pyinstaller/splash.png create mode 100644 pyinstaller/splash.svg diff --git a/data/icons/hicolor/scalable/apps/au.stevetech.yafi.svg b/data/icons/hicolor/scalable/apps/au.stevetech.yafi.svg index 425bb1b..c76849b 100644 --- a/data/icons/hicolor/scalable/apps/au.stevetech.yafi.svg +++ b/data/icons/hicolor/scalable/apps/au.stevetech.yafi.svg @@ -1,36 +1,92 @@ - - - - -Created by potrace 1.11, written by Peter Selinger 2001-2013 - - - - - + + + + diff --git a/data/icons/hicolor/symbolic/apps/au.stevetech.yafi-symbolic.svg b/data/icons/hicolor/symbolic/apps/au.stevetech.yafi-symbolic.svg index 425bb1b..1a96af2 100644 --- a/data/icons/hicolor/symbolic/apps/au.stevetech.yafi-symbolic.svg +++ b/data/icons/hicolor/symbolic/apps/au.stevetech.yafi-symbolic.svg @@ -1,36 +1,21 @@ - - - - -Created by potrace 1.11, written by Peter Selinger 2001-2013 - - - - - + + + + diff --git a/logo.svg b/logo.svg new file mode 100644 index 0000000..6c14479 --- /dev/null +++ b/logo.svg @@ -0,0 +1,159 @@ + + + + diff --git a/pyinstaller/splash.png b/pyinstaller/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..c14a5b96f5b7886fe9c45ca60029e94ab24012d0 GIT binary patch literal 36066 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 literal 0 HcmV?d00001 diff --git a/pyinstaller/splash.svg b/pyinstaller/splash.svg new file mode 100644 index 0000000..ce9602d --- /dev/null +++ b/pyinstaller/splash.svg @@ -0,0 +1,384 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + YAFI + Yet AnotherFramework Interface + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pyinstaller/yafi.spec b/pyinstaller/yafi.spec index 4e2a5e4..0d6d8ae 100755 --- a/pyinstaller/yafi.spec +++ b/pyinstaller/yafi.spec @@ -20,12 +20,23 @@ a = Analysis( optimize=2, ) pyz = PYZ(a.pure) +splash = Splash( + 'splash.png', + binaries=a.binaries, + datas=a.datas, + text_pos=[4, 480], + text_size=6, + minify_script=True, + always_on_top=True, +) exe = EXE( pyz, a.scripts, a.binaries, a.datas, + splash, + splash.binaries, [], name='YAFI', debug=False, diff --git a/yafi/main.py b/yafi/main.py index 4497a2d..97760d4 100644 --- a/yafi/main.py +++ b/yafi/main.py @@ -66,6 +66,11 @@ class YafiApplication(Adw.Application): if not self.win: self.win = YafiWindow(application=self) + # Update the splash screen + if getattr(sys, 'frozen', False): + import pyi_splash + pyi_splash.update_text("Detecting EC") + try: self.cros_ec = get_cros_ec() pass @@ -81,9 +86,16 @@ class YafiApplication(Adw.Application): + "If you are using a Framework Laptop, there are additional troubleshooting steps in the README." ) self.show_error("EC Initalisation Error", message) + + if getattr(sys, 'frozen', False): + pyi_splash.close() + self.win.present() return + if getattr(sys, 'frozen', False): + pyi_splash.update_text("Building Interface") + self.change_page(self.win.content, ThermalsPage()) pages = ( @@ -111,6 +123,9 @@ class YafiApplication(Adw.Application): self.win.navbar.connect("row-activated", lambda box, row: switch_page(row.get_index())) + if getattr(sys, 'frozen', False): + pyi_splash.close() + self.win.present() def on_about_action(self, *args): diff --git a/yafi/yafi.gresource b/yafi/yafi.gresource index 619346c9a2393c749111a2c5bc4b84f7a89547d0..45260153e9671cc9018cf7227f85fd1ef44cb65d 100644 GIT binary patch literal 26643 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 O;V&J#&Yo?aoA?u2^3B}<