DEVELOPMENT ENVIRONMENT

~liljamo/nix-arta

ref: 33205b70a9c5daf9fe40008bbf68bcac2316069e nix-arta/modules/hosts/ws/arwen/default.nix -rw-r--r-- 3.0 KiB
33205b70Jonni Liljamo feat: arwen untested a month ago
                                                                                
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
{inputs, ...}: let
  channel = "unstable";
  system = "x86_64-linux";
  hostName = "arwen";
in {
  flake.nixosConfigurations.${hostName} = inputs."nixpkgs-${channel}".lib.nixosSystem {
    inherit system;
    specialArgs = {
      inherit inputs;
      lib = inputs."nixpkgs-${channel}".lib.extend (
        final: prev:
          import ../../../../lib {
            inherit inputs;
            lib = final;
          }
      );
    };
    modules = [
      {
        networking.hostName = hostName;
      }

      ./_nixos

      inputs.nixos-hardware.nixosModules.lenovo-thinkpad-e495
      inputs.preservation.nixosModules.preservation
      inputs.sops-nix.nixosModules.sops
      inputs."home-manager-${channel}".nixosModules.home-manager

      ({
        config,
        lib,
        ...
      }: let
        user = "skye";
      in {
        imports = with inputs.self.modules.nixos;
          [
            core
            amdgpu
            audio
            nvim
            nix
            tailscale
            lazygit
            gnupg
            tlp

            home-manager
            {
              home-manager.users.${user} = {
                imports = with inputs.self.modules.homeManager;
                  [
                    git
                  ]
                  ++ [
                    {
                      home.stateVersion = config.system.stateVersion;
                      home.file.".config/niri/config.kdl".source = ./niri.kdl;
                    }

                    # TODO: see alice
                    {
                      arta.git = {
                        email = "jonni@liljamo.com";
                        name = "Jonni Liljamo";
                      };

                      arta.waybar.extraConfig = {
                        output = ["eDP-1"];

                        modules-left = ["niri/workspaces"];
                        modules-right = [
                          "bluetooth"
                          "custom/sep"
                          "backlight"
                          "custom/sep"
                          "battery"
                          "custom/sep"
                          "wireplumber"
                          "custom/sep"
                          "disk"
                          "custom/sep"
                          "network"
                          "custom/sep"
                          "clock"
                          "custom/sep"
                          "niri/language"
                          "tray"
                        ];

                        "network".interface = "wlp4s0";
                      };
                    }
                  ];
              };
            }
          ]
          ++ [
            inputs.self.modules.nixos.${user}
            {
              users.users.${user}.extraGroups = ["video"];
            }
          ]
          ++ lib.flatten [
            (lib.arta.importBoth "niri" user)
            (lib.arta.importBoth "shell" user)
            (lib.arta.importBoth "passmenu" user)
          ];
      })
    ];
  };
}