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-05-06 19:18:22
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/faugus-launcher (Old)
 and      /work/SRC/openSUSE:Factory/.faugus-launcher.new.30200 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "faugus-launcher"

Wed May  6 19:18:22 2026 rev:25 rq:1351078 version:1.18.12

Changes:
--------
--- /work/SRC/openSUSE:Factory/faugus-launcher/faugus-launcher.changes  
2026-05-04 12:52:52.031874351 +0200
+++ 
/work/SRC/openSUSE:Factory/.faugus-launcher.new.30200/faugus-launcher.changes   
    2026-05-06 19:20:24.675299224 +0200
@@ -1,0 +2,17 @@
+Tue May 05 21:18:21 UTC 2026 - Jehu Marcos Herrera Puentes 
<[email protected]>
+
+- Bump to version 1.18.12
+- Upstream changes:
+  * Downloads temp file in compatibilitytools
+  * Fixed compatibilitytools detection
+  * Fix get_compatibilitytools path suffix attachment
+- For version 1.18.11:
+  * Disable wayland driver for epic
+  * Fixed virtual keyboard losing focus when using shift
+  * Fixed autostart path
+  * Revert "Fix for Winetricks not working with Proton-CachyOS 11 on Wayland"
+  * Don't show splash window when upgrading FSR or DLSS
+  * Fix for Winetricks not working with Proton-CachyOS 11 on Wayland
+  * Updated paths to properly use xdg portal
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ faugus-launcher.spec ++++++
--- /var/tmp/diff_new_pack.aMrwQW/_old  2026-05-06 19:20:25.435330526 +0200
+++ /var/tmp/diff_new_pack.aMrwQW/_new  2026-05-06 19:20:25.439330691 +0200
@@ -19,7 +19,7 @@
 %{?single_pythons_311plus}
 
 Name:           faugus-launcher
-Version:        1.18.10
+Version:        1.18.12
 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.aMrwQW/_old  2026-05-06 19:20:25.479332338 +0200
+++ /var/tmp/diff_new_pack.aMrwQW/_new  2026-05-06 19:20:25.487332668 +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.10</param>
+    <param name="revision">1.18.12</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.aMrwQW/_old  2026-05-06 19:20:25.515333821 +0200
+++ /var/tmp/diff_new_pack.aMrwQW/_new  2026-05-06 19:20:25.519333986 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/Faugus/faugus-launcher.git</param>
-              <param 
name="changesrevision">e5a4b2426344bd808a8b20e8f10c162c2b4b1d23</param></service></servicedata>
+              <param 
name="changesrevision">a7f4247695d19df0f07630db15291030766a980c</param></service></servicedata>
 (No newline at EOF)
 

++++++ faugus-launcher-1.18.10.tar.xz -> faugus-launcher-1.18.12.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.10/README.md 
new/faugus-launcher-1.18.12/README.md
--- old/faugus-launcher-1.18.10/README.md       2026-04-30 19:42:40.000000000 
+0200
+++ new/faugus-launcher-1.18.12/README.md       2026-05-03 20:58:16.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.10/faugus-launcher_1.18.10-1_all.deb
+wget -P ~/faugus-launcher 
https://github.com/Faugus/faugus-launcher/releases/download/1.18.12/faugus-launcher_1.18.12-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.10/data/faugus-launcher.metainfo.xml 
new/faugus-launcher-1.18.12/data/faugus-launcher.metainfo.xml
--- old/faugus-launcher-1.18.10/data/faugus-launcher.metainfo.xml       
2026-04-30 19:42:40.000000000 +0200
+++ new/faugus-launcher-1.18.12/data/faugus-launcher.metainfo.xml       
2026-05-03 20:58:16.000000000 +0200
@@ -82,14 +82,10 @@
     </screenshot>
   </screenshots>
   <releases>
-    <release version="1.18.10-1" date="2026-04-30">
+    <release version="1.18.12-1" date="2026-05-03">
       <description>
         <ul>
-          <li>Added a workaround to prevent white/black screen with Nvidia 
Optimus laptops.</li>
-          <li>Attempt to fix the runner silent crash.</li>
-          <li>Updated Flatpak platform to GNOME 50.</li>
-          <li>Added Vulkan Tools to Flatpak.</li>
-          <li>Added Norwegian (Bokmål) translation.</li>
+          <li>Hotfix compatibilitytools detection.</li>
         </ul>
       </description>
     </release>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/faugus-launcher-1.18.10/data/io.github.Faugus.faugus-launcher.metainfo.xml 
