Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package faugus-launcher for openSUSE:Factory 
checked in at 2026-04-26 21:11:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/faugus-launcher (Old)
 and      /work/SRC/openSUSE:Factory/.faugus-launcher.new.11940 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "faugus-launcher"

Sun Apr 26 21:11:53 2026 rev:22 rq:1349310 version:1.18.7

Changes:
--------
--- /work/SRC/openSUSE:Factory/faugus-launcher/faugus-launcher.changes  
2026-04-22 17:00:08.517355525 +0200
+++ 
/work/SRC/openSUSE:Factory/.faugus-launcher.new.11940/faugus-launcher.changes   
    2026-04-26 21:14:34.557419528 +0200
@@ -1,0 +2,12 @@
+Sat Apr 25 22:09:01 UTC 2026 - Jehu Marcos Herrera Puentes 
<[email protected]>
+
+- Bump to version 1.18.7
+- Upstream changes:
+  * Added notification sound file to license
+- For version 1.18.6
+  * Removed launchers icons
+  * Fixed multiple system tray icons
+  * Updated EA installation
+  * Now the power menu is opened by pressing ESC
+
+-------------------------------------------------------------------

Old:
----
  faugus-launcher-1.18.5.tar.xz

New:
----
  faugus-launcher-1.18.7.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ faugus-launcher.spec ++++++
--- /var/tmp/diff_new_pack.neJqqM/_old  2026-04-26 21:14:35.081440939 +0200
+++ /var/tmp/diff_new_pack.neJqqM/_new  2026-04-26 21:14:35.081440939 +0200
@@ -19,7 +19,7 @@
 %{?single_pythons_311plus}
 
 Name:           faugus-launcher
-Version:        1.18.5
+Version:        1.18.7
 Release:        0
 Summary:        A simple and lightweight app for running Windows games using 
UMU-Launcher
 License:        MIT and CC-BY-4.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.neJqqM/_old  2026-04-26 21:14:35.113442246 +0200
+++ /var/tmp/diff_new_pack.neJqqM/_new  2026-04-26 21:14:35.117442409 +0200
@@ -3,7 +3,7 @@
   <service name="tar_scm" mode="manual">
     <param name="scm">git</param>
     <param name="url">https://github.com/Faugus/faugus-launcher.git</param>
-    <param name="revision">1.18.5</param>
+    <param name="revision">1.18.7</param>
     <param name="changesgenerate">enable</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v?([0-9]+(\.[0-9])*)(\+0)?</param>

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.neJqqM/_old  2026-04-26 21:14:35.157444044 +0200
+++ /var/tmp/diff_new_pack.neJqqM/_new  2026-04-26 21:14:35.161444207 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/Faugus/faugus-launcher.git</param>
-              <param 
name="changesrevision">934ff522e227daa8c19ad312539fc9b56820eaa9</param></service></servicedata>
+              <param 
name="changesrevision">27f62aeb41af3f8f3d56aeeeb78b1f108d6a7911</param></service></servicedata>
 (No newline at EOF)
 

++++++ faugus-launcher-1.18.5.tar.xz -> faugus-launcher-1.18.7.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.5/README.md 
new/faugus-launcher-1.18.7/README.md
--- old/faugus-launcher-1.18.5/README.md        2026-04-21 22:18:11.000000000 
+0200
+++ new/faugus-launcher-1.18.7/README.md        2026-04-25 23:32:14.000000000 
+0200
@@ -38,7 +38,7 @@
 sudo apt update
 sudo apt install -y wget
 mkdir -p ~/faugus-launcher
