64 lines
1.9 KiB
Nix
64 lines
1.9 KiB
Nix
{
|
|
config,
|
|
inputs,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
with lib; let
|
|
cfg = config.custom.services.flatpak;
|
|
in {
|
|
options.custom.services.flatpak.enable = mkOption {default = false;};
|
|
|
|
config = mkIf cfg.enable {
|
|
services.flatpak.enable = true;
|
|
|
|
#!! Only takes effect if /usr/* shares do not exist
|
|
# Nixpkgs workaround requires packages in the global environment
|
|
# https://github.com/NixOS/nixpkgs/pull/262462
|
|
environment.systemPackages =
|
|
config.fonts.packages
|
|
++ [
|
|
config.home-manager.users.${config.custom.username}.gtk.cursorTheme.package
|
|
config.home-manager.users.${config.custom.username}.gtk.iconTheme.package
|
|
];
|
|
|
|
home-manager.users.${config.custom.username} = {
|
|
imports = [inputs.nix-flatpak.homeManagerModules.nix-flatpak];
|
|
|
|
# https://wiki.nixos.org/wiki/Flatpak
|
|
# https://github.com/gmodena/nix-flatpak
|
|
services.flatpak = {
|
|
enable = true;
|
|
uninstallUnmanaged = true; # Immutable flatpaks
|
|
update.auto.enable = true; # Auto update flatpaks weekly
|
|
|
|
#!! Installation occurs during activation
|
|
#?? flatpak search NAME
|
|
packages =
|
|
optionals config.custom.default [
|
|
"com.github.tchx84.Flatseal" # Flatpak permissions editor
|
|
]
|
|
++ optionals config.custom.minimal [
|
|
"net.retrodeck.retrodeck" # Game emulator
|
|
]
|
|
++ optionals config.custom.full [
|
|
"app.drey.Biblioteca" # Documentation viewer
|
|
"io.github.ronniedroid.concessio" # Permissions converter
|
|
"re.sonny.Workbench" # GTK prototyper
|
|
];
|
|
|
|
# https://github.com/gmodena/nix-flatpak?tab=readme-ov-file#overrides
|
|
overrides.global = {
|
|
Context.filesystems = [
|
|
"xdg-config/gtk-3.0:ro"
|
|
"xdg-config/gtk-4.0:ro"
|
|
|
|
# HACK: Globally allow access to /nix/store for symlinked themes
|
|
"/nix/store:ro"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|