diff options
Diffstat (limited to 'sys/default.nix')
| -rw-r--r-- | sys/default.nix | 123 |
1 files changed, 6 insertions, 117 deletions
diff --git a/sys/default.nix b/sys/default.nix index b3cb34b..1a35d92 100644 --- a/sys/default.nix +++ b/sys/default.nix @@ -3,7 +3,11 @@ with lib; let cfg = config.local; in { - imports = [ "${modulesPath}/installer/scan/not-detected.nix" ./options.nix ]; + imports = [ + "${modulesPath}/installer/scan/not-detected.nix" + ./fs + ./options.nix + ]; config = { nixpkgs.overlays = [ self.overlay ]; @@ -24,9 +28,6 @@ in { }; boot = { - # !!! - tmpOnTmpfs = true; - loader = (if cfg.loader == "grub" then { grub = { enable = true; @@ -101,54 +102,6 @@ in { intel = mkIf (cfg.cpuVendor == "intel") ucode; }; - fileSystems = let - inherit (cfg) fs; - btrfs = { device, subvol, ssd, ... }: { - inherit device; - fsType = "btrfs"; - options = [ "noatime" "compress=zstd" "subvol=${subvol}" ] ++ optional ssd "ssd"; - }; - in mapAttrs (_: btrfs) cfg.fs.btrfs // { - "/boot" = { - inherit (cfg.fs.boot) device; - fsType = "vfat"; - options = [ "noatime" "umask=027" ]; - }; - }; - - local.fs.btrfs = let - sysHddBtrfs = layout: { - "/" = { - inherit (layout.sys) device ssd; - subvol = layout.sys.root; - }; - - "/toplevel" = { - inherit (layout.sys) device ssd; - subvol = layout.sys.toplevel; - }; - - "/hdd" = { - inherit (layout.hdd) device; - subvol = "/"; - ssd = false; - }; - - "/home" = { - inherit (layout.hdd) device; - subvol = layout.hdd.home; - ssd = false; - snapper = "home"; - }; - }; - - inherit (cfg.fs) layout; - - layoutMaps = [ sysHddBtrfs ]; - layoutOpts = [ layout.sysHddBtrfs ]; - valid = filter ({ snd, ... }: snd != null) (zipLists layoutMaps layoutOpts); - in optionalAttrs (valid != []) ((head valid).fst (head valid).snd); - time.timeZone = "America/Costa_Rica"; networking = { @@ -175,9 +128,7 @@ in { displayManager.startx.enable = true; }; - environment.systemPackages = [ - pkgs.local.btclone pkgs.dhcpcd pkgs.git - ]; + environment.systemPackages = [ pkgs.dhcpcd pkgs.git ]; services.udev.packages = [ pkgs.android-udev-rules @@ -220,68 +171,6 @@ in { ]; }; - local.snapperSubvols = let - snapperEntry = path: opts: { name = opts.snapper; value = path; }; - validEntry = _: opts: opts.snapper != null; - in mapAttrs' snapperEntry (filterAttrs validEntry cfg.fs.btrfs); - - services.snapper.configs = let - snapperConfig = _: subvolume: { - inherit subvolume; - - extraConfig = '' - # btrfs qgroup for space aware cleanup algorithms - QGROUP="" - - # fraction of the filesystems space the snapshots may use - SPACE_LIMIT="0.5" - - # fraction of the filesystems space that should be free - FREE_LIMIT="0.2" - - # users and groups allowed to work with config - ALLOW_USERS="" - ALLOW_GROUPS="" - - # sync users and groups from ALLOW_USERS and ALLOW_GROUPS to .snapshots - # directory - SYNC_ACL="no" - - # start comparing pre- and post-snapshot in background after creating - # post-snapshot - BACKGROUND_COMPARISON="yes" - - # run daily number cleanup - NUMBER_CLEANUP="yes" - - # limit for number cleanup - NUMBER_MIN_AGE="1800" - NUMBER_LIMIT="100" - NUMBER_LIMIT_IMPORTANT="10" - - # create hourly snapshots - TIMELINE_CREATE="yes" - - # cleanup hourly snapshots after some time - TIMELINE_CLEANUP="yes" - - # limits for timeline cleanup - TIMELINE_MIN_AGE="1800" - TIMELINE_LIMIT_HOURLY="24" - TIMELINE_LIMIT_DAILY="7" - TIMELINE_LIMIT_WEEKLY="4" - TIMELINE_LIMIT_MONTHLY="12" - TIMELINE_LIMIT_YEARLY="10" - - # cleanup empty pre-post-pairs - EMPTY_PRE_POST_CLEANUP="yes" - - # limits for empty pre-post-pair cleanup - EMPTY_PRE_POST_MIN_AGE="1800" - ''; - }; - in mapAttrs snapperConfig cfg.snapperSubvols; - networking.firewall.allowedTCPPorts = [ 2234 ]; programs = { |
