zaphyra's git: nixfiles

zaphyra's nixfiles

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 
100 
101 
102 
103 
104 
105 
106 
107 
108 
109 
110 
111 
112 
113 
114 
115 
116 
117 
118 
119 
120 
121 
122 
123 
124 
125 
126 
127 
128 
129 
130 
131 
132 
133 
134 
135 
136 
{
  config,
  lib,
  pkgs,
  ...
}:
{

  options.zpha.profiles.graphical.enable = lib.mkEnableOption "graphical preset";

  config = lib.mkIf config.zpha.profiles.graphical.enable {
    preservation.preserveAt."/persist".users.zaphyra = {
      commonMountOptions = [
        "x-gdu.hide"
        "x-gvfs-hide"
      ];

      directories = [
        "Downloads"
        "Documents"
        "Pictures"
        "Videos"
        "Music"

        "Audiobooks"
        "Bahn-Richtlinien"

        "proj"

        {
          directory = ".local/share/Trash";
          # Trash should be accessed via a symlink. Nautilus is incompatible
          # with a bind-mounted trash.
          how = "symlink";
        }
      ];
    };

    services.udisks2.enable = true;
    systemd.network.wait-online.enable = false;

    common = {
      configure = {
        fonts.enable = true;
      };

      hardware = {
        intelGraphics.enable = true;
        bluetooth.enable = true;
        audio.enable = true;
        smartcard.enable = true;
      };

      services = {
        upower.enable = true;
        power-profiles-daemon.enable = true;

        NetworkManager.enable = true;

        gvfs.enable = true;

        greetd = {
          enable = true;
          autoLogin.command = "niri-session -l";
        };
      };
    };

    zpha = {
      configure = {
        fonts.enable = true;
        networkManagerProfiles.enable = true;
      };

      services = {
        dssd.enable = true;
        avahi.enable = true;
        pipewire.enable = true;
        batsignal.enable = true;

        oniri.enable = true;
      };

      programs = {
        shellUtilities.enable = true;
        nixUtilities.enable = true;
        deploymentUtilities.enable = true;
        chaosctl.enable = true;

        broot.enable = true;
        micro.enable = true;

        git.enable = true;
        gpg.enable = true;

        niri.enable = true;
        swaylock.enable = true;
        vibepanel.enable = true;
        vicinae.enable = true;

        wpaperd.enable = true;
        shaderbg.enable = true;

        ghostty.enable = true;

        nautilus.enable = true;
        gnome-text-editor.enable = true;
        celluloid.enable = true;
        loupe.enable = true;
        papers.enable = true;
        pdfarranger.enable = true;
        yt-dlp.enable = true;
        typst.enable = true;

        firefox.enable = true;
        thunderbird.enable = true;
        gajim.enable = true;
        dino.enable = true;
        gnome-calendar.enable = true;
      };
    };

    users.users.zaphyra = {
      extraGroups = [ "networkmanager" ];
      maid = {
        xdg.enable = true;

        packages = with pkgs; [
          adw-bluetooth
          zpha.nirilayout
        ];
      };
    };
  };

}