auto garbage collect, and the beginnings of modularization

+19 -5
configuration.nix
··· 10 10 11 11 boot = { 12 12 loader = { 13 - systemd-boot.enable = true; 13 + systemd-boot = { 14 + enable = true; 15 + configurationLimit = 10; 16 + }; 14 17 efi.canTouchEfiVariables = true; 15 18 }; 16 19 kernelPackages = pkgs.linuxPackages_latest; 17 20 }; 18 21 19 - nix.settings.experimental-features = [ 20 - "nix-command" 21 - "flakes" 22 - ]; 22 + nix = { 23 + gc = { 24 + automatic = true; 25 + dates = "weekly"; 26 + options = "--delete-older-than 1w"; 27 + }; 28 + 29 + settings = { 30 + experimental-features = [ 31 + "nix-command" 32 + "flakes" 33 + ]; 34 + auto-optimise-store = true; 35 + }; 36 + }; 23 37 24 38 services.fwupd.enable = true; 25 39
engines.nix home/engines.nix
+25 -19
flake.nix
··· 32 32 ... 33 33 }@inputs: 34 34 { 35 - nixosConfigurations.bobcat = nixpkgs.lib.nixosSystem { 36 - system = "x86_64-linux"; 37 - specialArgs = { 38 - inherit inputs; 35 + nixosConfigurations.bobcat = 36 + let 37 + username = "freyja"; 38 + specialArgs = { inherit username; }; 39 + in 40 + nixpkgs.lib.nixosSystem { 41 + system = "x86_64-linux"; 42 + specialArgs = { 43 + inherit inputs; 44 + }; 45 + modules = [ 46 + ./configuration.nix 47 + stylix.nixosModules.stylix 48 + nixos-hardware.nixosModules.lenovo-thinkpad-x280 49 + home-manager.nixosModules.home-manager 50 + { 51 + home-manager.useGlobalPkgs = true; 52 + home-manager.useUserPackages = true; 53 + home-manager.extraSpecialArgs = inputs // specialArgs; 54 + home-manager.users.${username} = ./users/${username}/home.nix; 55 + nixpkgs = { 56 + config.allowUnfree = true; 57 + }; 58 + } 59 + ]; 39 60 }; 40 - modules = [ 41 - ./configuration.nix 42 - stylix.nixosModules.stylix 43 - nixos-hardware.nixosModules.lenovo-thinkpad-x280 44 - home-manager.nixosModules.home-manager 45 - { 46 - home-manager.useGlobalPkgs = true; 47 - home-manager.useUserPackages = true; 48 - home-manager.users.freyja = ./home.nix; 49 - nixpkgs = { 50 - config.allowUnfree = true; 51 - }; 52 - } 53 - ]; 54 - }; 55 61 }; 56 62 }
+44 -44
home.nix home/gen.nix
··· 135 135 name = "BreezeX-RosePine-Linux"; 136 136 }; 137 137 138 - programs.helix = { 139 - enable = true; 140 - defaultEditor = true; 141 - settings = { 142 - #theme = "rose_pine_dawn"; 143 - editor = { 144 - lsp.display-messages = true; 145 - bufferline = "multiple"; 146 - }; 147 - }; 148 - languages = { 149 - language-server.tinymist = { 150 - command = "tinymist"; 151 - config = { 152 - preview.background.enabled = true; 153 - preview.background.args = [ 154 - "--data-plane-host=127.0.0.1:23635" 155 - "--invert-colors=never" 156 - "--open" 157 - ]; 158 - }; 159 - }; 160 - language = [ 161 - { 162 - name = "rust"; 163 - auto-format = true; 164 - language-servers = [ "rust-analyzer" ]; 165 - formatter = { 166 - command = "rustfmt"; 167 - }; 168 - } 169 - { 170 - name = "nix"; 171 - auto-format = true; 172 - formatter.command = "nixfmt"; 173 - language-servers = [ "nil" ]; 174 - } 175 - { 176 - name = "typst"; 177 - language-servers = [ "tinymist" ]; 178 - } 179 - ]; 180 - }; 181 - }; 138 + # programs.helix = { 139 + # enable = true; 140 + # defaultEditor = true; 141 + # settings = { 142 + # #theme = "rose_pine_dawn"; 143 + # editor = { 144 + # lsp.display-messages = true; 145 + # bufferline = "multiple"; 146 + # }; 147 + # }; 148 + # languages = { 149 + # language-server.tinymist = { 150 + # command = "tinymist"; 151 + # config = { 152 + # preview.background.enabled = true; 153 + # preview.background.args = [ 154 + # "--data-plane-host=127.0.0.1:23635" 155 + # "--invert-colors=never" 156 + # "--open" 157 + # ]; 158 + # }; 159 + # }; 160 + # language = [ 161 + # { 162 + # name = "rust"; 163 + # auto-format = true; 164 + # language-servers = [ "rust-analyzer" ]; 165 + # formatter = { 166 + # command = "rustfmt"; 167 + # }; 168 + # } 169 + # { 170 + # name = "nix"; 171 + # auto-format = true; 172 + # formatter.command = "nixfmt"; 173 + # language-servers = [ "nil" ]; 174 + # } 175 + # { 176 + # name = "typst"; 177 + # language-servers = [ "tinymist" ]; 178 + # } 179 + # ]; 180 + # }; 181 + # }; 182 182 }
+6
home/default.nix
··· 1 + { 2 + imports = [ 3 + ./helix.nix 4 + ./gen.nix 5 + ]; 6 + }
+49
home/helix.nix
··· 1 + { 2 + ... 3 + }: 4 + { 5 + programs.helix = { 6 + enable = true; 7 + defaultEditor = true; 8 + settings = { 9 + #theme = "rose_pine_dawn"; 10 + editor = { 11 + lsp.display-messages = true; 12 + bufferline = "multiple"; 13 + }; 14 + }; 15 + languages = { 16 + language-server.tinymist = { 17 + command = "tinymist"; 18 + config = { 19 + preview.background.enabled = true; 20 + preview.background.args = [ 21 + "--data-plane-host=127.0.0.1:23635" 22 + "--invert-colors=never" 23 + "--open" 24 + ]; 25 + }; 26 + }; 27 + language = [ 28 + { 29 + name = "rust"; 30 + auto-format = true; 31 + language-servers = [ "rust-analyzer" ]; 32 + formatter = { 33 + command = "rustfmt"; 34 + }; 35 + } 36 + { 37 + name = "nix"; 38 + auto-format = true; 39 + formatter.command = "nixfmt"; 40 + language-servers = [ "nil" ]; 41 + } 42 + { 43 + name = "typst"; 44 + language-servers = [ "tinymist" ]; 45 + } 46 + ]; 47 + }; 48 + }; 49 + }
+6
users/freyja/home.nix
··· 1 + { pkgs, ... }: 2 + { 3 + imports = [ 4 + ../../home 5 + ]; 6 + }