33 lines
988 B
Nix
33 lines
988 B
Nix
|
{ pkgs, ... }:
|
||
|
|
||
|
let
|
||
|
# tricks xdg-document-portal into not using the document portal for pointless things
|
||
|
# note that we report read-write even if the access is supposed to be read-only,
|
||
|
# because ticking the checkbox in the dialog every time is annoying, ro status
|
||
|
# is enforced by the sandbox anyway
|
||
|
# example call: flatpak info --file-access=/srv/file.txt com.nixpak.Whatever
|
||
|
documentPortalFileAccessTrick = pkgs.writeShellScriptBin "flatpak" ''
|
||
|
[[ "$1" == "info" ]] || exit 1
|
||
|
case "$3" in
|
||
|
org.chromium.Chromium)
|
||
|
case "''${2#--file-access=}" in
|
||
|
$HOME/Downloads*) echo read-write;;
|
||
|
*) echo hidden;;
|
||
|
esac;;
|
||
|
io.bassi.Amberol)
|
||
|
case "''${2#--file-access=}" in
|
||
|
$HOME/Music*) echo read-write;;
|
||
|
/srv/data/music*) echo read-write;;
|
||
|
*) echo hidden;;
|
||
|
esac;;
|
||
|
*)
|
||
|
echo hidden;;
|
||
|
esac
|
||
|
'';
|
||
|
in
|
||
|
{
|
||
|
environment.systemPackages = [
|
||
|
documentPortalFileAccessTrick
|
||
|
];
|
||
|
}
|