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',