Hi,
I am the publisher of dupex (publisher ewitsolutions), a GTK4 desktop application that finds byte-identical duplicate files and helps the user decide which copies to remove. It is strictly confined, base: core24, and uses the gnome extension.
I would like to request auto-connect for three interfaces. home is already auto-connected and covers the common case; the three below are what the app needs to work on anything outside $HOME and to scan efficiently.
removable-media
The core use case for a duplicate finder is comparing a large external drive against the internal one — photo archives, backup disks, and NAS shares that the user mounted under /mnt or /media (for example a kernel CIFS mount at/mnt/nas). Without this interface those paths are simply not readable and the app cannot do the one thing it exists for.
The file-chooser portal does not solve this: when the user picks such a folder through the portal, the app receives a document-portal path that masks the real filesystem type, so even a successfully opened NAS folder is misidentified.
mount-observe
Read-only access to /proc/*/mountinfo. dupEx determines the storage medium of each scan path — SSD, spinning HDD, or network filesystem — before it starts, and mountinfo is how it maps a path to the block device or the remote share behind it. The medium decides the scan strategy: thread count, read-ahead and whether byte-comparison is worth doing in parallel at all. Choosing the HDD strategy on a NAS, or the SSD strategy on a spinning disk, costs a multiple of the runtime on large scans.
hardware-observe
Read-only access to /sys/block/<dev>/queue/rotational, the second half of the same detection: 0 means SSD/NVMe, 1 means a rotating disk. This is the only reliable way to tell the two apart, and it is read once per scan path at startup.
What happens without them
All three fail silently as Permission denied. The medium is reported as unknown, the pre-scan loses the basis for its thread choice, and external drives are invisible. The app detects this case and prints the missing interfaces plus the required snap connect commands into its output tab — but that is a workaround for a first run that already went wrong, not something a desktop user
should have to do.
None of the three is used to modify anything; all reads are for the paths the user explicitly selected.
Thanks for taking a look.