From 28cafbb2fdcc5cfec525b8d8900370e4dda46c72 Mon Sep 17 00:00:00 2001 From: Daniel Johnson Date: Tue, 12 May 2026 19:59:38 -0400 Subject: [PATCH] Treat /var/home//* as removable on Fedora Atomic On Fedora Silverblue, Kinoite, Bazzite, etc., /home is a symlink to /var/home, and accounts created after first-boot often have $HOME set to /var/home/ directly. Game directories stored under that path were misclassified as protected by is_removeable(), so the uninstall dialog refused to delete them. Extend the existing /var special case to fold /var/home//* into the /home//* logic, preserving the same protections for the user root and PROTECTED_HOME_FOLDERS entries. Fixes #6685. Co-Authored-By: Claude Opus 4.7 --- lutris/util/system.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lutris/util/system.py b/lutris/util/system.py index a3c982499..f147a1e49 100644 --- a/lutris/util/system.py +++ b/lutris/util/system.py @@ -476,10 +476,14 @@ def is_removeable(path: str, system_config: dict[str, str]) -> bool: if parts[0] == "var": # Fedora Silverblue puts mount points under /var since they are mutable - # so we'll special case /var/mnt//*. + # so we'll special case /var/mnt//* and /var/media//*, + # and /var/home//* (since /home is a symlink to /var/home). if len(parts) > 3 and parts[1] in ("mnt", "media"): return True - return False + if len(parts) > 1 and parts[1] == "home": + parts = parts[1:] + else: + return False if parts[0] in ("usr", "lib", "etc", "boot", "sbin", "bin"): # Path is part of the system folders