1{
2 config,
3 lib,
4 pkgs,
5 ...
6}: {
7 options.myNixOS.services.flatpak.enable = lib.mkEnableOption "flatpak package manager";
8 config = lib.mkIf config.myNixOS.services.flatpak.enable {
9 fileSystems = let
10 mkRoSymBind = path: {
11 device = path;
12 fsType = "fuse.bindfs";
13 options = ["ro" "resolve-symlinks" "x-gvfs-hide"];
14 };
15
16 aggregatedIcons = pkgs.buildEnv {
17 name = "system-icons";
18 paths = with pkgs; [
19 adwaita-icon-theme
20 morewaita-icon-theme
21 gnome-themes-extra
22 ];
23
24 pathsToLink = ["/share/icons"];
25 };
26
27 aggregatedFonts = pkgs.buildEnv {
28 name = "system-fonts";
29 paths = config.fonts.packages;
30 pathsToLink = ["/share/fonts"];
31 };
32 in {
33 "/usr/share/icons" = mkRoSymBind "${aggregatedIcons}/share/icons";
34 "/usr/share/fonts" = mkRoSymBind "${aggregatedFonts}/share/fonts";
35 };
36
37 fonts = {
38 fontDir.enable = true;
39 packages = with pkgs; [
40 adwaita-fonts
41 nerd-fonts.jetbrains-mono
42 noto-fonts
43 noto-fonts-cjk-sans
44 noto-fonts-emoji
45 roboto-flex
46 source-code-pro
47 source-sans-pro
48 ];
49 };
50
51 services.flatpak.enable = true;
52 system.fsPackages = [pkgs.bindfs];
53 xdg.portal.enable = true;
54 };
55}