new/faugus-launcher-1.18.12/data/io.github.Faugus.faugus-launcher.metainfo.xml
--- 
old/faugus-launcher-1.18.10/data/io.github.Faugus.faugus-launcher.metainfo.xml  
    2026-04-30 19:42:40.000000000 +0200
+++ 
new/faugus-launcher-1.18.12/data/io.github.Faugus.faugus-launcher.metainfo.xml  
    2026-05-03 20:58:16.000000000 +0200
@@ -88,14 +88,10 @@
     </screenshot>
   </screenshots>
   <releases>
-    <release version="1.18.10-1" date="2026-04-30">
+    <release version="1.18.12-1" date="2026-05-03">
       <description>
         <ul>
-          <li>Added a workaround to prevent white/black screen with Nvidia 
Optimus laptops.</li>
-          <li>Attempt to fix the runner silent crash.</li>
-          <li>Updated Flatpak platform to GNOME 50.</li>
-          <li>Added Vulkan Tools to Flatpak.</li>
-          <li>Added Norwegian (Bokmål) translation.</li>
+          <li>Hotfix compatibilitytools detection.</li>
         </ul>
       </description>
     </release>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.10/faugus/components.py 
new/faugus-launcher-1.18.12/faugus/components.py
--- old/faugus-launcher-1.18.10/faugus/components.py    2026-04-30 
19:42:40.000000000 +0200
+++ new/faugus-launcher-1.18.12/faugus/components.py    2026-05-03 
20:58:16.000000000 +0200
@@ -5,11 +5,11 @@
 import tarfile
 import shutil
 
+from faugus.path_manager import PathManager
 
 UMU_URL_TEMPLATE = 
"https://github.com/Faugus/umu-launcher/releases/download/{}/umu-run";
 UMU_VERSION_API = "https://api.github.com/repos/Faugus/umu-launcher/releases";
-xdg_data_home = os.getenv("XDG_DATA_HOME", 
os.path.expanduser("~/.local/share"))
-UMU_INSTALL_DIR = os.path.join(xdg_data_home, "faugus-launcher")
+UMU_INSTALL_DIR = PathManager.user_data('faugus-launcher')
 UMU_VERSION_FILE = os.path.join(UMU_INSTALL_DIR, "version.txt")
 UMU_BIN_PATH = os.path.join(UMU_INSTALL_DIR, "umu-run")
 
@@ -62,12 +62,9 @@
     else:
         print("UMU-Launcher is up to date.", flush=True)
 
-
-config_dir = os.getenv('XDG_CONFIG_HOME', os.path.expanduser('~/.config'))
-
 BE_URL = "https://github.com/Faugus/components/releases/download/{}/be.tar.gz";
 EAC_URL = 
"https://github.com/Faugus/components/releases/download/{}/eac.tar.gz";
-DOWNLOAD_DIR = f"{config_dir}/faugus-launcher/components"
+DOWNLOAD_DIR = PathManager.user_config('faugus-launcher/components')
 REPO_URL = "https://api.github.com/repos/Faugus/components/releases/latest";
 VERSION_FILE = f"{DOWNLOAD_DIR}/version.txt"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.10/faugus/config_manager.py 
new/faugus-launcher-1.18.12/faugus/config_manager.py
--- old/faugus-launcher-1.18.10/faugus/config_manager.py        2026-04-30 
19:42:40.000000000 +0200
+++ new/faugus-launcher-1.18.12/faugus/config_manager.py        2026-05-03 
20:58:16.000000000 +0200
@@ -1,7 +1,7 @@
 from faugus.language_config import *
 
 faugus_launcher_dir = PathManager.user_config('faugus-launcher')
