nixos-configs/hosts/mpl/configuration.nix

99 lines
2.0 KiB
Nix

{
inputs,
config,
pkgs,
...
}: {
imports = [
./audio.nix
./bootloader.nix
./disk-config.nix
./hardware.nix
./mounts.nix
./nebula.nix
./secrets.nix
];
networking = {
hostName = "mpl"; # Define your hostname.
networkmanager.enable = true;
firewall.enable = true;
};
# Allow unfree packages (firmware)
nixpkgs.config.allowUnfree = true;
# Set your time zone.
time.timeZone = "America/New_York";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
console = {
font = "Lat2-Terminus16";
keyMap = "us";
};
# Install fonts.
fonts = {
packages = with pkgs; [nerdfonts source-sans];
fontconfig = {
enable = true;
antialias = true; # >200dpi
defaultFonts = {
monospace = ["FantasqueSansMono Nerd Font"];
};
};
};
# Enable touchpad support (enabled default in most desktopManager).
services.libinput.enable = true;
# Define a user account.
users.users = {
root.hashedPasswordFile = config.sops.secrets."root-pw".path;
min = {
isNormalUser = true;
extraGroups = ["wheel" "networkmanager" "tss"];
hashedPasswordFile = config.sops.secrets."user-pw".path;
};
};
# Use zsh
programs.zsh.enable = true;
users.defaultUserShell = pkgs.zsh;
# Enable hyprland (needed for home-manager module)
programs.hyprland.enable = true;
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
programs.gnupg.agent = {
enable = true;
# TODO: pinentryPackage - rofi/bemenu maybe
};
services.pcscd.enable = true;
# Enable TPM2
security.tpm2 = {
enable = true;
pkcs11.enable = true;
};
# SSH askpass
programs.ssh.enableAskPassword = true;
# KDE connect (firewall)
programs.kdeconnect.enable = true;
# Home-manager
home-manager = {
extraSpecialArgs = {inherit inputs;};
users.${config.users.users.min.name} = import ../../homes/min;
};
system.stateVersion = "24.11";
}