nix/home/util/flatpak.nix
atagen 7485de646a current
linted
2025-02-02 17:07:42 +11:00

61 lines
1.3 KiB
Nix

{
config,
lib,
...
}:
let
inherit (lib) mkOption;
inherit (builtins) typeOf listToAttrs;
in
{
options.flatpaks = mkOption {
default = [ ];
type =
with lib.types;
listOf (
either str (submodule {
options = {
name = mkOption {
type = str;
};
overrides = mkOption {
type = attrsOf (attrsOf (either str (listOf str)));
default = { };
};
};
})
);
};
config.services.flatpak =
let
userOverrides = listToAttrs (
map (
fp:
if (typeOf fp == "string") then
{
name = fp;
value = { };
}
else
{
inherit (fp) name;
value = fp.overrides;
}
) config.flatpaks
);
in
{
enable = true;
uninstallUnmanaged = true;
update.auto.enable = true;
packages = map (fp: if (typeOf fp == "set") then fp.name else fp) config.flatpaks;
overrides = userOverrides // {
global = {
Context.sockets = [ "wayland" ];
Environment = {
ELECTRON_OZONE_PLATFORM_HINT = "auto";
};
};
};
};
}