> I do however want the very specific programs that I have intentionally installed to be able to access my home folder easily.
I don't. My standard operating practice is to virtualize them.
My security posture is considerably more lax towards free and open source software, for obvious reasons, and even then this trust only extends to the software in my Linux distribution's repositories. Stuff coming from PyPI, npm, cargo, ruby gems, and other such "developer centric" repositories get the full virtualization treatment. If it's easy for randoms to publish packages, then it's equally easy for malware to make it in.
I have a base system image that gets forked off into delta qcow2 images for every project I'm working on or whatever ephemeral execution context I need.
I started a side project to build software just to manage those VMs. I'm daily driving this thing even though it's my first "vibecoded" project, it's just way too useful and has saved me quite a few times from accidents.
https://github.com/matheusmoreira/virtdev
The firewall works but it's pretty clunky. I'm working on a custom Rust network stack to replace it.
You'd probably prefer something that isn't literally made by one guy and his AIs though. Docker sandboxes seem to be a good solution that also employs virtualization.
https://news.ycombinator.com/item?id=49239751
Before I made all this, I used to use firejail.