Skip to content

Commit dbcc65a

Browse files
committed
fix: restore device permissions when HHD exits
Fix unhide_all() to trigger udev reload even when _hidden list is empty. Resolves devices remaining with 000 permissions after HHD stops.
1 parent 8795ca0 commit dbcc65a

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

src/hhd/controller/lib/hide.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -199,10 +199,18 @@ def unhide_all():
199199
except Exception:
200200
pass
201201

202-
if not removed:
202+
# Always trigger udev reload if we removed rules OR have hidden devices
203+
if removed or _hidden:
204+
# We have to reload affected devices if we removed rules
205+
for parent in _hidden:
206+
reload_children(parent)
207+
208+
# If no specific devices to reload but we removed rules, reload all input devices
209+
if removed and not _hidden:
210+
subprocess.run(["udevadm", "trigger", "--subsystem-match=input"], capture_output=True)
211+
subprocess.run(["udevadm", "settle"], capture_output=True)
212+
213+
_hidden.clear()
203214
return True
204215

205-
# We have to reload affected devices if we removed rules
206-
for parent in _hidden:
207-
reload_children(parent)
208-
_hidden.clear()
216+
return True

0 commit comments

Comments
 (0)