nixos-dotfiles

nixos-dotfiles

https://git.tonybtw.com/nixos-dotfiles.git git://git.tonybtw.com/nixos-dotfiles.git
2,592 bytes raw
1
{
2
  description = "NixOS from Scratch";
3
4
  inputs = {
5
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6
    nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
7
8
    home-manager = {
9
      url = "github:nix-community/home-manager/release-25.05";
10
      inputs.nixpkgs.follows = "nixpkgs";
11
    };
12
    oxwm = {
13
      url = "github:tonybanters/oxwm";
14
      inputs.nixpkgs.follows = "nixpkgs";
15
    };
16
    # nwm = {
17
    #   url = "github:tonybanters/nwm-flake";
18
    #   inputs.nixpkgs.follows = "nixpkgs";
19
    # };
20
    mango = {
21
      url = "github:tonybanters/mangowc";
22
      inputs.nixpkgs.follows = "nixpkgs";
23
    };
24
    # quickshell = {
25
    #   url = "github:outfoxxed/quickshell";
26
    #   inputs.nixpkgs.follows = "nixpkgs";
27
    # };
28
    # noctalia = {
29
    #   url = "github:noctalia-dev/noctalia-shell";
30
    #   inputs.nixpkgs.follows = "nixpkgs";
31
    #   inputs.quickshell.follows = "quickshell";
32
    # };
33
  };
34
35
  outputs = {
36
    self,
37
    nixpkgs,
38
    nixpkgs-unstable,
39
    home-manager,
40
    oxwm,
41
    mango,
42
    # nwm,
43
    # noctalia,
44
    ...
45
  }: let
46
    system = "x86_64-linux";
47
    pkgs = import nixpkgs {
48
      system = system;
49
    };
50
    unstable_pkgs = import nixpkgs-unstable {
51
      system = system;
52
      config.allowUnfree = true; # Sorry Uncle Richard
53
    };
54
    mkHost = hostname:
55
      nixpkgs.lib.nixosSystem {
56
        system = system;
57
        specialArgs = {inherit unstable_pkgs oxwm;};
58
        modules = [
59
          ./configuration.nix
60
          ./hosts/${hostname}/hardware-configuration.nix
61
          {networking.hostName = hostname;}
62
          # ./modules/noctalia.nix
63
          oxwm.nixosModules.default
64
          # nwm.nixosModules.default
65
          mango.nixosModules.mango
66
          home-manager.nixosModules.home-manager
67
          {
68
            home-manager = {
69
              useGlobalPkgs = true;
70
              useUserPackages = true;
71
              users.tony = import ./home.nix;
72
              users.sandbox = import ./home-sandbox.nix;
73
              backupFileExtension = "backup";
74
              extraSpecialArgs = {inherit unstable_pkgs;};
75
            };
76
          }
77
        ];
78
      };
79
  in {
80
    devShells.${system}.st = pkgs.mkShell {
81
      # toolchain + headers/libs
82
      packages = with pkgs; [
83
        pkg-config
84
        xorg.libX11
85
        xorg.libXft
86
        xorg.libXinerama
87
        fontconfig
88
        freetype
89
        harfbuzz
90
      ];
91
      shellHook = ''
92
        export PS1="(suckless-dev) $PS1"
93
      '';
94
    };
95
    nixosConfigurations = {
96
      nixos-btw = mkHost "nixos-btw";
97
      nixos-srv = mkHost "nixos-srv";
98
    };
99
  };
100
}