diff --git a/flake.nix b/flake.nix index b9241a98..98615e1a 100644 --- a/flake.nix +++ b/flake.nix @@ -47,195 +47,169 @@ ./hosts/${hostName}/hardware-configuration.nix home-manager.nixosModules.home-manager stylix.nixosModules.stylix - ({ config, lib, pkgs, ... }: - let - iosevka-custom = pkgs.iosevka.override { - set = "custom"; - privateBuildPlan = { - family = "Iosevka Custom"; - spacing = "normal"; - serifs = "sans"; - noCvSs = false; - exportGlyphNames = false; - variants = { inherits = "ss05"; }; - ligations = { inherits = "dlig"; }; - widths = { - Condensed = { - shape = 500; - menu = 3; - css = "condensed"; - }; - Normal = { - shape = 600; - menu = 5; - css = "normal"; - }; - }; - }; - }; - in { - boot.loader = { - systemd-boot.enable = true; - efi.canTouchEfiVariables = true; - }; - programs = { - ${shell}.enable = true; - command-not-found.enable = false; - nano = { - enable = true; - syntaxHighlight = true; - nanorc = '' - set nowrap - set tabstospaces - set tabsize 2 - ''; - }; - }; - nix = { + ({ config, lib, pkgs, ... }: { + boot.loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; + programs = { + ${shell}.enable = true; + command-not-found.enable = false; + nano = { enable = true; - settings = { - trusted-users = [ "root" user ]; - experimental-features = [ "nix-command" "flakes" ]; - auto-optimise-store = true; - }; - channel.enable = true; - registry = { - nixpkgs.flake = nixpkgs; - nixos.flake = self; - }; - gc = { - automatic = true; - options = "--delete-older-than 7d"; - }; - optimise.automatic = true; - extraOptions = '' - keep-outputs = true - keep-derivations = true - min-free = ${toString (100 * 1024 * 1024)} - max-free = ${toString (1024 * 1024 * 1024)} + syntaxHighlight = true; + nanorc = '' + set nowrap + set tabstospaces + set tabsize 2 ''; }; - nixpkgs.config.allowUnfreePredicate = pkg: - builtins.elem (lib.getName pkg) [ - "steam" - "steam-original" - "steam-run" - "nomachine-client" - ]; - system = { inherit stateVersion; }; - networking = { - inherit hostName; - firewall.enable = true; + }; + nix = { + enable = true; + settings = { + trusted-users = [ "root" user ]; + experimental-features = [ "nix-command" "flakes" ]; + auto-optimise-store = true; }; - stylix = { - autoEnable = false; - targets = { - chromium.enable = true; - console.enable = true; - fish.enable = true; - }; - image = ./wallpapers/space.png; - base16Scheme = - "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; - override = { - scheme = - "Catppuccin Mocha, using fg and bg colours from emacs modus-vivdendi-tinted"; - base00 = "0d0e1c"; - base01 = "1d2235"; - base04 = "c6daff"; - base05 = "ffffff"; - }; - polarity = "dark"; - opacity = { - popups = 0.5; - terminal = 0.8; - }; - fonts = rec { - sizes = { - applications = 16; - desktop = 20; - popups = 18; - terminal = 16; - }; - serif = monospace; - sansSerif = monospace; - monospace = { - name = "Iosevka Nerd Font"; - package = - (pkgs.nerdfonts.override { fonts = [ "Iosevka" ]; }); - }; - emoji = { - name = "Noto Color Emoji"; - package = pkgs.noto-fonts-emoji; - }; - }; - homeManagerIntegration.followSystem = true; + channel.enable = true; + registry = { + nixpkgs.flake = nixpkgs; + nixos.flake = self; }; - fonts = { - packages = with pkgs; [ - (nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; }) - emacs-all-the-icons-fonts - weather-icons - noto-fonts - noto-fonts-cjk - noto-fonts-emoji - ]; - fontconfig.enable = true; + gc = { + automatic = true; + options = "--delete-older-than 7d"; }; - users.users = let - authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINI1dWlS16Keil0MGPWmMsBzx8F9ylfz+fRwxUr8/tZ/ ion" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIANfkqd5lPTsSPU3SRYnAa1UjCYDmDeBTyzq5McmWlm6 xenia@Vanguard" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ/ZSSCN5sqrA+tdoIZr5EUm5DRuBV4dQ7J+QBEtUwUU xenia@Northstar" - ]; - in { - root.openssh = { inherit authorizedKeys; }; - ${user} = { - inherit group; - isNormalUser = true; - description = "Evie Litherland-Smith"; - extraGroups = - [ "networkmanager" "wheel" "video" "input" "uinput" ]; - shell = pkgs.${shell}; - initialHashedPassword = - "$y$j9T$tHIPQt09Kf3KH2eIRze3g/$2mwSlcq27DTGvHNPJ5EP9/1CfL3bXP0F6oS/Vuffmn3"; - openssh = { inherit authorizedKeys; }; + optimise.automatic = true; + extraOptions = '' + keep-outputs = true + keep-derivations = true + min-free = ${toString (100 * 1024 * 1024)} + max-free = ${toString (1024 * 1024 * 1024)} + ''; + }; + nixpkgs.config.allowUnfreePredicate = pkg: + builtins.elem (lib.getName pkg) [ + "steam" + "steam-original" + "steam-run" + "nomachine-client" + ]; + system = { inherit stateVersion; }; + networking = { + inherit hostName; + firewall.enable = true; + }; + stylix = { + autoEnable = false; + targets = { + chromium.enable = true; + console.enable = true; + fish.enable = true; + }; + image = ./wallpapers/space.png; + base16Scheme = + "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; + override = { + scheme = + "Catppuccin Mocha, using fg and bg colours from emacs modus-vivdendi-tinted"; + base00 = "0d0e1c"; + base01 = "1d2235"; + base04 = "c6daff"; + base05 = "ffffff"; + }; + polarity = "dark"; + opacity = { + popups = 0.5; + terminal = 0.8; + }; + fonts = rec { + sizes = { + applications = 16; + desktop = 20; + popups = 18; + terminal = 16; + }; + serif = monospace; + sansSerif = monospace; + monospace = { + name = "Iosevka Nerd Font"; + package = + (pkgs.nerdfonts.override { fonts = [ "Iosevka" ]; }); + }; + emoji = { + name = "Noto Color Emoji"; + package = pkgs.noto-fonts-emoji; }; }; - home-manager = { - extraSpecialArgs = { inherit hostName; }; - useGlobalPkgs = true; - useUserPackages = true; - users = { - root = { - imports = [ ./home/default.nix ]; - home = { - inherit stateVersion; - username = "root"; - homeDirectory = "/root"; - }; - programs.home-manager.enable = true; + homeManagerIntegration.followSystem = true; + }; + fonts = { + packages = with pkgs; [ + (nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; }) + emacs-all-the-icons-fonts + weather-icons + noto-fonts + noto-fonts-cjk + noto-fonts-emoji + ]; + fontconfig.enable = true; + }; + users.users = let + authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINI1dWlS16Keil0MGPWmMsBzx8F9ylfz+fRwxUr8/tZ/ ion" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIANfkqd5lPTsSPU3SRYnAa1UjCYDmDeBTyzq5McmWlm6 xenia@Vanguard" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ/ZSSCN5sqrA+tdoIZr5EUm5DRuBV4dQ7J+QBEtUwUU xenia@Northstar" + ]; + in { + root.openssh = { inherit authorizedKeys; }; + ${user} = { + inherit group; + isNormalUser = true; + description = "Evie Litherland-Smith"; + extraGroups = + [ "networkmanager" "wheel" "video" "input" "uinput" ]; + shell = pkgs.${shell}; + initialHashedPassword = + "$y$j9T$tHIPQt09Kf3KH2eIRze3g/$2mwSlcq27DTGvHNPJ5EP9/1CfL3bXP0F6oS/Vuffmn3"; + openssh = { inherit authorizedKeys; }; + }; + }; + home-manager = { + extraSpecialArgs = { inherit hostName; }; + useGlobalPkgs = true; + useUserPackages = true; + users = { + root = { + imports = [ ./home/default.nix ]; + home = { + inherit stateVersion; + username = "root"; + homeDirectory = "/root"; }; - ${user} = let - username = user; - homeDirectory = "/home/${user}"; - in { - imports = - [ ./hosts/${hostName}/home.nix ./home/default.nix ] - ++ homeModules; - home = { inherit username homeDirectory stateVersion; }; - programs.home-manager.enable = true; - xdg.userDirs = { - enable = true; - createDirectories = true; - extraConfig = { - XDG_PROJECTS_DIR = "${homeDirectory}/Projects"; - }; + programs.home-manager.enable = true; + }; + ${user} = let + username = user; + homeDirectory = "/home/${user}"; + in { + imports = + [ ./hosts/${hostName}/home.nix ./home/default.nix ] + ++ homeModules; + home = { inherit username homeDirectory stateVersion; }; + programs.home-manager.enable = true; + xdg.userDirs = { + enable = true; + createDirectories = true; + extraConfig = { + XDG_PROJECTS_DIR = "${homeDirectory}/Projects"; }; }; }; }; - }) + }; + }) ] ++ systemModules ++ serviceModules; }; in {