diff --git a/nix/configurations/iron.nix b/nix/configurations/iron.nix index 72ae0f54..6be03297 100644 --- a/nix/configurations/iron.nix +++ b/nix/configurations/iron.nix @@ -5,158 +5,159 @@ let hostname = "iron"; username = "leana"; in - { - config, - lib, - pkgs, - ... - }: let - inherit (lib.modules) mkAliasOptionModule; - in { - imports = [ - # - # Shorthands - # - (mkAliasOptionModule ["me"] ["users" "users" username]) - (mkAliasOptionModule ["hm"] ["home-manager" "users" username]) +{ + config, + lib, + pkgs, + ... +}: +let + inherit (lib.modules) mkAliasOptionModule; +in +{ + imports = [ + # + # Shorthands + # + (mkAliasOptionModule [ "me" ] [ "users" "users" username ]) + (mkAliasOptionModule [ "hm" ] [ "home-manager" "users" username ]) - # - # hostname - # - {_module.args = {inherit hostname;};} + # + # hostname + # + { _module.args = { inherit hostname; }; } - # - # nixpkgs - # - { - # affect the generated nix.conf, doesn't need to be turned off during nixos-install - nix = { - distributedBuilds = true; - settings.builders-use-substitutes = true; - }; + # + # nixpkgs + # + { + # affect the generated nix.conf, doesn't need to be turned off during nixos-install + nix = { + distributedBuilds = true; + settings.builders-use-substitutes = true; + }; - nixpkgs = { - overlays = - map import - [ - ../overlays/agenix.nix - ../overlays/disko.nix - ../overlays/nur.nix - ../overlays/nix-tree.nix - ../overlays/nil.nix - ../overlays/dix.nix + nixpkgs = { + overlays = + map import [ + ../overlays/agenix.nix + ../overlays/disko.nix + ../overlays/nur.nix + ../overlays/nix-tree.nix + ../overlays/nil.nix + ../overlays/dix.nix - ../packages/overlay.nix - ] - # use lix everywhere and wrap it with nom - ++ [ - (import (sources.lix-module + "/overlay.nix") {inherit (sources) lix;}) - (import ../overlays/nix-monitored.nix) - ]; + ../packages/overlay.nix + ] + # use lix everywhere and wrap it with nom + ++ [ + (import (sources.lix-module + "/overlay.nix") { inherit (sources) lix; }) + (import ../overlays/nix-monitored.nix) + ]; - # Set NIX_PATH and flake registry at the same time - # https://github.com/NixOS/nixpkgs/pull/254405 - flake.source = sources.nixpkgs; - }; + # Set NIX_PATH and flake registry at the same time + # https://github.com/NixOS/nixpkgs/pull/254405 + flake.source = sources.nixpkgs; + }; - nix.package = pkgs.nix-monitored; + nix.package = pkgs.nix-monitored; - system.nixos.version = lib.substring 0 8 sources.nixpkgs.revision; - } + system.nixos.version = lib.substring 0 8 sources.nixpkgs.revision; + } - # - # NixOS modules - # - ./iron/nixos/hardware-configuration.nix # generated - ./iron/nixos/fs.nix + # + # NixOS modules + # + ./iron/nixos/hardware-configuration.nix # generated + ./iron/nixos/fs.nix - ./iron/nixos/battery.nix + ./iron/nixos/battery.nix - ./iron/nixos/connectivity.nix - ./iron/nixos/input.nix + ./iron/nixos/connectivity.nix + ./iron/nixos/input.nix - ./iron/nixos/misc.nix + ./iron/nixos/misc.nix - ./iron/nixos/display.nix + ./iron/nixos/display.nix - ./iron/nixos/locale.nix - ./iron/nixos/programs.nix + ./iron/nixos/locale.nix + ./iron/nixos/programs.nix - ../nixosModules/common/disable-command-not-found.nix - ../nixosModules/common/network.nix - ../nixosModules/common/sudo-conf.nix - ../nixosModules/common/system-nixconf.nix + ../nixosModules/common/disable-command-not-found.nix + ../nixosModules/common/network.nix + ../nixosModules/common/sudo-conf.nix + ../nixosModules/common/system-nixconf.nix - ../nixosModules/extra/leana.nix + ../nixosModules/extra/leana.nix - # - # Extern modules - # - (sources.disko + "/module.nix") - ../disko/iron/btrfs.nix + # + # Extern modules + # + (sources.disko + "/module.nix") + ../disko/iron/btrfs.nix - (sources.agenix + "/modules/age.nix") + (sources.agenix + "/modules/age.nix") - ../nixosModules/extra/macbook-pro-radeon.nix - ../nixosModules/extra/macbook-swap-cmd-opt.nix - ../nixosModules/extra/macbook-swap-fn-ctrl.nix - ../nixosModules/extra/macbook-broacom-b43.nix + ../nixosModules/extra/macbook-pro-radeon.nix + ../nixosModules/extra/macbook-swap-cmd-opt.nix + ../nixosModules/extra/macbook-swap-fn-ctrl.nix + ../nixosModules/extra/macbook-broacom-b43.nix - # - # home-manager - # - (sources.home-manager + "/nixos") - { - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - sharedModules = [{home.stateVersion = lib.mkDefault config.system.stateVersion;}]; - }; + # + # home-manager + # + (sources.home-manager + "/nixos") + { + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + sharedModules = [ { home.stateVersion = lib.mkDefault config.system.stateVersion; } ]; + }; - hm.imports = [ - # - # hostname - # - {_module.args = {inherit hostname;};} + hm.imports = [ + # + # hostname + # + { _module.args = { inherit hostname; }; } - # - # home modules - # - ./iron/home/programs.nix + # + # home modules + # + ./iron/home/programs.nix - ../homeModules/common/btop - ../homeModules/common/fish - ../homeModules/common/starship - ../homeModules/common/tmux - ../homeModules/common/vim - ../homeModules/common/direnv.nix - ../homeModules/common/fzf.nix - ../homeModules/common/git.nix - ../homeModules/common/gpg.nix - ../homeModules/common/leana.nix - ../homeModules/common/locale.nix - ../homeModules/common/lazygit.nix - ../homeModules/common/packages.nix - ../homeModules/common/password-store.nix - ../homeModules/common/tealdeer.nix - ../homeModules/common/user-nixconf.nix + ../homeModules/common/btop + ../homeModules/common/fish + ../homeModules/common/starship + ../homeModules/common/tmux + ../homeModules/common/vim + ../homeModules/common/direnv.nix + ../homeModules/common/fzf.nix + ../homeModules/common/git.nix + ../homeModules/common/gpg.nix + ../homeModules/common/leana.nix + ../homeModules/common/locale.nix + ../homeModules/common/lazygit.nix + ../homeModules/common/packages.nix + ../homeModules/common/password-store.nix + ../homeModules/common/tealdeer.nix + ../homeModules/common/user-nixconf.nix - ../homeModules/extra/tmux-fish-integration.nix + ../homeModules/extra/tmux-fish-integration.nix - # - # Extern modules - # - (sources.agenix + "/modules/age-home.nix") - ]; - } + # + # Extern modules + # + (sources.agenix + "/modules/age-home.nix") + ]; + } - # - # Secrets - # - { - age.secrets = { - wpa_password.file = "${../secrets/wpa_password.age}"; - }; - } - ]; - } + # + # Secrets + # + { + age.secrets = { + wpa_password.file = "${../secrets/wpa_password.age}"; + }; + } + ]; +} diff --git a/nix/configurations/iron/home/programs.nix b/nix/configurations/iron/home/programs.nix index 925fb616..8be454fa 100644 --- a/nix/configurations/iron/home/programs.nix +++ b/nix/configurations/iron/home/programs.nix @@ -3,16 +3,19 @@ lib, config, ... -}: { +}: +{ home.sessionPath = [ "${config.home.homeDirectory}/.local/bin" ]; - home.sessionVariables = let - fishCfg = config.programs.fish; - in { - "SHELL" = lib.mkIf fishCfg.enable (lib.getExe fishCfg.package); - }; + home.sessionVariables = + let + fishCfg = config.programs.fish; + in + { + "SHELL" = lib.mkIf fishCfg.enable (lib.getExe fishCfg.package); + }; home.packages = [ pkgs.nmap diff --git a/nix/configurations/iron/nixos/connectivity.nix b/nix/configurations/iron/nixos/connectivity.nix index d8605aed..019fd2d4 100644 --- a/nix/configurations/iron/nixos/connectivity.nix +++ b/nix/configurations/iron/nixos/connectivity.nix @@ -2,11 +2,13 @@ config, lib, ... -}: { - users.users.root.openssh.authorizedKeys.keys = let - # TODO: put iron keys in identities - ids = import ../../../identities.nix; - in +}: +{ + users.users.root.openssh.authorizedKeys.keys = + let + # TODO: put iron keys in identities + ids = import ../../../identities.nix; + in builtins.concatMap builtins.attrValues (builtins.attrValues ids); networking = { diff --git a/nix/configurations/iron/nixos/display.nix b/nix/configurations/iron/nixos/display.nix index c54cd9d9..9328481c 100644 --- a/nix/configurations/iron/nixos/display.nix +++ b/nix/configurations/iron/nixos/display.nix @@ -1,4 +1,4 @@ { - me.extraGroups = ["video"]; + me.extraGroups = [ "video" ]; programs.light.enable = true; } diff --git a/nix/configurations/iron/nixos/fs.nix b/nix/configurations/iron/nixos/fs.nix index e904ac30..9a636a29 100644 --- a/nix/configurations/iron/nixos/fs.nix +++ b/nix/configurations/iron/nixos/fs.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ services.btrfs.autoScrub = { enable = true; fileSystems = [ diff --git a/nix/configurations/iron/nixos/hardware-configuration.nix b/nix/configurations/iron/nixos/hardware-configuration.nix index 98e5c89c..92a104d9 100644 --- a/nix/configurations/iron/nixos/hardware-configuration.nix +++ b/nix/configurations/iron/nixos/hardware-configuration.nix @@ -7,15 +7,26 @@ pkgs, modulesPath, ... -}: { +}: +{ imports = [ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = ["uhci_hcd" "ehci_pci" "ahci" "firewire_ohci" "usbhid" "uas" "sd_mod" "sr_mod" "sdhci_pci"]; - boot.initrd.kernelModules = ["dm-snapshot"]; - boot.kernelModules = ["kvm-intel"]; - boot.extraModulePackages = []; + boot.initrd.availableKernelModules = [ + "uhci_hcd" + "ehci_pci" + "ahci" + "firewire_ohci" + "usbhid" + "uas" + "sd_mod" + "sr_mod" + "sdhci_pci" + ]; + boot.initrd.kernelModules = [ "dm-snapshot" ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking # (the default) this is the recommended approach. When using systemd-networkd it's diff --git a/nix/configurations/iron/nixos/locale.nix b/nix/configurations/iron/nixos/locale.nix index de1bd43f..666053d8 100644 --- a/nix/configurations/iron/nixos/locale.nix +++ b/nix/configurations/iron/nixos/locale.nix @@ -1,4 +1,5 @@ -{lib, ...}: { +{ lib, ... }: +{ # https://en.wikipedia.org/wiki/List_of_tz_database_time_zones # `timedatectl list-timezones` time.timeZone = "Asia/Taipei"; @@ -28,16 +29,16 @@ let genLocale = locale: lib.flip lib.genAttrs (_: locale); in - # - xscreensaver freaks out on the time display - # - evolution add event becomes hard to use - # https://gitlab.gnome.org/GNOME/evolution/-/issues/3120 - genLocale "fr_FR.UTF-8" [ - "LC_TIME" - ] - // genLocale "zh_TW.UTF-8" [ - "LC_MONETARY" - "LC_ADDRESS" - ]; + # - xscreensaver freaks out on the time display + # - evolution add event becomes hard to use + # https://gitlab.gnome.org/GNOME/evolution/-/issues/3120 + genLocale "fr_FR.UTF-8" [ + "LC_TIME" + ] + // genLocale "zh_TW.UTF-8" [ + "LC_MONETARY" + "LC_ADDRESS" + ]; }; # Wireless Regulatory Domain, uses ISO / IEC 3166 country code diff --git a/nix/configurations/iron/nixos/programs.nix b/nix/configurations/iron/nixos/programs.nix index 0e605d66..bc9f95ae 100644 --- a/nix/configurations/iron/nixos/programs.nix +++ b/nix/configurations/iron/nixos/programs.nix @@ -1,4 +1,5 @@ -{pkgs, ...}: { +{ pkgs, ... }: +{ environment.systemPackages = [ pkgs.man-pages pkgs.man-pages-posix