Before I get to any point, I just want to let you know that I've fixed the problem on my end, so you don't have to worry anymore xd
First I will write what I did explaining the FileDialog thing, then under that will be the XDG related stuff. But as I said, no need to worry anymore
---
When I cloned the project from GitHub, running it would give me this error:
E 0:00:18:0957 Controller.gd:237 @ show_file_dialog(): Failed to send DBus message: Could not activate remote peer 'org.freedesktop.portal.Desktop': activation request failed: unit is masked <C++ Source> platform/linuxbsd/freedesktop_portal_desktop.cpp:460 @ file_dialog_show() <Stack Trace> Controller.gd:237 @ show_file_dialog() IOManager.gd:122 @ load_ceol_song() IOManager.gd:136 @ <anonymous lambda>() WindowPopup.gd:161 @ <anonymous lambda>()
What I meant with "Godot's FileDialog" is to use the in-game node. So what I did first was make the node via code (`FileDialog.new()` and so on), and wrote some basic logic. At the moment the function only tries to use the native file picker and does nothing if popup_centered() errors out (now, I haven't read the rest of the code related to file dialog, there might be better place of coding the fallback thing xd)
XDG portals are just this "new" standard that helps applications access resources:
- https://wiki.archlinux.org/title/XDG_Desktop_Portal
- https://flatpak.github.io/xdg-desktop-portal/
"Masking out" is essentially stopping the systemd service from ever starting (either on boot or by an application)
I had problems with XDG portals for a while not on my system and never got around on fixing them — until now! You pretty much don't have to do anything really... but a fallback would still be nice tho