It’s the only non-declarative part of my systems at the moment, so I care a lot about this. Not just syncing applications, mind you, the application-specific overrides and other settings are important too.
I’ve thought about a solution to this in the past, this is also roughly what I came up with, except of course said list would be synced by writing it to a well-known path (e.g.
$HOME/.config/flatpak/apps or such) and the daemon could pick up changes from there. Ideally it would also listen for prods on a UNIX socket so that whatever syncs the file can say “hey, I’ve updated the list, check if you need to do anything”.
I think it’s important that such a tool would not rely on cloud services (or github gists), so that its information source could be supplied by whatever mechanism people already have in place for file syncing. It makes it less complicated too if it doesn’t need to handle all the thousands of cloud storage, gist, pastebin and whatnot protocols out there.
I think it’s also important that the application list is in a format accessible to tools (toml, yaml, json, whatnot), and includes the overrides you set. That way, at least with nix, I can properly write the system-specific filesystem access overrides I need. No idea how to properly do this with other sync tools, it’s why I use nix. Perhaps allow reading multiple files, and only sync specific ones based on use case?
Obviously I’d find it really cool if someone started on this Would love to help out/test.
The benefits to me are clear: when install a new system (or reinstall my current one because I borked it…), all my applications move with me. I no longer need to fear getting a fresh system, or dread restoring a backup that will take me weeks.
As-written, the proposed project may not fit well within this particular ecosystem though.