about summary refs log tree commit diff stats
path: root/flake/nixosConfigurations/common.nix
blob: 68758bb644dc8c643fc3db0f5c7c4007efce10b2 (plain) (blame)
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
# This file contains common configuration applied to every host.
# It should only `enable` options defined in the `modules` directory.
{config, ...}: {
  soispha = {
    boot.enable = true;
    cleanup.enable = true;
    documentation.enable = true;

    fonts = {
      enable = true;
      enableEmoji = true;
    };

    home-manager.enable = true;
    impermanence = {
      enable = true;

      directories = [
        "/etc/nixos"
        "/var/log"
        "/var/lib/systemd"
        "/var/lib/nixos"
      ];
    };
    polkit.enable = true;
    power.enable = true;

    services = {
      adb = {
        enable = true;
        user = "soispha";
      };
      fwupd.enable = true;
      postgresql.enable = false;
      printing.enable = true;
      scanning.enable = true;
      snapper.enable = true;
      steam.enable = false;
      systemDiff.enable = true;
      unison = {
        enable = true;

        foreign.userName = "soispha";
        dataDir = "${config.home-manager.users.soispha.xdg.dataHome}/unison";
        userSourceDir = "/srv/home/soispha";
        pathsToIgnore = let
          extractTarget = attr: "~/${attr.target}";
          homeManagerSymlinks =
            builtins.map extractTarget
            (builtins.attrValues
              config.home-manager.users.soispha.home.file);
        in
          [
            # already synchronized by the taskserver
            "~/.local/share/task"

            # Should not be synchronized
            "~/.local/share/unison"

            # Is just to big to be synchronized (# TODO: Work around that <2024-08-31> )
            "~/media/music"
          ]
          ++ homeManagerSymlinks;

        pathsToSync = [
          "~/.local/state/mpv"
          "~/.local/state/nvim"
          "~/.local/share"
          "~/.local/.Trash-1000"

          "~/.mozilla/.Trash-1000"
          "~/.mozilla/firefox"

          "~/media"
          "~/school"
          "~/repos"
        ];
      };
    };

    programs = {
      atuin.enable = true;
      git.enable = true;
      imv.enable = true;
      less.enable = true;
      lf.enable = true;
      zathura.enable = true;
      zsh.enable = true;
    };

    sound.enable = true;
    version.enable = true;
  };
}