all repos — nixfiles @ b2e77c2c6aa2d7fffd506eaee33cbf1d3e805960

System and user configuration, managed by nix and home-manager

system/settings/darwin.nix (view raw)

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
{
  pkgs,
  lib,
  ...
}:
{
  imports = [
    ./configuration/nix.nix
    ./fonts.nix
  ];
  services.nix-daemon = {
    enableSocketListener = false;
  };

  environment.profiles =
    with lib;
    mkMerge [
      (mkOrder 800 [ "\${XDG_STATE_HOME:-$HOME/.local/state}/nix/profile" ])
      [
        "/run/current-system/sw"
        "/nix/var/nix/profiles/default"
      ]
    ];

  nix = {
    settings.extra-platforms = "aarch64-darwin x86_64-darwin";

    settings.trusted-users = [ "@admin" ];
  };
  services.angrr = {
    enable = true;
    timer.enable = true;
  };

  nixpkgs.config = {
    allowUnfree = true;
  };

  services.lorri.enable = true;
  launchd.user.agents.lorri-notify = {
    path = with pkgs; [
      gnugrep
      jq
      lorri
      terminal-notifier
    ];
    script =
      let
        jqFile = ''
          (
            (.Started?   | values | ["starting", .nix_file]),
            (.Completed? | values | ["complete", .nix_file]),
            (.Failure?   | values | ["failed", .nix_file])
          )
          | @tsv
        '';
      in
        ''
          set -euo pipefail
          lorri info --shell-file . | grep -q 'Lorri Daemon Status:.*running'
          lorri internal stream-events --kind live \
            | jq --unbuffered -r '${jqFile}' \
            | while IFS=$'\t' read -r status nixFile icon; do
                nixFile=$(dirname ''${nixFile#$HOME/})
                terminal-notifier -group "lorri-$nixFile-$status" -title "Lorri" \
                  -subtitle "Build $status" -message "$nixFile" \
                  -ignoreDnD
                sh -c "sleep 1 && terminal-notifier -remove \"lorri-$nixFile-$status\""
              done
        '';
    serviceConfig = {
      RunAtLoad = true;
    };
  };

  launchd.daemons.limit-maxfiles = {
    serviceConfig = {
      Label = "limit-maxfiles";
      RunAtLoad = true;
      ProgramArguments = [
        "launchctl"
        "limit"
        "maxfiles"
        "64000"
        "52428"
      ];
    };
  };

  environment.systemPackages = with pkgs; [
    watch
    coreutils-prefixed
    iproute2mac
  ];

  services.dnsmasq = {
    enable = true;
    bind = "::1";
    port = 5553;
    addresses = {
      localhost = "::1";
      test = "::1";
    };
  };
}