-prefixes_dir = str(Path.home() / 'Faugus')
+prefixes_dir = PathManager.user_home('Faugus')
 
 class ConfigManager:
     def __init__(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.10/faugus/keyboard.py 
new/faugus-launcher-1.18.12/faugus/keyboard.py
--- old/faugus-launcher-1.18.10/faugus/keyboard.py      2026-04-30 
19:42:40.000000000 +0200
+++ new/faugus-launcher-1.18.12/faugus/keyboard.py      2026-05-03 
20:58:16.000000000 +0200
@@ -35,7 +35,6 @@
         self.mode = "lower"
         self.original_text = self.entry.get_text()
 
-        #self.set_default_size(800, 450)
         self.set_resizable(False)
         self.get_style_context().add_class("tv-keyboard")
         self.apply_css()
@@ -109,6 +108,9 @@
                 btn.set_hexpand(True)
                 btn.set_vexpand(True)
 
+                btn.grid_col = col_offset
+                btn.grid_row = r
+
                 if (label == "Shift" and self.mode == "shift") or \
                    (label == "Caps" and self.mode == "caps") or \
                    (label in ("?123", "ABC") and self.mode == "symbols"):
@@ -142,11 +144,19 @@
         new_text = text + char
         self.display_entry.set_text(new_text)
         self.display_entry.set_position(len(new_text))
+
         if self.mode == "shift":
+            col = getattr(button, 'grid_col', 0)
+            row = getattr(button, 'grid_row', 0)
+
             self.mode = "lower"
             self.build_keys()
             self.show_all()
 
+            new_btn = self.grid.get_child_at(col, row)
+            if new_btn:
+                new_btn.grab_focus()
+
     def on_backspace(self, button):
         text = self.display_entry.get_text()
         if len(text) > 0:
@@ -155,22 +165,38 @@
             self.display_entry.set_position(len(new_text))
 
     def on_toggle_mode(self, button, mode_type):
+        col = getattr(button, 'grid_col', 0)
+        row = getattr(button, 'grid_row', 0)
+
         target_mode = mode_type.lower()
         if self.mode == target_mode:
             self.mode = "lower"
         else:
             self.mode = target_mode
+
         self.build_keys()
         self.show_all()
 
+        new_btn = self.grid.get_child_at(col, row)
+        if new_btn:
+            new_btn.grab_focus()
+
     def on_toggle_symbols(self, button):
+        col = getattr(button, 'grid_col', 0)
+        row = getattr(button, 'grid_row', 0)
+
         if self.mode == "symbols":
             self.mode = "lower"
         else:
             self.mode = "symbols"
+
         self.build_keys()
         self.show_all()
 
+        new_btn = self.grid.get_child_at(col, row)
+        if new_btn:
+            new_btn.grab_focus()
+
     def on_clear(self, button):
         self.display_entry.set_text("")
         self.display_entry.set_position(0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.10/faugus/launcher.py 
new/faugus-launcher-1.18.12/faugus/launcher.py
--- old/faugus-launcher-1.18.10/faugus/launcher.py      2026-04-30 
19:42:40.000000000 +0200
+++ new/faugus-launcher-1.18.12/faugus/launcher.py      2026-05-03 
20:58:16.000000000 +0200
@@ -22,13 +22,13 @@
 from faugus.steam_setup import *
 from faugus.ea_fix import *
 
-VERSION = "1.18.10"
+VERSION = "1.18.12"
 IS_FLATPAK = 'FLATPAK_ID' in os.environ or os.path.exists('/.flatpak-info')
 
 faugus_banner = PathManager.system_data('faugus-launcher/faugus-banner.png')
 faugus_notification = 
PathManager.system_data('faugus-launcher/faugus-notification.ogg')
 faugus_launcher_dir = PathManager.user_config('faugus-launcher')
-prefixes_dir = str(Path.home() / 'Faugus')
+prefixes_dir = PathManager.user_home('Faugus')
 logs_dir = PathManager.user_config('faugus-launcher/logs')
 icons_dir = PathManager.user_config('faugus-launcher/icons')
 banners_dir = PathManager.user_config('faugus-launcher/banners')
@@ -40,16 +40,14 @@
 proton_cachyos = 
PathManager.system_data('steam/compatibilitytools.d/proton-cachyos-slr/')
 
 if IS_FLATPAK:
-    app_dir = str(Path.home() / '.local/share/applications')
     faugus_png = PathManager.get_icon('io.github.Faugus.faugus-launcher.svg')
     tray_icon = 'io.github.Faugus.faugus-launcher'
     GLib.set_prgname("io.github.Faugus.faugus-launcher")
-
-    mono_dest = 
Path(os.path.expanduser('~/.local/share/faugus-launcher/faugus-mono.svg'))
+    mono_dest = Path(PathManager.user_data('faugus-launcher/faugus-mono.svg'))
     mono_dest.parent.mkdir(parents=True, exist_ok=True)
     if not mono_dest.exists():
         shutil.copy(faugus_mono_icon, mono_dest)
-    faugus_mono_icon = 
os.path.expanduser('~/.local/share/faugus-launcher/faugus-mono.svg')
+    faugus_mono_icon = PathManager.user_data('faugus-launcher/faugus-mono.svg')
     lsfgvk_possible_paths = [
         Path("/usr/lib/extensions/vulkan/lsfgvk/lib/liblsfg-vk.so"), # 
Deprecated in LSFG-VK v2.0
         Path(os.path.expanduser('~/.local/lib/liblsfg-vk.so')), # Deprecated 
in LSFG-VK v2.0
@@ -58,7 +56,6 @@
     ]
     lsfgvk_path = next((p for p in lsfgvk_possible_paths if p.exists()), 
lsfgvk_possible_paths[-1])
 else:
-    app_dir = PathManager.user_data('applications')
     faugus_png = PathManager.get_icon('faugus-launcher.svg')
     tray_icon = PathManager.get_icon('faugus-launcher.svg')
     GLib.set_prgname("faugus-launcher")
@@ -72,6 +69,7 @@
     ]
     lsfgvk_path = next((p for p in lsfgvk_possible_paths if p.exists()), 
lsfgvk_possible_paths[-1])
 
+app_dir = PathManager.user_data('applications')
 launcher_path = PathManager.find_binary('faugus-launcher')
 umu_run = PathManager.user_data('faugus-launcher/umu-run')
 mangohud_dir = PathManager.find_binary('mangohud')
@@ -83,20 +81,15 @@
 faugus_temp = PathManager.user_data('faugus-launcher/faugus_temp')
 running_games = PathManager.user_data('faugus-launcher/running_games.json')
 
+compatibility_dir = Path(PathManager.get_compatibilitytools())
+os.makedirs(compatibility_dir, exist_ok=True)
+
 faugus_backup = False
 
 os.makedirs(faugus_launcher_share_dir, exist_ok=True)
 os.makedirs(faugus_launcher_dir, exist_ok=True)
 
-def get_desktop_dir():
-    try:
-        desktop_dir = subprocess.check_output(['xdg-user-dir', 'DESKTOP'], 
text=True).strip()
-        return desktop_dir
-    except (FileNotFoundError, subprocess.CalledProcessError):
-        print("xdg-user-dir not found or failed; falling back to ~/Desktop")
-        return str(Path.home() / 'Desktop')
-
-desktop_dir = get_desktop_dir()
+desktop_dir = PathManager.user_home('Desktop')
 
 try:
     translation = gettext.translation(
@@ -1777,7 +1770,7 @@
             return True
 
     def manage_autostart_file(self, start_boot, start_minimized):
-        autostart_path = 
os.path.expanduser('~/.config/autostart/faugus-launcher.desktop')
+        autostart_path = 
PathManager.user_home('.config/autostart/faugus-launcher.desktop')
         autostart_dir = os.path.dirname(autostart_path)
 
         if not os.path.exists(autostart_dir):
@@ -2683,7 +2676,7 @@
                     command = f"PROTON_ENABLE_WAYLAND=0 
LOG_DIR='{title_formatted}' WINEPREFIX='{prefix}' GAMEID={title_formatted} 
{umu_run} '{file_path}' /S"
                 elif launcher == "epic":
                     self.label_download2.set_text("")
-                    command = f"LOG_DIR='{title_formatted}' 
WINEPREFIX='{prefix}' GAMEID={title_formatted} {umu_run} msiexec /i 
'{file_path}' /passive"
+                    command = f"PROTON_ENABLE_WAYLAND=0 
LOG_DIR='{title_formatted}' WINEPREFIX='{prefix}' GAMEID={title_formatted} 
{umu_run} msiexec /i '{file_path}' /passive"
                 elif launcher == "ubisoft":
                     self.label_download2.set_text("")
                     command = f"PROTON_ENABLE_WAYLAND=0 
LOG_DIR='{title_formatted}' WINEPREFIX='{prefix}' GAMEID={title_formatted} 
{umu_run} '{file_path}' /S"
@@ -3824,23 +3817,17 @@
         self.combobox_runner.append_text("Proton-EM Latest")
         self.combobox_runner.append_text("UMU-Proton Latest")
 
-        if 
os.path.exists("/usr/share/steam/compatibilitytools.d/proton-cachyos-slr/"):
+        if os.path.exists(proton_cachyos):
             self.combobox_runner.append_text("Proton-CachyOS (System)")
 
-        # Path to the directory containing the folders
-        if IS_FLATPAK:
-            runner_path = 
Path(os.path.expanduser("~/.local/share/Steam/compatibilitytools.d"))
-        else:
-            runner_path = f'{share_dir}/Steam/compatibilitytools.d/'
-
         try:
             # Check if the directory exists
-            if os.path.exists(runner_path):
+            if os.path.exists(compatibility_dir):
                 # List to hold version directories
                 versions = []
                 # Iterate over the folders in the directory
-                for entry in os.listdir(runner_path):
-                    entry_path = os.path.join(runner_path, entry)
+                for entry in os.listdir(compatibility_dir):
+                    entry_path = os.path.join(compatibility_dir, entry)
                     # Add to list only if it's a directory and not "UMU-Latest"
                     if (
                         os.path.isdir(entry_path)
@@ -5830,6 +5817,7 @@
                 path = "drive_c/Program Files/Electronic Arts/EA Desktop/EA 
Desktop/EALauncher.exe"
 
             elif active_id == "epic":
+                self.entry_launch_arguments.set_text("PROTON_ENABLE_WAYLAND=0")
                 path = "drive_c/Program Files/Epic 
Games/Launcher/Portal/Binaries/Win64/EpicGamesLauncher.exe"
 
             elif active_id == "ubisoft":
@@ -5876,23 +5864,17 @@
         self.combobox_runner.append_text("Proton-EM Latest")
         self.combobox_runner.append_text("UMU-Proton Latest")
 
-        if 
os.path.exists("/usr/share/steam/compatibilitytools.d/proton-cachyos-slr/"):
+        if os.path.exists(proton_cachyos):
             self.combobox_runner.append_text("Proton-CachyOS (System)")
 
-        # Path to the directory containing the folders
-        if IS_FLATPAK:
-            runner_path = 
Path(os.path.expanduser("~/.local/share/Steam/compatibilitytools.d"))
-        else:
-            runner_path = f'{share_dir}/Steam/compatibilitytools.d/'
-
         try:
             # Check if the directory exists
-            if os.path.exists(runner_path):
+            if os.path.exists(compatibility_dir):
                 # List to hold version directories
                 versions = []
                 # Iterate over the folders in the directory
-                for entry in os.listdir(runner_path):
-                    entry_path = os.path.join(runner_path, entry)
+                for entry in os.listdir(compatibility_dir):
+                    entry_path = os.path.join(compatibility_dir, entry)
                     # Add to list only if it's a directory and not "UMU-Latest"
                     if (
                         os.path.isdir(entry_path)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.10/faugus/path_manager.py 
new/faugus-launcher-1.18.12/faugus/path_manager.py
--- old/faugus-launcher-1.18.10/faugus/path_manager.py  2026-04-30 
19:42:40.000000000 +0200
+++ new/faugus-launcher-1.18.12/faugus/path_manager.py  2026-05-03 
20:58:16.000000000 +0200
@@ -3,8 +3,18 @@
 import os
 from pathlib import Path
 
+IS_FLATPAK = 'FLATPAK_ID' in os.environ or os.path.exists('/.flatpak-info')
+
 class PathManager:
     @staticmethod
+    def user_home(*relative_paths):
+        if IS_FLATPAK:
+            home_dir = Path(os.getenv('HOST_HOME', Path.home()))
+        else:
+            home_dir = Path(os.getenv('HOME', Path.home()))
+        return str(home_dir.joinpath(*relative_paths))
+
+    @staticmethod
     def system_data(*relative_paths):
         xdg_data_dirs = os.getenv('XDG_DATA_DIRS', 
'/usr/local/share:/usr/share').split(':')
         for data_dir in xdg_data_dirs:
@@ -42,4 +52,10 @@
         for path in icon_paths:
             if Path(path).exists():
                 return path
-        return icon_paths[-1]  # Fallback
+        return icon_paths[-1]
+
+    @staticmethod
+    def get_compatibilitytools():
+        base_dir = Path(os.getenv('HOST_XDG_DATA_HOME', Path.home() / '.local' 
/ 'share'))
+        compatibilitytools_folder = base_dir / 'Steam' / 'compatibilitytools.d'
+        return str(compatibilitytools_folder)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.10/faugus/proton_downloader.py 
new/faugus-launcher-1.18.12/faugus/proton_downloader.py
--- old/faugus-launcher-1.18.10/faugus/proton_downloader.py     2026-04-30 
19:42:40.000000000 +0200
+++ new/faugus-launcher-1.18.12/faugus/proton_downloader.py     2026-05-03 
20:58:16.000000000 +0200
@@ -5,10 +5,11 @@
 import urllib.request
 import shutil
 import argparse
-from pathlib import Path
 
+from pathlib import Path
+from faugus.path_manager import PathManager
 
-STEAM_COMPAT_DIR = Path.home() / ".local/share/Steam/compatibilitytools.d"
+STEAM_COMPAT_DIR = Path(PathManager.get_compatibilitytools())
 
 CONFIGS = {
     "ge": {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.10/faugus/proton_manager.py 
new/faugus-launcher-1.18.12/faugus/proton_manager.py
--- old/faugus-launcher-1.18.10/faugus/proton_manager.py        2026-04-30 
19:42:40.000000000 +0200
+++ new/faugus-launcher-1.18.12/faugus/proton_manager.py        2026-05-03 
20:58:16.000000000 +0200
@@ -17,12 +17,11 @@
 if IS_FLATPAK:
     faugus_png = PathManager.get_icon('io.github.Faugus.faugus-launcher.svg')
     GLib.set_prgname("io.github.Faugus.faugus-launcher")
-    STEAM_COMPATIBILITY_PATH = 
Path(os.path.expanduser("~/.local/share/Steam/compatibilitytools.d"))
 else:
     faugus_png = PathManager.get_icon('faugus-launcher.svg')
     GLib.set_prgname("faugus-launcher")
-    STEAM_COMPATIBILITY_PATH = 
Path(PathManager.user_data("Steam/compatibilitytools.d"))
 
+STEAM_COMPATIBILITY_PATH = Path(PathManager.get_compatibilitytools())
 config_file_dir = PathManager.user_config('faugus-launcher/config.ini')
 faugus_launcher_dir = PathManager.user_config('faugus-launcher')
 
@@ -362,11 +361,13 @@
 
         def worker():
             try:
+                STEAM_COMPATIBILITY_PATH.mkdir(parents=True, exist_ok=True)
+                tar_file_path = os.path.join(STEAM_COMPATIBILITY_PATH, 
filename)
+
                 response = requests.get(url, stream=True, timeout=30)
                 response.raise_for_status()
                 total_size = int(response.headers.get("content-length", 0))
                 downloaded_size = 0
-                tar_file_path = os.path.join(os.getcwd(), filename)
 
                 with open(tar_file_path, "wb") as f:
                     for chunk in response.iter_content(chunk_size=1024*64):
@@ -382,33 +383,18 @@
                 GLib.idle_add(self.progress_bar.set_fraction, 0)
 
                 mode = 'r:xz' if tar_file_path.endswith('.tar.xz') else 'r:gz'
-                temp_dir = os.path.join(STEAM_COMPATIBILITY_PATH, 
f"temp_{tag_name}")
-                os.makedirs(temp_dir, exist_ok=True)
 
                 with tarfile.open(tar_file_path, mode) as tar:
                     members = tar.getmembers()
                     total_members = len(members)
+
                     for i, member in enumerate(members):
-                        tar.extract(member, path=temp_dir, 
filter="fully_trusted")
+                        tar.extract(member, path=STEAM_COMPATIBILITY_PATH, 
filter="fully_trusted")
                         if i % 10 == 0:
                             progress = (i + 1) / total_members
                             GLib.idle_add(self.progress_bar.set_fraction, 
progress)
                             GLib.idle_add(self.progress_bar.set_text, 
f"{int(progress * 100)}%")
 
-                extracted_dir = None
-                for item in os.listdir(temp_dir):
-                    item_path = os.path.join(temp_dir, item)
-                    if os.path.isdir(item_path):
-                        extracted_dir = item_path
-                        break
-
-                if extracted_dir:
-                    final_dir = os.path.join(STEAM_COMPATIBILITY_PATH, 
os.path.basename(extracted_dir))
-                    if os.path.exists(final_dir):
-                        shutil.rmtree(final_dir)
-                    shutil.move(extracted_dir, STEAM_COMPATIBILITY_PATH)
-
-                shutil.rmtree(temp_dir)
                 if os.path.exists(tar_file_path):
                     os.remove(tar_file_path)
 
@@ -417,7 +403,7 @@
                 GLib.idle_add(self.progress_label.set_visible, False)
 
             except Exception as e:
-                print(f"Error during download: {e}")
+                print(f"Error during download/extraction: {e}")
                 GLib.idle_add(self.update_button, button, _("Download"))
                 GLib.idle_add(self.progress_label.set_text, _("Error during 
download"))
             finally:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.10/faugus/runner.py 
new/faugus-launcher-1.18.12/faugus/runner.py
--- old/faugus-launcher-1.18.10/faugus/runner.py        2026-04-30 
19:42:40.000000000 +0200
+++ new/faugus-launcher-1.18.12/faugus/runner.py        2026-05-03 
20:58:16.000000000 +0200
@@ -24,11 +24,9 @@
 from faugus.steam_setup import IS_STEAM_FLATPAK
 
 if IS_FLATPAK:
-    share_dir = os.path.expanduser('~/.local/share')
     faugus_png = PathManager.get_icon('io.github.Faugus.faugus-launcher.svg')
     GLib.set_prgname("io.github.Faugus.faugus-launcher")
 else:
-    share_dir = PathManager.user_data()
     faugus_png = PathManager.get_icon('faugus-launcher.svg')
     GLib.set_prgname("faugus-launcher")
 
@@ -37,14 +35,14 @@
 envar_dir = PathManager.user_config('faugus-launcher/envar.txt')
 games_json = PathManager.user_config('faugus-launcher/games.json')
 faugus_launcher_dir = PathManager.user_config('faugus-launcher')
-prefixes_dir = str(Path.home() / 'Faugus')
+prefixes_dir = PathManager.user_home('Faugus')
 logs_dir = PathManager.user_config('faugus-launcher/logs')
 faugus_notification = 
PathManager.system_data('faugus-launcher/faugus-notification.ogg')
 eac_dir = PathManager.user_config("faugus-launcher/components/eac")
 be_dir = PathManager.user_config("faugus-launcher/components/be")
 proton_cachyos = 
PathManager.system_data('steam/compatibilitytools.d/proton-cachyos-slr/')
 
-compatibility_dir = 
os.path.expanduser("~/.local/share/Steam/compatibilitytools.d")
+compatibility_dir = Path(PathManager.get_compatibilitytools())
 os.makedirs(compatibility_dir, exist_ok=True)
 
 try:
@@ -176,23 +174,23 @@
             if protonpath == "Steam":
                 pass
             else:
-                protonpath_path = Path(share_dir) / 
'Steam/compatibilitytools.d' / protonpath
+                protonpath_path = compatibility_dir / protonpath
                 if not protonpath_path.is_dir():
                     self.close_splash_window()
                     self.show_error_dialog(protonpath)
         if protonpath == "Proton-EM Latest":
             self.proton_latest = "--em"
-            steam_compat_dir = Path.home() / 
".local/share/Steam/compatibilitytools.d" / "Proton-EM Latest"
+            steam_compat_dir = compatibility_dir / "Proton-EM Latest"
             self.proton_exists = steam_compat_dir.is_dir()
 
         if protonpath == "Proton-GE Latest":
             self.proton_latest = "--ge"
-            steam_compat_dir = Path.home() / 
".local/share/Steam/compatibilitytools.d" / "Proton-GE Latest"
+            steam_compat_dir = compatibility_dir / "Proton-GE Latest"
             self.proton_exists = steam_compat_dir.is_dir()
 
         if protonpath == "Proton-CachyOS Latest":
             self.proton_latest = "--cachyos"
-            steam_compat_dir = Path.home() / 
".local/share/Steam/compatibilitytools.d" / "Proton-CachyOS Latest"
+            steam_compat_dir = compatibility_dir / "Proton-CachyOS Latest"
             self.proton_exists = steam_compat_dir.is_dir()
 
         self.components_exists = (
@@ -583,6 +581,8 @@
         self.log_window.show_all()
 
     def check_game_output(self, clean_line):
+        if "Downloading upscaler file" in clean_line:
+            return False
         def update_ui():
             if (
                 "Downloading" in clean_line
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.10/faugus/shortcut.py 
new/faugus-launcher-1.18.12/faugus/shortcut.py
--- old/faugus-launcher-1.18.10/faugus/shortcut.py      2026-04-30 
19:42:40.000000000 +0200
+++ new/faugus-launcher-1.18.12/faugus/shortcut.py      2026-05-03 
20:58:16.000000000 +0200
@@ -14,10 +14,10 @@
 from PIL import Image
 from faugus.dark_theme import *
 from faugus.config_manager import *
+from faugus.steam_setup import lossless_dll
 
 IS_FLATPAK = 'FLATPAK_ID' in os.environ or os.path.exists('/.flatpak-info')
 if IS_FLATPAK:
-    app_dir = str(Path.home() / '.local/share/applications')
     faugus_png = PathManager.get_icon('io.github.Faugus.faugus-launcher.svg')
     GLib.set_prgname("io.github.Faugus.faugus-launcher")
     lsfgvk_possible_paths = [
@@ -28,7 +28,6 @@
     ]
     lsfgvk_path = next((p for p in lsfgvk_possible_paths if p.exists()), 
lsfgvk_possible_paths[-1])
 else:
-    app_dir = PathManager.user_data('applications')
     faugus_png = PathManager.get_icon('faugus-launcher.svg')
     GLib.set_prgname("faugus-launcher")
     lsfgvk_possible_paths = [
@@ -40,41 +39,18 @@
         Path(os.path.expanduser('~/.local/lib/liblsfg-vk-layer.so'))
     ]
     lsfgvk_path = next((p for p in lsfgvk_possible_paths if p.exists()), 
lsfgvk_possible_paths[-1])
+
+app_dir = PathManager.user_data('applications')
 icons_dir = PathManager.user_config('faugus-launcher/icons')
 config_file_dir = PathManager.user_config('faugus-launcher/config.ini')
-prefixes_dir = str(Path.home() / 'Faugus')
+prefixes_dir = PathManager.user_home('Faugus')
 mangohud_dir = PathManager.find_binary('mangohud')
 gamemoderun = PathManager.find_binary('gamemoderun')
 umu_run = PathManager.user_data('faugus-launcher/umu-run')
 launcher_path = PathManager.find_binary('faugus-launcher')
 faugus_launcher_dir = PathManager.user_config('faugus-launcher')
 faugus_notification = 
PathManager.system_data('faugus-launcher/faugus-notification.ogg')
-
-def get_desktop_dir():
-    try:
-        desktop_dir = subprocess.check_output(['xdg-user-dir', 'DESKTOP'], 
text=True).strip()
-        return desktop_dir
-    except (FileNotFoundError, subprocess.CalledProcessError):
-        print("xdg-user-dir not found or failed; falling back to ~/Desktop")
-        return str(Path.home() / 'Desktop')
-
-desktop_dir = get_desktop_dir()
-
-def find_lossless_dll():
-    possible_common_locations = [
-        Path.home() / '.local' / 'share' / 'Steam' / 'steamapps' / 'common',
-        Path.home() / '.steam' / 'steam' / 'steamapps' / 'common',
-        Path.home() / '.steam' / 'root' / 'steamapps' / 'common',
-        Path.home() / 'SteamLibrary' / 'steamapps' / 'common',
-        
Path(os.path.expanduser('~/.var/app/com.valvesoftware.Steam/.steam/steamapps/common/'))
-    ]
-
-    for location in possible_common_locations:
-        dll_candidate = location / 'Lossless Scaling' / 'Lossless.dll'
-        if dll_candidate.exists():
-            return str(dll_candidate)
-
-    return ""
+desktop_dir = PathManager.user_home('Desktop')
 
 def get_system_locale():
     lang = os.environ.get('LANG') or os.environ.get('LC_MESSAGES')
@@ -372,9 +348,8 @@
             self.checkbox_gamemode.set_active(False)
             self.checkbox_gamemode.set_tooltip_text(_("Tweaks your system to 
improve performance. NOT INSTALLED."))
 
-        lossless_dll_path = find_lossless_dll()
         if os.path.exists(lsfgvk_path):
-            if lossless_dll_path or os.path.exists(self.lossless_location):
+            if lossless_dll or os.path.exists(self.lossless_location):
                 self.button_lossless.set_sensitive(True)
             else:
                 self.button_lossless.set_sensitive(False)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.10/faugus/steam_setup.py 
new/faugus-launcher-1.18.12/faugus/steam_setup.py
--- old/faugus-launcher-1.18.10/faugus/steam_setup.py   2026-04-30 
19:42:40.000000000 +0200
+++ new/faugus-launcher-1.18.12/faugus/steam_setup.py   2026-05-03 
20:58:16.000000000 +0200
@@ -2,6 +2,7 @@
 import subprocess
 
 from pathlib import Path
+from faugus.path_manager import PathManager
 from gi.repository import GdkPixbuf
 
 IS_FLATPAK = 'FLATPAK_ID' in os.environ or os.path.exists('/.flatpak-info')
@@ -50,9 +51,9 @@
 def detect_steam_folder():
     steam_version = detect_steam_version()
     if steam_version == "flatpak":
-        return (Path.home() / ".var" / "app" / "com.valvesoftware.Steam" / 
".steam" / "steam", True)
+        return 
(Path(PathManager.user_home(".var/app/com.valvesoftware.Steam/.steam/steam")), 
True)
     if steam_version == "native":
-        return (Path.home() / ".steam" / "steam", False)
+        return (Path(PathManager.user_home(".steam/steam")), False)
     return (None, False)
 
 steam_folder, IS_STEAM_FLATPAK = detect_steam_folder()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/faugus-launcher-1.18.10/meson.build 
new/faugus-launcher-1.18.12/meson.build
--- old/faugus-launcher-1.18.10/meson.build     2026-04-30 19:42:40.000000000 
+0200
+++ new/faugus-launcher-1.18.12/meson.build     2026-05-03 20:58:16.000000000 
+0200
@@ -1,6 +1,6 @@
 project(
   'faugus-launcher',
-  version: '1.18.10',
+  version: '1.18.12',
   meson_version: '>=1.2.0',
   license: 'MIT',
   license_files: 'LICENSE',

Reply via email to