diff --git a/common/default.nix b/common/default.nix deleted file mode 100644 index 3d6c5c885dc901a56db06a891cc78b1d71603f70..0000000000000000000000000000000000000000 --- a/common/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ ... }: -{ - nix = { - gc = { - automatic = true; - randomizedDelaySec = "15m"; - }; - optimise.automatic = true; - settings.experimental-features = [ - "flakes" - "nix-command" - ]; - }; - - time.timeZone = "America/Chicago"; - i18n = { - defaultLocale = "en_US.UTF-8"; - extraLocaleSettings = { - LC_ADDRESS = "en_US.UTF-8"; - LC_IDENTIFICATION = "en_US.UTF-8"; - LC_MEASUREMENT = "en_US.UTF-8"; - LC_MONETARY = "en_US.UTF-8"; - LC_NAME = "en_US.UTF-8"; - LC_NUMERIC = "en_US.UTF-8"; - LC_PAPER = "en_US.UTF-8"; - LC_TELEPHONE = "en_US.UTF-8"; - LC_TIME = "en_US.UTF-8"; - }; - }; -} diff --git a/dragonwell/default.nix b/dragonwell/default.nix index 888c7038aa7023b9eb2aabf4d9522b832d409ddf..8480926ea43d7a4c0098c7433cbbf11e2010369e 100644 --- a/dragonwell/default.nix +++ b/dragonwell/default.nix @@ -1,9 +1,11 @@ -{ jolheiser, importDir, ... }: +{ jolheiser, ... }: let key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+uhnfFLhlyfGGsksSxh5IIY6gnIMryeQ2EiM979kZa"; in { - imports = importDir ./services ++ [ ./hardware.nix ]; + imports = + (map (name: ./services + "/${name}") (builtins.attrNames (builtins.readDir ./services))) + ++ [ ./hardware.nix ]; boot.tmp.cleanOnBoot = true; zramSwap.enable = true; @@ -40,6 +42,18 @@ isNormalUser = true; openssh.authorizedKeys.keys = [ key ]; }; "root".openssh.authorizedKeys.keys = [ key ]; + }; + + nix = { + gc = { + automatic = true; + randomizedDelaySec = "15m"; + }; + optimise.automatic = true; + settings.experimental-features = [ + "flakes" + "nix-command" + ]; }; system.stateVersion = "22.11"; diff --git a/dragonwell/services/restic.nix b/dragonwell/services/restic.nix index 91a9baaa3ffb20092c5a9cb4a687a2709aba896c..ae584018b16c7bdc1fadf83f4729344ba81a839c 100644 --- a/dragonwell/services/restic.nix +++ b/dragonwell/services/restic.nix @@ -1,9 +1,4 @@ -{ - config, - lib, - pkgs, - ... -}: +{ config, lib, ... }: let enable = true; in @@ -12,9 +7,7 @@ age.secrets = { restic-env.file = ../../secrets/restic-env.age; restic-pass.file = ../../secrets/restic-pass.age; restic-repo.file = ../../secrets/restic-repo.age; - restic-webhook.file = ../../secrets/restic-webhook.age; }; - services.restic.backups.dragonwell = { initialize = true; environmentFile = config.age.secrets.restic-env.path; @@ -33,25 +26,9 @@ "--keep-daily 7" "--keep-weekly 2" "--keep-monthly 2" ]; - runCheck = true; - checkOpts = [ "--read-data-subset=5%" ]; timerConfig = { OnCalendar = "daily"; Persistent = true; - }; - }; - - systemd.services = { - restic-backups-dragonwell.onFailure = [ "restic-alert.service" ]; - restic-alert = { - description = "Notify on restic backup/check failure"; - serviceConfig.Type = "oneshot"; - script = '' - webhook=$(cat ${config.age.secrets.restic-webhook.path}) - ${lib.getExe pkgs.curl} -sf -H "Content-Type: application/json" \ - -d '{"content": "⚠️ restic backup/check failed on dragonwell"}' \ - "$webhook" - ''; }; }; } diff --git a/flake.lock b/flake.lock index cce191d0fe35655bac5ad422283f287c04997178..fe08ebf0ba0e3c0075deb3f22278f809d78509cd 100644 --- a/flake.lock +++ b/flake.lock @@ -212,9 +212,26 @@ "repo": "golink", "type": "github" } }, + "home-manager": { + "inputs": { + "nixpkgs": "nixpkgs_9" + }, + "locked": { + "lastModified": 1788651960, + "narHash": "sha256-v9wJd32eZ2bvhBzVOd7TIjLQd011P7nwOhjKtWlci5I=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "2c0350c759688177331b8f5242311fae8877bdb3", + "type": "github" + }, + "original": { + "id": "home-manager", + "type": "indirect" + } + }, "horcrux": { "inputs": { - "nixpkgs": "nixpkgs_9" + "nixpkgs": "nixpkgs_10" }, "locked": { "lastModified": 1757854957, @@ -232,7 +249,7 @@ } }, "mazanoke": { "inputs": { - "nixpkgs": "nixpkgs_10" + "nixpkgs": "nixpkgs_11" }, "locked": { "lastModified": 1778508921, @@ -250,7 +267,7 @@ } }, "mint": { "inputs": { - "nixpkgs": "nixpkgs_11" + "nixpkgs": "nixpkgs_12" }, "locked": { "lastModified": 1788371325, @@ -266,6 +283,23 @@ "type": "git", "url": "https://git.jolheiser.com/mint.git" } }, + "nixos-hardware": { + "inputs": { + "nixpkgs": "nixpkgs_13" + }, + "locked": { + "lastModified": 1788860136, + "narHash": "sha256-MhPMOFV4pVkygWEbQ8t1De/uQ9cWF1u++tRe2L5tG48=", + "owner": "NixOS", + "repo": "nixos-hardware", + "rev": "62173785b9a18c78b4a15aca2623d02bceb9d077", + "type": "github" + }, + "original": { + "id": "nixos-hardware", + "type": "indirect" + } + }, "nixpkgs": { "locked": { "lastModified": 1720657034, @@ -299,6 +333,22 @@ } }, "nixpkgs_10": { "locked": { + "lastModified": 1756819007, + "narHash": "sha256-12V64nKG/O/guxSYnr5/nq1EfqwJCdD2+cIGmhz3nrE=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "aaff8c16d7fc04991cac6245bee1baa31f72b1e1", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_11": { + "locked": { "lastModified": 1746397377, "narHash": "sha256-5oLdRa3vWSRbuqPIFFmQBGGUqaYZBxX+GGtN9f/n4lU=", "owner": "nixos", @@ -313,7 +363,7 @@ "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_11": { + "nixpkgs_12": { "locked": { "lastModified": 1758446476, "narHash": "sha256-5rdAi7CTvM/kSs6fHe1bREIva5W3TbImsto+dxG4mBo=", @@ -329,7 +379,20 @@ "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_12": { + "nixpkgs_13": { + "locked": { + "lastModified": 1767892417, + "narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=", + "rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba", + "type": "tarball", + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.05pre924538.3497aa5c9457/nixexprs.tar.xz" + }, + "original": { + "type": "tarball", + "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" + } + }, + "nixpkgs_14": { "locked": { "lastModified": 1788752844, "narHash": "sha256-VaWGJ6+cIYN2erfSecbRV+4ljI185Ty2wUrXyvQbgOw=", @@ -345,7 +408,7 @@ "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_13": { + "nixpkgs_15": { "locked": { "lastModified": 1752012998, "narHash": "sha256-Q82Ms+FQmgOBkdoSVm+FBpuFoeUAffNerR5yVV7SgT8=", @@ -361,7 +424,7 @@ "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_14": { + "nixpkgs_16": { "locked": { "lastModified": 1697383814, "narHash": "sha256-NoGJsi8R4GyQX6GHJS9lIXyrbrybqyqA8v6HVixHs5E=", @@ -376,7 +439,7 @@ "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_15": { + "nixpkgs_17": { "locked": { "lastModified": 1754800730, "narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=", @@ -392,7 +455,7 @@ "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_16": { + "nixpkgs_18": { "locked": { "lastModified": 1786599213, "narHash": "sha256-yjGG65gA1jORt0hWxjzrnw3AYkIn8EWolp8vezwXZ3I=", @@ -406,7 +469,7 @@ "ref": "nixos-unstable", "type": "indirect" } }, - "nixpkgs_17": { + "nixpkgs_19": { "locked": { "lastModified": 1784210874, "narHash": "sha256-x8i+HYAulduMlM63oxWJj5tAm+Sc/W756wUzcV5p24w=", @@ -422,13 +485,13 @@ "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_18": { + "nixpkgs_2": { "locked": { - "lastModified": 1747060738, - "narHash": "sha256-ByfPRQuqj+nhtVV0koinEpmJw0KLzNbgcgi9EF+NVow=", + "lastModified": 1763312402, + "narHash": "sha256-3YJkOBrFpmcusnh7i8GXXEyh7qZG/8F5z5+717550Hk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "eaeed9530c76ce5f1d2d8232e08bec5e26f18ec1", + "rev": "85a6c4a07faa12aaccd81b36ba9bfc2bec974fa1", "type": "github" }, "original": { @@ -438,13 +501,13 @@ "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_19": { + "nixpkgs_20": { "locked": { - "lastModified": 1753399495, - "narHash": "sha256-7XG/QBqhrYOyA2houjRTL2NMa7IKZZ/somBqr+Q/6Wo=", + "lastModified": 1747060738, + "narHash": "sha256-ByfPRQuqj+nhtVV0koinEpmJw0KLzNbgcgi9EF+NVow=", "owner": "nixos", "repo": "nixpkgs", - "rev": "0d00f23f023b7215b3f1035adb5247c8ec180dbc", + "rev": "eaeed9530c76ce5f1d2d8232e08bec5e26f18ec1", "type": "github" }, "original": { @@ -454,13 +517,13 @@ "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_2": { + "nixpkgs_21": { "locked": { - "lastModified": 1763312402, - "narHash": "sha256-3YJkOBrFpmcusnh7i8GXXEyh7qZG/8F5z5+717550Hk=", + "lastModified": 1753399495, + "narHash": "sha256-7XG/QBqhrYOyA2houjRTL2NMa7IKZZ/somBqr+Q/6Wo=", "owner": "nixos", "repo": "nixpkgs", - "rev": "85a6c4a07faa12aaccd81b36ba9bfc2bec974fa1", + "rev": "0d00f23f023b7215b3f1035adb5247c8ec180dbc", "type": "github" }, "original": { @@ -470,7 +533,7 @@ "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_20": { + "nixpkgs_22": { "locked": { "lastModified": 1699343069, "narHash": "sha256-s7BBhyLA6MI6FuJgs4F/SgpntHBzz40/qV0xLPW6A1Q=", @@ -584,15 +647,15 @@ } }, "nixpkgs_9": { "locked": { - "lastModified": 1756819007, - "narHash": "sha256-12V64nKG/O/guxSYnr5/nq1EfqwJCdD2+cIGmhz3nrE=", - "owner": "nixos", + "lastModified": 1787964612, + "narHash": "sha256-0N9nghg3nwzX6b6qc77EzjR9cu/Z+UR66FlfsCqiURs=", + "owner": "NixOS", "repo": "nixpkgs", - "rev": "aaff8c16d7fc04991cac6245bee1baa31f72b1e1", + "rev": "e8be7818e19ada32105a8af937a6a473b38167ca", "type": "github" }, "original": { - "owner": "nixos", + "owner": "NixOS", "ref": "nixpkgs-unstable", "repo": "nixpkgs", "type": "github" @@ -600,7 +663,7 @@ } }, "oidc": { "inputs": { - "nixpkgs": "nixpkgs_13" + "nixpkgs": "nixpkgs_15" }, "locked": { "lastModified": 1752529116, @@ -618,7 +681,7 @@ } }, "resume": { "inputs": { - "nixpkgs": "nixpkgs_14" + "nixpkgs": "nixpkgs_16" }, "locked": { "lastModified": 1753062776, @@ -645,10 +708,12 @@ "foundry": "foundry", "git-pr": "git-pr", "gitpecker": "gitpecker", "golink": "golink", + "home-manager": "home-manager", "horcrux": "horcrux", "mazanoke": "mazanoke", "mint": "mint", - "nixpkgs": "nixpkgs_12", + "nixos-hardware": "nixos-hardware", + "nixpkgs": "nixpkgs_14", "oidc": "oidc", "resume": "resume", "tailproxy": "tailproxy", @@ -704,7 +769,7 @@ } }, "tailproxy": { "inputs": { - "nixpkgs": "nixpkgs_15" + "nixpkgs": "nixpkgs_17" }, "locked": { "lastModified": 1781704127, @@ -764,7 +829,7 @@ } }, "tailwind-ctp-lsp_2": { "inputs": { - "nixpkgs": "nixpkgs_20" + "nixpkgs": "nixpkgs_22" }, "locked": { "lastModified": 1699401590, @@ -782,7 +847,7 @@ } }, "tailwind-ctp_2": { "inputs": { - "nixpkgs": "nixpkgs_19" + "nixpkgs": "nixpkgs_21" }, "locked": { "lastModified": 1753803577, @@ -800,7 +865,7 @@ } }, "tclip": { "inputs": { - "nixpkgs": "nixpkgs_16", + "nixpkgs": "nixpkgs_18", "utils": "utils" }, "locked": { @@ -819,7 +884,7 @@ } }, "ugit": { "inputs": { - "nixpkgs": "nixpkgs_17", + "nixpkgs": "nixpkgs_19", "tailwind-ctp": "tailwind-ctp", "tailwind-ctp-lsp": "tailwind-ctp-lsp" }, @@ -857,7 +922,7 @@ } }, "website": { "inputs": { - "nixpkgs": "nixpkgs_18", + "nixpkgs": "nixpkgs_20", "tailwind-ctp": "tailwind-ctp_2", "tailwind-ctp-lsp": "tailwind-ctp-lsp_2" }, diff --git a/flake.nix b/flake.nix index a8d4eaa3f4c5f999ca011febe6a8928e0c34075d..4a508f62b21bb5eabfc921723a98fa7079080d33 100644 --- a/flake.nix +++ b/flake.nix @@ -34,6 +34,8 @@ outputs = { nixpkgs, + home-manager, + nixos-hardware, agenix, ... }@inputs: @@ -41,14 +43,13 @@ let system = "x86_64-linux"; pkgs = import inputs.nixpkgs { inherit system; }; jolheiser = import ./config.nix { inherit pkgs; }; - importDir = dir: map (name: dir + "/${name}") (builtins.attrNames (builtins.readDir dir)); in { colmena = { meta = { nixpkgs = import nixpkgs { inherit system; }; specialArgs = { - inherit jolheiser inputs importDir; + inherit jolheiser inputs; }; }; dragonwell.imports = [ @@ -62,18 +63,15 @@ inputs.foundry.nixosModules.foundryvtt inputs.forge-lines.nixosModules.default ./modules/miniserve ./modules/git-bug - ./common ./dragonwell ]; jasmine.imports = [ inputs.agenix.nixosModules.default - ./common ./jasmine ]; gunpowder.imports = [ inputs.agenix.nixosModules.default inputs.tailproxy.nixosModules.default - ./common ./gunpowder ]; shincha = @@ -87,14 +85,12 @@ inputs.mazanoke.nixosModules.default inputs.tailproxy.nixosModules.default inputs.oidc.nixosModules.default ./modules/tclip - ./common ./shincha ]; services.tclip.package = inputs.tclip.packages.${pkgs.stdenv.hostPlatform.system}.tclipd; }; peach.imports = [ inputs.agenix.nixosModules.default - ./common ./peach ]; }; diff --git a/gunpowder/default.nix b/gunpowder/default.nix index 19fa4cbb4b0e1e97dce81efb189f529882b9d245..402101e30f85f0cb5023e3fee179d37264844d85 100644 --- a/gunpowder/default.nix +++ b/gunpowder/default.nix @@ -1,9 +1,11 @@ -{ jolheiser, pkgs, importDir, ... }: +{ jolheiser, pkgs, ... }: let key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJh5aUDN/KN28+4tbayXRQliLyKFZaCZtUMEBNaJfHYj"; in { - imports = importDir ./services ++ [ ./hardware.nix ]; + imports = + (map (name: ./services + "/${name}") (builtins.attrNames (builtins.readDir ./services))) + ++ [ ./hardware.nix ]; boot = { kernelPackages = pkgs.linuxPackages_latest; @@ -65,6 +67,14 @@ groups.media.members = [ "jolheiser" "olheiser" ]; + }; + + nix = { + gc = { + automatic = true; + randomizedDelaySec = "15m"; + }; + optimise.automatic = true; }; system.stateVersion = "22.11"; diff --git a/jasmine/default.nix b/jasmine/default.nix index fdae0fde6c5106d2e84ff3257deaebd34685bea7..0a2111e64105bbf1de243efb93c1a60baad14eb3 100644 --- a/jasmine/default.nix +++ b/jasmine/default.nix @@ -1,9 +1,11 @@ -{ jolheiser, pkgs, importDir, ... }: +{ jolheiser, pkgs, ... }: let key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM7cgpIUaEY3q12xBct9a0gIl7rdckBBPsWQea7Wtj7P"; in { - imports = importDir ./services ++ [ ./hardware.nix ]; + imports = + (map (name: ./services + "/${name}") (builtins.attrNames (builtins.readDir ./services))) + ++ [ ./hardware.nix ]; boot.loader.grub = { enable = true; @@ -15,6 +17,22 @@ networking = { hostName = "jasmine"; # Define your hostname. networkmanager.enable = true; firewall.enable = true; + }; + + time.timeZone = "America/Chicago"; + + i18n.defaultLocale = "en_US.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "en_US.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "en_US.UTF-8"; + LC_PAPER = "en_US.UTF-8"; + LC_TELEPHONE = "en_US.UTF-8"; + LC_TIME = "en_US.UTF-8"; }; services.xserver = { @@ -53,11 +71,24 @@ # Allow unfree packages nixpkgs.config.allowUnfree = true; - nix.settings.trusted-users = [ - "@sudo" - "@wheel" - "${jolheiser.username}" - ]; + nix = { + gc = { + automatic = true; + randomizedDelaySec = "15m"; + }; + optimise.automatic = true; + settings = { + trusted-users = [ + "@sudo" + "@wheel" + "${jolheiser.username}" + ]; + experimental-features = [ + "flakes" + "nix-command" + ]; + }; + }; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions diff --git a/modules/git-bug/default.nix b/modules/git-bug/default.nix index 1bad2babb47af6bd34b251a10c856acaa83ee3e1..5a488a34c73b3ee54857e9ef247f1979ad36a0ee 100644 --- a/modules/git-bug/default.nix +++ b/modules/git-bug/default.nix @@ -173,7 +173,7 @@ if [ -n "$human_id" ] && [ "$human_id" != "null" ]; then git-bug user adopt "$human_id" else git-bug user new --name "${instanceCfg.authorUser}" --email "${instanceCfg.authorUser}" ${ - lib.optionalString (instanceCfg.authorAvatar != "") "--avatar \"${instanceCfg.authorAvatar}\"" + lib.optionalString (instanceCfg != "") "--avatar \"${instanceCfg.authorAvatar}\"" } fi ''; diff --git a/peach/default.nix b/peach/default.nix index fba0f1e64207db4fd3bbca42ee40e39e7698b736..3c08747f3b2a2a36863c59aff8de6d29d14aae8d 100644 --- a/peach/default.nix +++ b/peach/default.nix @@ -55,6 +55,22 @@ ]; }; }; + time.timeZone = "America/Chicago"; + i18n = { + defaultLocale = "en_US.UTF-8"; + extraLocaleSettings = { + LC_ADDRESS = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "en_US.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "en_US.UTF-8"; + LC_PAPER = "en_US.UTF-8"; + LC_TELEPHONE = "en_US.UTF-8"; + LC_TIME = "en_US.UTF-8"; + }; + }; + hardware.pulseaudio.enable = false; security.rtkit.enable = true; @@ -105,6 +121,14 @@ }; "root".openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL+uhnfFLhlyfGGsksSxh5IIY6gnIMryeQ2EiM979kZa" ]; + }; + + nix = { + gc = { + automatic = true; + randomizedDelaySec = "15m"; + }; + optimise.automatic = true; }; system.stateVersion = "22.11"; diff --git a/secrets/restic-webhook.age b/secrets/restic-webhook.age deleted file mode 100644 index 5ee8aafeeaca4df479f8c499b2ae9f2014c3dc2a..0000000000000000000000000000000000000000 Binary files a/secrets/restic-webhook.age and /dev/null differ diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 5623f7dfdb6f0981cebc70e6e1d2173322013ebd..ecaf2b6b19054bbb983353d4fb7fbe1fa808b0dc 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -47,5 +47,4 @@ "beanboy.age".publicKeys = peachKeys; "oa2p.age".publicKeys = dragonwellKeys; "woodpecker.age".publicKeys = dragonwellKeys; "mullvad.age".publicKeys = gunpowderKeys; - "restic-webhook.age".publicKeys = dragonwellKeys; } diff --git a/shincha/default.nix b/shincha/default.nix index 3cd4a23b071cee2d2ef9e614e25fd3d6967b4d53..3248ae73e3b3043683c5c83c70facec3f8c541af 100644 --- a/shincha/default.nix +++ b/shincha/default.nix @@ -1,9 +1,11 @@ -{ jolheiser, importDir, ... }: +{ jolheiser, ... }: let key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJBxdG9mduIWiQ+egYKMvUKKCyShdeM8O6QsLs6g5aGt"; in { - imports = importDir ./services ++ [ ./hardware.nix ]; + imports = + (map (name: ./services + "/${name}") (builtins.attrNames (builtins.readDir ./services))) + ++ [ ./hardware.nix ]; boot.loader.grub = { enable = true; @@ -17,6 +19,22 @@ networkmanager.enable = true; firewall.enable = true; }; + time.timeZone = "America/Chicago"; + + i18n.defaultLocale = "en_US.UTF-8"; + + i18n.extraLocaleSettings = { + LC_ADDRESS = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "en_US.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "en_US.UTF-8"; + LC_PAPER = "en_US.UTF-8"; + LC_TELEPHONE = "en_US.UTF-8"; + LC_TIME = "en_US.UTF-8"; + }; + services.xserver = { enable = true; displayManager.lightdm.enable = true; @@ -49,11 +67,24 @@ # Allow unfree packages nixpkgs.config.allowUnfree = true; - nix.settings.trusted-users = [ - "@sudo" - "@wheel" - "${jolheiser.username}" - ]; + nix = { + gc = { + automatic = true; + randomizedDelaySec = "15m"; + }; + optimise.automatic = true; + settings = { + trusted-users = [ + "@sudo" + "@wheel" + "${jolheiser.username}" + ]; + experimental-features = [ + "flakes" + "nix-command" + ]; + }; + }; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions