diff --git a/modules/hosts/kronos/configuration.nix b/modules/hosts/kronos/configuration.nix index bea7c0a..bbcb3d0 100644 --- a/modules/hosts/kronos/configuration.nix +++ b/modules/hosts/kronos/configuration.nix @@ -1,5 +1,6 @@ { config, + lib, pkgs, nixosModules, ... @@ -25,6 +26,12 @@ in imports = [ ./hardware.nix ./disko.nix + nixosModules.packages.c + nixosModules.packages.nix + nixosModules.packages.node + nixosModules.packages.rust + nixosModules.packages.tpm + nixosModules.packages.uefi nixosModules.base nixosModules.zfsRoot nixosModules.luksTpm2 @@ -34,9 +41,19 @@ in my.binBashWrapper.enable = true; + boot.loader.systemd-boot = { + enable = lib.mkForce true; + configurationLimit = 10; + edk2-uefi-shell.enable = true; + }; + boot.loader.efi.canTouchEfiVariables = true; + boot.loader.grub.enable = lib.mkForce false; + networking.hostName = hostName; networking.hostId = "ff0b8826"; + environment.sessionVariables.NIXOS_OZONE_WL = "1"; + services.xserver.videoDrivers = [ "nvidia" ]; hardware = { graphics = { diff --git a/modules/nixos/base.nix b/modules/nixos/base.nix index 2f0bbd7..5d4db60 100644 --- a/modules/nixos/base.nix +++ b/modules/nixos/base.nix @@ -1,10 +1,13 @@ { inputs, + nixosModules, pkgs, userName, ... }: { + imports = [ nixosModules.packages.common ]; + nixpkgs.config.allowUnfree = true; nix = { @@ -27,14 +30,6 @@ }; }; - boot.loader.systemd-boot = { - enable = true; - configurationLimit = 10; - edk2-uefi-shell.enable = true; - }; - boot.loader.efi.canTouchEfiVariables = true; - boot.loader.grub.enable = false; - i18n = rec { defaultLocale = "en_US.UTF-8"; extraLocales = [ "sv_SE.UTF-8/UTF-8" ]; @@ -96,51 +91,8 @@ environment.sessionVariables = { EDITOR = "nvim"; - NIXOS_OZONE_WL = "1"; }; - environment.systemPackages = with pkgs; [ - inputs."lolcat++".packages.${pkgs.stdenv.hostPlatform.system}.default - - file - cowsay - fortune - bat - fastfetch - curl - eza - fzf - git - git-lfs - ripgrep - neovim - odt2txt - openssl - stow - tpm2-tools - unzip - wget - killall - tealdeer - yazi - fd - - efibootmgr - - nil - - gcc - clang - gnumake - cmake - ninja - pkg-config - binutils - gdb - nodejs - rustup - ]; - security.sudo.wheelNeedsPassword = true; users.users.${userName}.openssh.authorizedKeys.keys = [ ]; diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index ef91047..d886fd6 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -5,5 +5,6 @@ luksInitrdSshUnlock = import ./luks-initrd-ssh-unlock.nix; luksTpm2 = import ./luks-tpm2.nix; mailServer = import ./mail-server; + packages = import ./packages; zfsRoot = import ./zfs-root.nix; } diff --git a/modules/nixos/desktop-hyprland.nix b/modules/nixos/desktop-hyprland.nix index 4376b81..34f8d49 100644 --- a/modules/nixos/desktop-hyprland.nix +++ b/modules/nixos/desktop-hyprland.nix @@ -1,5 +1,14 @@ -{ pkgs, ... }: { + nixosModules, + pkgs, + ... +}: +{ + imports = [ + nixosModules.packages.desktop + nixosModules.packages.python + ]; + programs.dconf.enable = true; programs.hyprland = { enable = true; @@ -67,48 +76,6 @@ emoji = [ "Noto Color Emoji" ]; }; - environment.systemPackages = with pkgs; [ - brightnessctl - catfish - cliphist - dunst - ffmpegthumbnailer - firefox - flatpak - ghostty - gcr - glib - grim - hypridle - hyprlock - hyprpaper - jq - kdePackages.breeze - libgsf - libnotify - libsecret - libsForQt5.qt5ct - libsForQt5.qtstyleplugin-kvantum - mpv - networkmanagerapplet - pavucontrol - papirus-icon-theme - playerctl - python3 - qt6Packages.qt6ct - qt6Packages.qtstyleplugin-kvantum - rofi - slurp - socat - waybar - wezterm - wl-clipboard - ristretto - thunar-archive-plugin - thunar-volman - zathura - ]; - systemd.user.services.hyprpolkitagent = { description = "Hyprland polkit agent"; wantedBy = [ "graphical-session.target" ]; diff --git a/modules/nixos/packages/c.nix b/modules/nixos/packages/c.nix new file mode 100644 index 0000000..6b6671b --- /dev/null +++ b/modules/nixos/packages/c.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ + binutils + clang + cmake + gcc + gdb + gnumake + ninja + pkg-config + ]; +} diff --git a/modules/nixos/packages/common.nix b/modules/nixos/packages/common.nix new file mode 100644 index 0000000..956a88d --- /dev/null +++ b/modules/nixos/packages/common.nix @@ -0,0 +1,32 @@ +{ + inputs, + pkgs, + ... +}: +{ + environment.systemPackages = with pkgs; [ + inputs."lolcat++".packages.${pkgs.stdenv.hostPlatform.system}.default + + bat + cowsay + curl + eza + fastfetch + fd + file + fortune + fzf + git + git-lfs + killall + neovim + odt2txt + openssl + ripgrep + stow + tealdeer + unzip + wget + yazi + ]; +} diff --git a/modules/nixos/packages/default.nix b/modules/nixos/packages/default.nix new file mode 100644 index 0000000..054585d --- /dev/null +++ b/modules/nixos/packages/default.nix @@ -0,0 +1,11 @@ +{ + c = import ./c.nix; + common = import ./common.nix; + desktop = import ./desktop.nix; + nix = import ./nix.nix; + node = import ./node.nix; + python = import ./python.nix; + rust = import ./rust.nix; + tpm = import ./tpm.nix; + uefi = import ./uefi.nix; +} diff --git a/modules/nixos/packages/desktop.nix b/modules/nixos/packages/desktop.nix new file mode 100644 index 0000000..fe03c4b --- /dev/null +++ b/modules/nixos/packages/desktop.nix @@ -0,0 +1,43 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ + brightnessctl + catfish + cliphist + dunst + ffmpegthumbnailer + firefox + flatpak + gcr + ghostty + glib + grim + hypridle + hyprlock + hyprpaper + jq + kdePackages.breeze + libgsf + libnotify + libsecret + libsForQt5.qt5ct + libsForQt5.qtstyleplugin-kvantum + mpv + networkmanagerapplet + papirus-icon-theme + pavucontrol + playerctl + qt6Packages.qt6ct + qt6Packages.qtstyleplugin-kvantum + ristretto + rofi + slurp + socat + thunar-archive-plugin + thunar-volman + waybar + wezterm + wl-clipboard + zathura + ]; +} diff --git a/modules/nixos/packages/nix.nix b/modules/nixos/packages/nix.nix new file mode 100644 index 0000000..b6e8fdd --- /dev/null +++ b/modules/nixos/packages/nix.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ nil ]; +} diff --git a/modules/nixos/packages/node.nix b/modules/nixos/packages/node.nix new file mode 100644 index 0000000..662c7b9 --- /dev/null +++ b/modules/nixos/packages/node.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ nodejs ]; +} diff --git a/modules/nixos/packages/python.nix b/modules/nixos/packages/python.nix new file mode 100644 index 0000000..d341e55 --- /dev/null +++ b/modules/nixos/packages/python.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ python3 ]; +} diff --git a/modules/nixos/packages/rust.nix b/modules/nixos/packages/rust.nix new file mode 100644 index 0000000..9f74b6b --- /dev/null +++ b/modules/nixos/packages/rust.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ rustup ]; +} diff --git a/modules/nixos/packages/tpm.nix b/modules/nixos/packages/tpm.nix new file mode 100644 index 0000000..c39e398 --- /dev/null +++ b/modules/nixos/packages/tpm.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ tpm2-tools ]; +} diff --git a/modules/nixos/packages/uefi.nix b/modules/nixos/packages/uefi.nix new file mode 100644 index 0000000..ca590a3 --- /dev/null +++ b/modules/nixos/packages/uefi.nix @@ -0,0 +1,4 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ efibootmgr ]; +}