(mirror) personal dotfiles
github.com/crescentrose/dotfiles
1{
2 description = "starlight";
3
4 inputs = {
5 nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
6
7 home-manager = {
8 url = "github:nix-community/home-manager";
9 inputs.nixpkgs.follows = "nixpkgs";
10 };
11
12 zen-browser = {
13 url = "github:0xc000022070/zen-browser-flake";
14 inputs.nixpkgs.follows = "nixpkgs";
15 };
16
17 nixos-hardware.url = "github:NixOS/nixos-hardware";
18
19 ragenix = {
20 url = "github:yaxitech/ragenix";
21 inputs.nixpkgs.follows = "nixpkgs";
22 };
23
24 nix-darwin = {
25 url = "github:nix-darwin/nix-darwin/master";
26 inputs.nixpkgs.follows = "nixpkgs";
27 };
28
29 dms = {
30 url = "github:AvengeMedia/DankMaterialShell/stable";
31 inputs.nixpkgs.follows = "nixpkgs";
32 };
33 };
34
35 outputs =
36 inputs@{
37 home-manager,
38 nixos-hardware,
39 nixpkgs,
40 ragenix,
41 nix-darwin,
42 dms,
43 ...
44 }:
45 let
46 linuxPkgs = import nixpkgs { system = "x86_64-linux"; };
47 darwinPkgs = import nixpkgs { system = "aarch64-darwin"; };
48 devShellHook = ''
49 export PATH="$PWD/scripts/bin:$PATH"
50 printf "\n❄️ Quick reference:\n\n"
51 printf " • \`manage-system update\` – update the flake\n"
52 printf " • \`manage-system rebuild\` – rebuild and switch\n"
53 printf " • \`manage-system clean-up\` – collect garbage\n"
54 printf "\n💡 Once installed, these commands are available system-wide.\n\n"
55 '';
56 in
57 {
58 devShells = {
59 "x86_64-linux".default = linuxPkgs.mkShellNoCC {
60 name = "dotfiles-linux";
61 buildPackages = [ linuxPkgs.nushell ];
62 shellHook = devShellHook;
63 };
64
65 "aarch64-darwin".default = darwinPkgs.mkShellNoCC {
66 name = "dotfiles-mac";
67 buildPackages = [ darwinPkgs.nushell ];
68 shellHook = devShellHook;
69 };
70 };
71
72 nixosConfigurations = {
73 starlight = nixpkgs.lib.nixosSystem {
74 system = "x86_64-linux";
75 specialArgs = inputs;
76 modules = [
77 ./machines/starlight
78 dms.nixosModules.greeter
79 nixos-hardware.nixosModules.common-pc
80 nixos-hardware.nixosModules.common-pc-ssd
81 nixos-hardware.nixosModules.common-gpu-amd
82 nixos-hardware.nixosModules.common-cpu-amd-pstate
83 nixos-hardware.nixosModules.common-cpu-amd-zenpower
84 ragenix.nixosModules.default
85 home-manager.nixosModules.home-manager
86 {
87 home-manager = {
88 users.ivan = import ./home/_home.nix;
89 extraSpecialArgs = inputs;
90 };
91 }
92 ];
93 };
94 };
95
96 darwinConfigurations = {
97 work = nix-darwin.lib.darwinSystem {
98 modules = [
99 ./machines/work
100 home-manager.darwinModules.home-manager
101 {
102 home-manager = {
103 users."ivan.ostric" = import ./home/_work.nix;
104 backupFileExtension = ".before-nix-darwin";
105 extraSpecialArgs = inputs;
106 };
107 }
108 ];
109 };
110 };
111 };
112}