diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2018-02-13 02:09:51 +0100 |
---|---|---|
committer | Jan Tojnar <jtojnar@gmail.com> | 2018-05-15 13:31:13 +0200 |
commit | ec80c5e4c48df8264e5e230bb81eb55e045382dc (patch) | |
tree | e4d54ef918d1910a91a272cfa783f05f98505cde /nixos/modules/services/desktops/flatpak.nix | |
parent | 843bc0f73a648426b2206cda88c5bf49563c3990 (diff) | |
download | nixlib-ec80c5e4c48df8264e5e230bb81eb55e045382dc.tar nixlib-ec80c5e4c48df8264e5e230bb81eb55e045382dc.tar.gz nixlib-ec80c5e4c48df8264e5e230bb81eb55e045382dc.tar.bz2 nixlib-ec80c5e4c48df8264e5e230bb81eb55e045382dc.tar.lz nixlib-ec80c5e4c48df8264e5e230bb81eb55e045382dc.tar.xz nixlib-ec80c5e4c48df8264e5e230bb81eb55e045382dc.tar.zst nixlib-ec80c5e4c48df8264e5e230bb81eb55e045382dc.zip |
nixos/flatpak: allow specifying extra portals
Diffstat (limited to 'nixos/modules/services/desktops/flatpak.nix')
-rw-r--r-- | nixos/modules/services/desktops/flatpak.nix | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/nixos/modules/services/desktops/flatpak.nix b/nixos/modules/services/desktops/flatpak.nix index d191eeff990f..23480e652675 100644 --- a/nixos/modules/services/desktops/flatpak.nix +++ b/nixos/modules/services/desktops/flatpak.nix @@ -3,26 +3,45 @@ with lib; -{ +let + cfg = config.services.flatpak; +in { ###### interface options = { services.flatpak = { enable = mkEnableOption "flatpak"; + + extraPortals = mkOption { + type = types.listOf types.package; + default = []; + description = '' + List of additional portals to add to path. Portals allow interaction + with system, like choosing files or taking screenshots. At minimum, + a desktop portal implementation should be listed. GNOME already + adds <package>xdg-desktop-portal-gtk</package>; for KDE, there + is <package>xdg-desktop-portal-kde</package>. Other desktop + environments will probably want to do the same. + ''; + }; }; }; ###### implementation - config = mkIf config.services.flatpak.enable { + config = mkIf cfg.enable { environment.systemPackages = [ pkgs.flatpak ]; - services.dbus.packages = [ pkgs.flatpak ]; + services.dbus.packages = [ pkgs.flatpak pkgs.xdg-desktop-portal ] ++ cfg.extraPortals; + + systemd.packages = [ pkgs.flatpak pkgs.xdg-desktop-portal ] ++ cfg.extraPortals; - systemd.packages = [ pkgs.flatpak ]; + environment.variables = { + PATH = [ + "$HOME/.local/share/flatpak/exports/bin" + "/var/lib/flatpak/exports/bin" + ]; - environment.variables.PATH = [ - "$HOME/.local/share/flatpak/exports/bin" - "/var/lib/flatpak/exports/bin" - ]; + XDG_DESKTOP_PORTAL_PATH = map (p: "${p}/share/xdg-desktop-portal/portals") cfg.extraPortals; + }; }; } |