-wget -P ~/faugus-launcher 
https://github.com/Faugus/faugus-launcher/releases/download/1.18.5/faugus-launcher_1.18.5-1_all.deb
+wget -P ~/faugus-launcher 
https://github.com/Faugus/faugus-launcher/releases/download/1.18.7/faugus-launcher_1.18.7-1_all.deb
 sudo apt install -y ~/faugus-launcher/*.deb
 sudo rm -r ~/faugus-launcher
 ```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.5/assets/LICENSE 
new/faugus-launcher-1.18.7/assets/LICENSE
--- old/faugus-launcher-1.18.5/assets/LICENSE   2026-04-21 22:18:11.000000000 
+0200
+++ new/faugus-launcher-1.18.7/assets/LICENSE   2026-04-25 23:32:14.000000000 
+0200
@@ -8,6 +8,7 @@
 - faugus-kill-symbolic.svg
 - faugus-launcher.svg
 - faugus-mono.svg
+- faugus-notification.ogg
 - faugus-play-symbolic.svg
 - faugus-settings-symbolic.svg
 - faugus-stop-symbolic.svg
Binary files old/faugus-launcher-1.18.5/assets/faugus-battlenet.png and 
new/faugus-launcher-1.18.7/assets/faugus-battlenet.png differ
Binary files old/faugus-launcher-1.18.5/assets/faugus-ea.png and 
new/faugus-launcher-1.18.7/assets/faugus-ea.png differ
Binary files old/faugus-launcher-1.18.5/assets/faugus-epic-games.png and 
new/faugus-launcher-1.18.7/assets/faugus-epic-games.png differ
Binary files old/faugus-launcher-1.18.5/assets/faugus-rockstar.png and 
new/faugus-launcher-1.18.7/assets/faugus-rockstar.png differ
Binary files old/faugus-launcher-1.18.5/assets/faugus-ubisoft-connect.png and 
new/faugus-launcher-1.18.7/assets/faugus-ubisoft-connect.png differ
Binary files old/faugus-launcher-1.18.5/assets/faugus-wargaming.png and 
new/faugus-launcher-1.18.7/assets/faugus-wargaming.png differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.5/assets/meson.build 
new/faugus-launcher-1.18.7/assets/meson.build
--- old/faugus-launcher-1.18.5/assets/meson.build       2026-04-21 
22:18:11.000000000 +0200
+++ new/faugus-launcher-1.18.7/assets/meson.build       2026-04-25 
23:32:14.000000000 +0200
@@ -4,16 +4,6 @@
 )
 
 install_data(
-  'faugus-battlenet.png',
-  'faugus-ea.png',
-  'faugus-epic-games.png',
-  'faugus-ubisoft-connect.png',
-  'faugus-rockstar.png',
-  'faugus-wargaming.png',
-  install_dir: get_option('datadir') / 'icons' / 'hicolor' / '256x256' / 
'apps',
-)
-
-install_data(
   'faugus-add-symbolic.svg',
   'faugus-exit-symbolic.svg',
   'faugus-kill-symbolic.svg',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/faugus-launcher-1.18.5/data/faugus-launcher.metainfo.xml 
new/faugus-launcher-1.18.7/data/faugus-launcher.metainfo.xml
--- old/faugus-launcher-1.18.5/data/faugus-launcher.metainfo.xml        
2026-04-21 22:18:11.000000000 +0200
+++ new/faugus-launcher-1.18.7/data/faugus-launcher.metainfo.xml        
2026-04-25 23:32:14.000000000 +0200
@@ -82,11 +82,12 @@
     </screenshot>
   </screenshots>
   <releases>
-    <release version="1.18.5-1" date="2026-04-21">
+    <release version="1.18.7-1" date="2026-04-25">
       <description>
         <ul>
-          <li>Hotfix: launcher not being installed due to recent changes.</li>
-          <li>Separated start on boot from system tray icon.</li>
+          <li>Fixed multiple icons showing in the system tray.</li>
+          <li>Removed launchers icons to prevent copyright issues.</li>
+          <li>Now the power menu is opened by pressing ESC.</li>
         </ul>
       </description>
     </release>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/faugus-launcher-1.18.5/data/io.github.Faugus.faugus-launcher.metainfo.xml 
new/faugus-launcher-1.18.7/data/io.github.Faugus.faugus-launcher.metainfo.xml
--- 
old/faugus-launcher-1.18.5/data/io.github.Faugus.faugus-launcher.metainfo.xml   
    2026-04-21 22:18:11.000000000 +0200
+++ 
new/faugus-launcher-1.18.7/data/io.github.Faugus.faugus-launcher.metainfo.xml   
    2026-04-25 23:32:14.000000000 +0200
@@ -88,11 +88,12 @@
     </screenshot>
   </screenshots>
   <releases>
-    <release version="1.18.5-1" date="2026-04-21">
+    <release version="1.18.7-1" date="2026-04-25">
       <description>
         <ul>
-          <li>Hotfix: launcher not being installed due to recent changes.</li>
-          <li>Separated start on boot from system tray icon.</li>
+          <li>Fixed multiple icons showing in the system tray.</li>
+          <li>Removed launchers icons to prevent copyright issues.</li>
+          <li>Now the power menu is opened by pressing ESC.</li>
         </ul>
       </description>
     </release>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.5/faugus/ea_fix.py 
new/faugus-launcher-1.18.7/faugus/ea_fix.py
--- old/faugus-launcher-1.18.5/faugus/ea_fix.py 2026-04-21 22:18:11.000000000 
+0200
+++ new/faugus-launcher-1.18.7/faugus/ea_fix.py 2026-04-25 23:32:14.000000000 
+0200
@@ -1,24 +1,33 @@
 import json
 import os
+import re
 
 from faugus.path_manager import *
 
 games_json = PathManager.user_config('faugus-launcher/games.json')
 
 def update_ea_path(prefix):
-    new_path = f"{prefix}/drive_c/Program Files/Electronic Arts/EA Desktop/EA 
Desktop/EALauncher.exe"
+    ea_base_dir = f"{prefix}/drive_c/Program Files/Electronic Arts/EA Desktop"
+    new_path = f"{ea_base_dir}/EA Desktop/EALauncher.exe"
 
-    try:
-        with open(os.path.join(prefix, "drive_c", "ProgramData", "EA Desktop", 
"machine.ini"), "r") as machine_ini:
-            for l in machine_ini.readlines():
-                if "machine.telemetry.updatestats" in l:
-                    launcher_version = json.loads(l.split("=")[1])["version"]
-                    new_path = f"{prefix}/drive_c/Program Files/Electronic 
Arts/EA Desktop/{launcher_version}/EA Desktop/EALauncher.exe"
-                    break
-    except FileNotFoundError:
-        print("machine.ini not found")
-    except KeyError:
-        print("version not found in updatestats")
+    if os.path.exists(ea_base_dir):
+        try:
+            folders = [f for f in os.listdir(ea_base_dir) if 
os.path.isdir(os.path.join(ea_base_dir, f))]
+
+            versions = []
+            for folder in folders:
+                numbers = [int(n) for n in re.findall(r'\d+', folder)]
+                if numbers and folder[0].isdigit():
+                    versions.append((numbers, folder))
+
+            if versions:
+                versions.sort(key=lambda x: x[0], reverse=True)
+                folder_version = versions[0][1]
+                new_path = f"{ea_base_dir}/{folder_version}/EA 
Desktop/EALauncher.exe"
+                print(f"Latest version found: {folder_version}")
+
+        except Exception as e:
+            print(f"Error fetching version in folder: {e}")
 
     if os.path.exists(games_json):
         try:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.5/faugus/gamepad.py 
new/faugus-launcher-1.18.7/faugus/gamepad.py
--- old/faugus-launcher-1.18.5/faugus/gamepad.py        2026-04-21 
22:18:11.000000000 +0200
+++ new/faugus-launcher-1.18.7/faugus/gamepad.py        2026-04-25 
23:32:14.000000000 +0200
@@ -153,7 +153,7 @@
         elif button == btn["rb"]:
             self.on_button_settings_clicked(None)
         elif button == btn["start"]:
-            GLib.idle_add(lambda: self.on_button_bye_clicked(None))
+            GLib.idle_add(lambda: self.show_power_menu(None))
 
 def _handle_treeview_confirm(treeview):
     path, column = treeview.get_cursor()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.5/faugus/launcher.py 
new/faugus-launcher-1.18.7/faugus/launcher.py
--- old/faugus-launcher-1.18.5/faugus/launcher.py       2026-04-21 
22:18:11.000000000 +0200
+++ new/faugus-launcher-1.18.7/faugus/launcher.py       2026-04-25 
23:32:14.000000000 +0200
@@ -22,7 +22,7 @@
 from faugus.steam_setup import *
 from faugus.ea_fix import *
 
-VERSION = "1.18.5"
+VERSION = "1.18.7"
 IS_FLATPAK = 'FLATPAK_ID' in os.environ or os.path.exists('/.flatpak-info')
 
 faugus_banner = PathManager.system_data('faugus-launcher/faugus-banner.png')
@@ -72,13 +72,6 @@
     ]
     lsfgvk_path = next((p for p in lsfgvk_possible_paths if p.exists()), 
lsfgvk_possible_paths[-1])
 
-epic_icon = PathManager.get_icon('faugus-epic-games.png')
-battle_icon = PathManager.get_icon('faugus-battlenet.png')
-ubisoft_icon = PathManager.get_icon('faugus-ubisoft-connect.png')
-ea_icon = PathManager.get_icon('faugus-ea.png')
-rockstar_icon = PathManager.get_icon('faugus-rockstar.png')
-wargaming_icon = PathManager.get_icon('faugus-wargaming.png')
-
 launcher_path = PathManager.find_binary('faugus-launcher')
 umu_run = PathManager.user_data('faugus-launcher/umu-run')
 mangohud_dir = PathManager.find_binary('mangohud')
@@ -146,7 +139,7 @@
 
 class FaugusApp(Gtk.Application):
     def __init__(self, start_hidden=False):
-        super().__init__()
+        super().__init__(application_id="io.github.Faugus.faugus-launcher")
         self.window = None
         self.start_hidden = start_hidden
 
@@ -444,12 +437,8 @@
         if self.interface_mode != "List":
             if self.fullscreen_activated:
                 self.fullscreen_activated = True
-                self.grid_corner.set_visible(True)
-                self.grid_left.set_margin_start(70)
             else:
                 self.fullscreen_activated = False
-                self.grid_corner.set_visible(False)
-                self.grid_left.set_margin_start(0)
         self.present()
 
     def on_quit(self, *_):
@@ -621,17 +610,6 @@
         button_kill.set_margin_top(10)
         button_kill.set_margin_bottom(10)
 
-        # Create button for exiting
-        button_bye = Gtk.Button()
-        button_bye.connect("clicked", self.on_button_bye_clicked)
-        button_bye.set_can_focus(False)
-        button_bye.set_size_request(50, 50)
-        
button_bye.set_image(Gtk.Image.new_from_icon_name("faugus-exit-symbolic", 
Gtk.IconSize.BUTTON))
-        button_bye.set_margin_start(10)
-        button_bye.set_margin_top(10)
-        button_bye.set_margin_bottom(10)
-        button_bye.set_margin_end(10)
-
         # Create button for settings
         button_settings = Gtk.Button()
         button_settings.connect("clicked", self.on_button_settings_clicked)
@@ -681,9 +659,6 @@
         grid_right.add(button_kill)
         grid_right.add(self.button_play)
 
-        self.grid_corner = Gtk.Grid()
-        self.grid_corner.add(button_bye)
-
         # Create scrolled window for game list
         scroll_box = Gtk.ScrolledWindow()
         scroll_box.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
@@ -721,7 +696,6 @@
         self.box_bottom.pack_start(self.grid_left, True, True, 0)
         self.box_bottom.pack_start(grid_middle, False, False, 0)
         self.box_bottom.pack_start(grid_right, True, True, 0)
-        self.box_bottom.pack_end(self.grid_corner, False, False, 0)
 
         self.box_main.pack_start(self.box_top, True, True, 0)
         self.box_main.pack_end(self.box_bottom, False, True, 0)
@@ -733,14 +707,10 @@
         self.show_all()
         if self.start_fullscreen:
             self.fullscreen_activated = True
-            self.grid_corner.set_visible(True)
-            self.grid_left.set_margin_start(70)
         else:
             self.fullscreen_activated = False
-            self.grid_corner.set_visible(False)
-            self.grid_left.set_margin_start(0)
 
-    def on_button_bye_clicked(self, widget):
+    def show_power_menu(self, widget):
         dialog = Gtk.Dialog(title="Faugus Launcher", parent=self)
         dialog.set_modal(True)
         dialog.set_resizable(False)
@@ -1364,15 +1334,15 @@
                 if self.get_window().get_state() & Gdk.WindowState.FULLSCREEN:
                     self.fullscreen_activated = False
                     self.unfullscreen()
-                    self.grid_corner.set_visible(False)
-                    self.grid_left.set_margin_start(0)
                 else:
                     self.fullscreen_activated = True
                     self.fullscreen()
-                    self.grid_corner.set_visible(True)
-                    self.grid_left.set_margin_start(70)
                 return True
 
+        if event.keyval == Gdk.KEY_Escape and getattr(self, 
'fullscreen_activated', False):
+            self.show_power_menu(widget)
+            return True
+
         game = self.selected()
         if not game:
             return
@@ -2542,69 +2512,39 @@
         self.label_download2.set_visible(False)
         self.label_download2.set_size_request(256, -1)
 
-        self.button_finish_install = Gtk.Button(label=_("Finish installation"))
-        self.button_finish_install.connect("clicked", 
self.on_button_finish_install_clicked)
-        self.button_finish_install.set_size_request(150, -1)
-        self.button_finish_install.set_halign(Gtk.Align.CENTER)
-
         if launcher == "battle":
-            image_path = battle_icon
             self.label_download.set_text(_("Downloading") + " Battle.net...")
             self.download_launcher("battle", title, title_formatted, runner, 
prefix, umu_run, game, desktop_shortcut_state, appmenu_shortcut_state, 
steam_shortcut_state, icon_temp, icon_final)
 
         elif launcher == "ea":
-            image_path = ea_icon
             self.label_download.set_text(_("Downloading") + " EA App...")
             self.download_launcher("ea", title, title_formatted, runner, 
prefix, umu_run, game, desktop_shortcut_state, appmenu_shortcut_state, 
steam_shortcut_state, icon_temp, icon_final)
 
         elif launcher == "epic":
-            image_path = epic_icon
             self.label_download.set_text(_("Downloading") + " Epic Games...")
             self.download_launcher("epic", title, title_formatted, runner, 
prefix, umu_run, game, desktop_shortcut_state, appmenu_shortcut_state, 
steam_shortcut_state, icon_temp, icon_final)
 
         elif launcher == "ubisoft":
-            image_path = ubisoft_icon
             self.label_download.set_text(_("Downloading") + " Ubisoft 
Connect...")
             self.download_launcher("ubisoft", title, title_formatted, runner, 
prefix, umu_run, game, desktop_shortcut_state, appmenu_shortcut_state, 
steam_shortcut_state, icon_temp, icon_final)
 
         elif launcher == "rockstar":
-            image_path = rockstar_icon
             self.label_download.set_text(_("Downloading") + " Rockstar 
Launcher...")
             self.download_launcher("rockstar", title, title_formatted, runner, 
prefix, umu_run, game, desktop_shortcut_state, appmenu_shortcut_state, 
steam_shortcut_state, icon_temp, icon_final)
 
         elif launcher == "wargaming":
-            image_path = wargaming_icon
             self.label_download.set_text(_("Downloading") + " Wargaming Game 
Center...")
             self.download_launcher("wargaming", title, title_formatted, 
runner, prefix, umu_run, game, desktop_shortcut_state, appmenu_shortcut_state, 
steam_shortcut_state, icon_temp, icon_final)
 
-        else:
-            image_path = faugus_png
-
-        pixbuf = GdkPixbuf.Pixbuf.new_from_file(image_path)
-        pixbuf = pixbuf.scale_simple(128, 128, GdkPixbuf.InterpType.BILINEAR)
-
-        image = Gtk.Image.new_from_pixbuf(pixbuf)
-        image.set_margin_top(20)
-        image.set_margin_start(20)
-        image.set_margin_end(20)
-        image.set_margin_bottom(20)
-
-        grid_launcher.attach(image, 0, 0, 1, 1)
         grid_launcher.attach(grid_labels, 0, 1, 1, 1)
-
         grid_labels.attach(self.label_download, 0, 0, 1, 1)
         grid_labels.attach(self.bar_download, 0, 1, 1, 1)
         grid_labels.attach(self.label_download2, 0, 2, 1, 1)
-        #grid_labels.attach(self.button_finish_install, 0, 3, 1, 1)
 
         self.box_main.add(self.box_launcher)
         self.box_main.remove(self.box_top)
         self.box_main.remove(self.box_bottom)
         self.box_main.show_all()
-        #self.button_finish_install.set_visible(False)
-
-    def on_button_finish_install_clicked(self):
-        self.on_button_kill_clicked(widget)
 
     def monitor_process(self, processo, game, desktop_shortcut_state, 
appmenu_shortcut_state, steam_shortcut_state, icon_temp, icon_final, title):
         retcode = processo.poll()
@@ -2622,6 +2562,11 @@
                 game.path = update_ea_path(game.prefix)
 
             if os.path.exists(game.path):
+                extracted_icon = self.extract_best_icon(game.path, game.gameid)
+
+                if extracted_icon:
+                    icon_temp = extracted_icon
+                    icon_final = icon_temp
                 print(f"{title} installed.")
                 self.add_shortcut(game, desktop_shortcut_state, "desktop", 
icon_temp, icon_final)
                 self.add_shortcut(game, appmenu_shortcut_state, "appmenu", 
icon_temp, icon_final)
@@ -2644,16 +2589,55 @@
             if self.interface_mode != "List":
                 if self.fullscreen_activated:
                     self.fullscreen_activated = True
-                    self.grid_corner.set_visible(True)
-                    self.grid_left.set_margin_start(70)
                 else:
                     self.fullscreen_activated = False
-                    self.grid_corner.set_visible(False)
-                    self.grid_left.set_margin_start(0)
             return False
 
         return True
 
+    def extract_best_icon(self, exe_path, gameid):
+        icons_dir = PathManager.user_config('faugus-launcher/icons')
+        tmp_dir = PathManager.user_config('faugus-launcher/icon_extract')
+
+        shutil.rmtree(tmp_dir, ignore_errors=True)
+        os.makedirs(tmp_dir, exist_ok=True)
+        os.makedirs(icons_dir, exist_ok=True)
+
+        extracted = os.path.join(tmp_dir, "icon.ico")
+
+        if subprocess.run(["icoextract", exe_path, extracted],
+                        capture_output=True).returncode != 0:
+            return None
+
+        magick = shutil.which("magick") or shutil.which("convert")
+        if not magick:
+            return None
+
+        subprocess.run([magick, extracted, os.path.join(tmp_dir, 
"icon_%d.png")])
+        os.remove(extracted)
+
+        best, size = None, 0
+
+        for f in Path(tmp_dir).glob("*.png"):
+            r = subprocess.run(
+                [magick, "identify", "-format", "%wx%h", str(f)],
+                capture_output=True, text=True
+            )
+
+            if r.returncode == 0 and r.stdout:
+                w, h = map(int, r.stdout.strip().split("x"))
+                if w * h > size:
+                    best, size = str(f), w * h
+
+        if not best:
+            return None
+
+        final = os.path.join(icons_dir, f"{gameid}.ico")
+        subprocess.run([magick, best, final])
+
+        shutil.rmtree(tmp_dir)
+        return final
+
     def download_launcher(self, launcher, title, title_formatted, runner, 
prefix, umu_run, game, desktop_shortcut_state, appmenu_shortcut_state, 
steam_shortcut_state, icon_temp, icon_final):
             urls = {"ea": 
"https://origin-a.akamaihd.net/EA-Desktop-Client-Download/installer-releases/EAappInstaller.exe";,
                 "epic": 
"https://github.com/Faugus/components/releases/download/v1.0.0/epic.msi";,
@@ -3037,12 +3021,8 @@
         if self.interface_mode != "List":
             if self.fullscreen_activated:
                 self.fullscreen_activated = True
-                self.grid_corner.set_visible(True)
-                self.grid_left.set_margin_start(70)
             else:
                 self.fullscreen_activated = False
-                self.grid_corner.set_visible(False)
-                self.grid_left.set_margin_start(0)
 
     def save_games(self):
         try:
@@ -5772,32 +5752,39 @@
             self.checkbox_shortcut_appmenu.set_active(False)
             self.checkbox_shortcut_steam.set_active(False)
             self.entry_protonfix.set_text("")
-            self.entry_launch_arguments.set_text("")
             self.entry_game_arguments.set_text("")
             self.checkbox_mangohud.set_active(self.default_mangohud)
             self.checkbox_gamemode.set_active(self.default_gamemode)
             
self.checkbox_disable_hidraw.set_active(self.default_disable_hidraw)
             self.checkbox_prevent_sleep.set_active(self.default_prevent_sleep)
-            self.addapp_enabled = False
-            self.addapp = ""
-            self.addapp_delay = ""
-            self.addapp_first = False
-            self.lossless_enabled = False
-            self.lossless_multiplier = 1
-            self.lossless_flow = 100
-            self.lossless_performance = False
-            self.lossless_hdr = False
-            self.lossless_present = "VSync/FIFO"
-            
self.combobox_steam_title.get_style_context().remove_class("combobox")
-            self.entry_title.get_style_context().remove_class("entry")
-            self.entry_prefix.get_style_context().remove_class("entry")
-            self.entry_path.get_style_context().remove_class("entry")
+
+            for w in (self.combobox_steam_title, self.entry_title,
+                    self.entry_prefix, self.entry_path):
+                w.get_style_context().remove_class("entry")
 
         cleanup_fields()
 
+        self.grid_title.set_visible(False)
+        self.grid_steam_title.set_visible(False)
+        self.grid_path.set_visible(False)
+        self.grid_runner.set_visible(False)
+        self.grid_prefix.set_visible(False)
+        self.button_winetricks.set_visible(False)
+        self.button_winecfg.set_visible(False)
+        self.button_run.set_visible(False)
+        self.grid_protonfix.set_visible(False)
+        self.grid_addapp.set_visible(False)
+        self.checkbox_disable_hidraw.set_visible(False)
+        self.checkbox_prevent_sleep.set_visible(True)
+        self.checkbox_shortcut_steam.set_visible(True)
+        self.grid_page2.set_visible(True)
+        self.tab_box2.set_visible(True)
+        self.notebook.set_show_tabs(True)
+        self.button_shortcut_icon.set_visible(True)
+        self.button_shortcut_icon.set_image(self.set_image_shortcut_icon())
+
         if active_id == "windows":
             self.grid_title.set_visible(True)
-            self.grid_steam_title.set_visible(False)
             self.grid_path.set_visible(True)
             self.grid_runner.set_visible(True)
             self.grid_prefix.set_visible(True)
@@ -5807,212 +5794,63 @@
             self.grid_protonfix.set_visible(True)
             self.grid_addapp.set_visible(True)
             self.checkbox_disable_hidraw.set_visible(True)
-            self.checkbox_prevent_sleep.set_visible(True)
-            self.button_shortcut_icon.set_image(self.set_image_shortcut_icon())
-            self.checkbox_shortcut_steam.set_visible(True)
-            self.grid_page2.set_visible(True)
-            self.tab_box2.set_visible(True)
-            self.notebook.set_show_tabs(True)
-        if active_id == "linux":
+            self.button_shortcut_icon.set_visible(True)
+
+        elif active_id == "linux":
             self.grid_title.set_visible(True)
-            self.grid_steam_title.set_visible(False)
             self.grid_path.set_visible(True)
-            self.grid_runner.set_visible(False)
-            self.grid_prefix.set_visible(False)
-            self.button_winetricks.set_visible(False)
-            self.button_winecfg.set_visible(False)
-            self.button_run.set_visible(False)
-            self.grid_protonfix.set_visible(False)
-            self.grid_addapp.set_visible(False)
-            self.checkbox_disable_hidraw.set_visible(False)
-            self.checkbox_disable_hidraw.set_active(False)
-            self.checkbox_prevent_sleep.set_visible(True)
-            self.button_shortcut_icon.set_image(self.set_image_shortcut_icon())
-            self.checkbox_shortcut_steam.set_visible(True)
-            self.grid_page2.set_visible(True)
-            self.tab_box2.set_visible(True)
-            self.notebook.set_show_tabs(True)
-        if active_id == "steam":
-            self.grid_title.set_visible(False)
+            self.button_shortcut_icon.set_visible(True)
+
+        elif active_id == "steam":
             self.grid_steam_title.set_visible(True)
-            self.grid_path.set_visible(False)
-            self.grid_runner.set_visible(False)
-            self.grid_prefix.set_visible(False)
-            self.button_winetricks.set_visible(False)
-            self.button_winecfg.set_visible(False)
-            self.button_run.set_visible(False)
-            self.grid_protonfix.set_visible(False)
-            self.grid_addapp.set_visible(False)
-            self.checkbox_disable_hidraw.set_visible(False)
-            self.checkbox_disable_hidraw.set_active(False)
-            self.checkbox_prevent_sleep.set_visible(True)
-            self.button_shortcut_icon.set_image(self.set_image_shortcut_icon())
             self.checkbox_shortcut_steam.set_visible(False)
             self.grid_page2.set_visible(False)
             self.tab_box2.set_visible(False)
             self.notebook.set_show_tabs(False)
-        elif active_id == "battle":
-            self.grid_title.set_visible(False)
-            self.grid_steam_title.set_visible(False)
-            self.grid_path.set_visible(False)
-            self.grid_runner.set_visible(True)
-            self.grid_prefix.set_visible(True)
-            self.button_winetricks.set_visible(True)
-            self.button_winecfg.set_visible(True)
-            self.button_run.set_visible(True)
-            self.grid_protonfix.set_visible(True)
-            self.grid_addapp.set_visible(False)
-            self.checkbox_disable_hidraw.set_visible(True)
-            self.checkbox_prevent_sleep.set_visible(True)
-            self.entry_launch_arguments.set_text("WINE_SIMULATE_WRITECOPY=1 
PROTON_ENABLE_WAYLAND=0")
-            self.entry_title.set_text(self.combobox_launcher.get_active_text())
-            self.entry_path.set_text(
-                f"{self.entry_prefix.get_text()}/drive_c/Program Files 
(x86)/Battle.net/Battle.net.exe")
-            shutil.copyfile(battle_icon, os.path.expanduser(self.icon_temp))
-            pixbuf = GdkPixbuf.Pixbuf.new_from_file(self.icon_temp)
-            scaled_pixbuf = pixbuf.scale_simple(50, 50, 
GdkPixbuf.InterpType.BILINEAR)
-            image = Gtk.Image.new_from_file(self.icon_temp)
-            image.set_from_pixbuf(scaled_pixbuf)
-            self.button_shortcut_icon.set_image(image)
-            self.checkbox_shortcut_steam.set_visible(True)
-            self.grid_page2.set_visible(True)
-            self.tab_box2.set_visible(True)
-            self.notebook.set_show_tabs(True)
-        elif active_id == "ea":
-            self.grid_title.set_visible(False)
-            self.grid_steam_title.set_visible(False)
-            self.grid_path.set_visible(False)
-            self.grid_runner.set_visible(True)
-            self.grid_prefix.set_visible(True)
-            self.button_winetricks.set_visible(True)
-            self.button_winecfg.set_visible(True)
-            self.button_run.set_visible(True)
-            self.grid_protonfix.set_visible(True)
-            self.grid_addapp.set_visible(False)
-            self.checkbox_disable_hidraw.set_visible(True)
-            self.checkbox_prevent_sleep.set_visible(True)
-            self.entry_launch_arguments.set_text("PROTON_ENABLE_WAYLAND=0")
-            self.entry_title.set_text(self.combobox_launcher.get_active_text())
-            self.entry_path.set_text(
-                f"{self.entry_prefix.get_text()}/drive_c/Program 
Files/Electronic Arts/EA Desktop/EA Desktop/EALauncher.exe")
-            shutil.copyfile(ea_icon, os.path.expanduser(self.icon_temp))
-            pixbuf = GdkPixbuf.Pixbuf.new_from_file(self.icon_temp)
-            scaled_pixbuf = pixbuf.scale_simple(50, 50, 
GdkPixbuf.InterpType.BILINEAR)
-            image = Gtk.Image.new_from_file(self.icon_temp)
-            image.set_from_pixbuf(scaled_pixbuf)
-            self.button_shortcut_icon.set_image(image)
-            self.checkbox_shortcut_steam.set_visible(True)
-            self.grid_page2.set_visible(True)
-            self.tab_box2.set_visible(True)
-            self.notebook.set_show_tabs(True)
-        elif active_id == "epic":
-            self.grid_title.set_visible(False)
-            self.grid_steam_title.set_visible(False)
-            self.grid_path.set_visible(False)
-            self.grid_runner.set_visible(True)
-            self.grid_prefix.set_visible(True)
-            self.button_winetricks.set_visible(True)
-            self.button_winecfg.set_visible(True)
-            self.button_run.set_visible(True)
-            self.grid_protonfix.set_visible(True)
-            self.grid_addapp.set_visible(False)
-            self.checkbox_disable_hidraw.set_visible(True)
-            self.checkbox_prevent_sleep.set_visible(True)
-            self.entry_title.set_text(self.combobox_launcher.get_active_text())
-            self.entry_path.set_text(
-                f"{self.entry_prefix.get_text()}/drive_c/Program Files/Epic 
Games/Launcher/Portal/Binaries/Win64/EpicGamesLauncher.exe")
-            shutil.copyfile(epic_icon, os.path.expanduser(self.icon_temp))
-            pixbuf = GdkPixbuf.Pixbuf.new_from_file(self.icon_temp)
-            scaled_pixbuf = pixbuf.scale_simple(50, 50, 
GdkPixbuf.InterpType.BILINEAR)
-            image = Gtk.Image.new_from_file(self.icon_temp)
-            image.set_from_pixbuf(scaled_pixbuf)
-            self.button_shortcut_icon.set_image(image)
-            self.checkbox_shortcut_steam.set_visible(True)
-            self.grid_page2.set_visible(True)
-            self.tab_box2.set_visible(True)
-            self.notebook.set_show_tabs(True)
-        elif active_id == "ubisoft":
-            self.grid_title.set_visible(False)
-            self.grid_steam_title.set_visible(False)
-            self.grid_path.set_visible(False)
-            self.grid_runner.set_visible(True)
-            self.grid_prefix.set_visible(True)
-            self.button_winetricks.set_visible(True)
-            self.button_winecfg.set_visible(True)
-            self.button_run.set_visible(True)
-            self.grid_protonfix.set_visible(True)
-            self.grid_addapp.set_visible(False)
-            self.checkbox_disable_hidraw.set_visible(True)
-            self.checkbox_prevent_sleep.set_visible(True)
-            self.entry_launch_arguments.set_text("PROTON_ENABLE_WAYLAND=0")
-            self.entry_title.set_text(self.combobox_launcher.get_active_text())
-            self.entry_path.set_text(
-                f"{self.entry_prefix.get_text()}/drive_c/Program Files 
(x86)/Ubisoft/Ubisoft Game Launcher/UbisoftConnect.exe")
-            shutil.copyfile(ubisoft_icon, os.path.expanduser(self.icon_temp))
-            pixbuf = GdkPixbuf.Pixbuf.new_from_file(self.icon_temp)
-            scaled_pixbuf = pixbuf.scale_simple(50, 50, 
GdkPixbuf.InterpType.BILINEAR)
-            image = Gtk.Image.new_from_file(self.icon_temp)
-            image.set_from_pixbuf(scaled_pixbuf)
-            self.button_shortcut_icon.set_image(image)
-            self.checkbox_shortcut_steam.set_visible(True)
-            self.grid_page2.set_visible(True)
-            self.tab_box2.set_visible(True)
-            self.notebook.set_show_tabs(True)
-        elif active_id == "rockstar":
-            self.grid_title.set_visible(False)
-            self.grid_steam_title.set_visible(False)
-            self.grid_path.set_visible(False)
-            self.grid_runner.set_visible(True)
-            self.grid_prefix.set_visible(True)
-            self.button_winetricks.set_visible(True)
-            self.button_winecfg.set_visible(True)
-            self.button_run.set_visible(True)
-            self.grid_protonfix.set_visible(True)
-            self.grid_addapp.set_visible(False)
-            self.checkbox_disable_hidraw.set_visible(True)
-            self.checkbox_prevent_sleep.set_visible(True)
-            self.entry_launch_arguments.set_text("PROTON_ENABLE_WAYLAND=0")
-            self.entry_title.set_text(self.combobox_launcher.get_active_text())
-            self.entry_path.set_text(
-                f"{self.entry_prefix.get_text()}/drive_c/Program 
Files/Rockstar Games/Launcher/Launcher.exe")
-            shutil.copyfile(rockstar_icon, os.path.expanduser(self.icon_temp))
-            pixbuf = GdkPixbuf.Pixbuf.new_from_file(self.icon_temp)
-            scaled_pixbuf = pixbuf.scale_simple(50, 50, 
GdkPixbuf.InterpType.BILINEAR)
-            image = Gtk.Image.new_from_file(self.icon_temp)
-            image.set_from_pixbuf(scaled_pixbuf)
-            self.button_shortcut_icon.set_image(image)
-            self.checkbox_shortcut_steam.set_visible(True)
-            self.grid_page2.set_visible(True)
-            self.tab_box2.set_visible(True)
-            self.notebook.set_show_tabs(True)
-        elif active_id == "wargaming":
-            self.grid_title.set_visible(False)
-            self.grid_steam_title.set_visible(False)
-            self.grid_path.set_visible(False)
+            self.button_shortcut_icon.set_visible(True)
+
+        else:
             self.grid_runner.set_visible(True)
             self.grid_prefix.set_visible(True)
             self.button_winetricks.set_visible(True)
             self.button_winecfg.set_visible(True)
             self.button_run.set_visible(True)
             self.grid_protonfix.set_visible(True)
-            self.grid_addapp.set_visible(False)
             self.checkbox_disable_hidraw.set_visible(True)
-            self.checkbox_prevent_sleep.set_visible(True)
+            self.button_shortcut_icon.set_visible(False)
+
             self.entry_title.set_text(self.combobox_launcher.get_active_text())
-            self.entry_path.set_text(
-                
f"{self.entry_prefix.get_text()}/drive_c/ProgramData/Wargaming.net/GameCenter/wgc.exe")
-            shutil.copyfile(wargaming_icon, os.path.expanduser(self.icon_temp))
-            pixbuf = GdkPixbuf.Pixbuf.new_from_file(self.icon_temp)
-            scaled_pixbuf = pixbuf.scale_simple(50, 50, 
GdkPixbuf.InterpType.BILINEAR)
-            image = Gtk.Image.new_from_file(self.icon_temp)
-            image.set_from_pixbuf(scaled_pixbuf)
-            self.button_shortcut_icon.set_image(image)
-            self.checkbox_shortcut_steam.set_visible(True)
-            self.grid_page2.set_visible(True)
-            self.tab_box2.set_visible(True)
-            self.notebook.set_show_tabs(True)
+
+            if active_id == "battle":
+                
self.entry_launch_arguments.set_text("WINE_SIMULATE_WRITECOPY=1 
PROTON_ENABLE_WAYLAND=0")
+                path = "drive_c/Program Files (x86)/Battle.net/Battle.net.exe"
+
+            elif active_id == "ea":
+                self.entry_launch_arguments.set_text("PROTON_ENABLE_WAYLAND=0")
+                path = "drive_c/Program Files/Electronic Arts/EA Desktop/EA 
Desktop/EALauncher.exe"
+
+            elif active_id == "epic":
+                path = "drive_c/Program Files/Epic 
Games/Launcher/Portal/Binaries/Win64/EpicGamesLauncher.exe"
+
+            elif active_id == "ubisoft":
+                self.entry_launch_arguments.set_text("PROTON_ENABLE_WAYLAND=0")
+                path = "drive_c/Program Files (x86)/Ubisoft/Ubisoft Game 
Launcher/UbisoftConnect.exe"
+
+            elif active_id == "rockstar":
+                self.entry_launch_arguments.set_text("PROTON_ENABLE_WAYLAND=0")
+                path = "drive_c/Program Files/Rockstar 
Games/Launcher/Launcher.exe"
+
+            elif active_id == "wargaming":
+                path = "drive_c/ProgramData/Wargaming.net/GameCenter/wgc.exe"
+
+            else:
+                path = ""
+
+            if path:
+                
self.entry_path.set_text(f"{self.entry_prefix.get_text()}/{path}")
+
         if self.interface_mode == "Banners":
-            if self.entry_title.get_text() != "":
+            if self.entry_title.get_text():
                 self.get_banner()
             else:
                 shutil.copyfile(faugus_banner, self.banner_path_temp)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.5/faugus/path_manager.py 
new/faugus-launcher-1.18.7/faugus/path_manager.py
--- old/faugus-launcher-1.18.5/faugus/path_manager.py   2026-04-21 
22:18:11.000000000 +0200
+++ new/faugus-launcher-1.18.7/faugus/path_manager.py   2026-04-25 
23:32:14.000000000 +0200
@@ -36,7 +36,6 @@
     def get_icon(icon_name):
         icon_paths = [
             PathManager.user_data('icons', icon_name),
-            PathManager.system_data('icons/hicolor/256x256/apps', icon_name),
             PathManager.system_data('icons/hicolor/scalable/apps', icon_name),
             PathManager.system_data('icons', icon_name)
         ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.5/meson.build 
new/faugus-launcher-1.18.7/meson.build
--- old/faugus-launcher-1.18.5/meson.build      2026-04-21 22:18:11.000000000 
+0200
+++ new/faugus-launcher-1.18.7/meson.build      2026-04-25 23:32:14.000000000 
+0200
@@ -1,6 +1,6 @@
 project(
   'faugus-launcher',
-  version: '1.18.5',
+  version: '1.18.7',
   meson_version: '>=1.2.0',
   license: 'MIT',
   license_files: 'LICENSE',

Reply via email to