Files
Olympus/system-config/configuration/laptop/default.nix
2025-08-17 14:04:02 -05:00

255 lines
6.6 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{ config, pkgs, lib, inputs, ... }:
{
imports = [
./hardware-configuration.nix
inputs.home-manager.nixosModules.default
inputs.sops-nix.nixosModules.sops
];
nixpkgs.config = {
allowUnfree = true;
};
# Bootloader.
boot = {
kernelPackages = pkgs.linuxKernel.packages.linux_6_16;
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
kernelParams = [ "snd-intel-dspcfg.dsp_driver=1" ];
};
systemd.extraConfig = "DefaultLimitNOFILE=2048";
hardware = {
graphics.enable = true;
nvidia = {
modesetting.enable = true;
powerManagement.enable = true;
powerManagement.finegrained = false;
open = false;
nvidiaSettings = true;
package = config.boot.kernelPackages.nvidiaPackages.stable;
prime = {
# Make sure to use the correct Bus ID values for your system!
intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
# WARNING: sync and offload are mutually exclusive.
# You can only pick one!!
#sync.enable = true;
offload = {
enable = true;
enableOffloadCmd = true;
};
};
};
#enable bluetooth
bluetooth.enable = true;
};
services.pulseaudio.enable = false;
virtualisation.docker.enable = true;
environment.systemPackages = with pkgs; [
docker
docker-compose
alsa-utils
];
sysconfig = {
users = {
nathan = {
extraGroups = [ "wheel" "networkmanager" ];
sshKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAsU69CxfQk58CvItPN426h5Alnpb60SH37wet97Vb57 nathan@laptop"
];
hashedPasswordFile = config.sops.secrets."nathan/pass".path;
home-manager = {
enable = true;
extraModules = [
{
homeconfig = {
host = "homebox";
minimal = false;
wayvnc.enable = false;
hyprland.enable = true;
swaylock.enable = true;
wal.enable = true;
mpd.enable = true;
ags.enable = true;
calcurse.enable = true;
rofi.enable = true;
firefox.enable = true;
git.enable = true;
nh.enable = true;
};
home.packages = [
pkgs.wayvnc
];
}
];
};
};
};
services = {
sddm.enable = true;
openssh.enable = false;
pipewire.enable = true;
kdePlasma6.enable = true;
netbird.enable = true;
ollama.enable = true;
};
programs = {
steam.enable = true;
ags.enable = true;
hyprland.enable = true;
};
virtualization = {
wyoming = {
enable = false;
};
homeassistant = {
enable = false;
};
};
};
home-manager = {
backupFileExtension = "backup";
extraSpecialArgs = { inherit inputs; };
sharedModules = [ inputs.sops-nix.homeManagerModules.sops ];
users = {
"nathan" = lib.mkMerge [
{
homeconfig = {
host = "laptop";
minimal = false;
hyprland.enable = true;
swaylock.enable = true;
wal.enable = true;
wayvnc.enable = false;
mpd.enable = true;
ags.enable = true;
calcurse.enable = true;
rofi.enable = true;
firefox.enable = true;
git.enable = true;
nh.enable = true;
};
}
(inputs.nathan-home-manager {
config = config.home-manager.users."nathan";
inherit lib pkgs;
})
];
};
};
# Enable the X11 windowing system.
services.xserver = {
enable = true;
videoDrivers = ["nvidia"];
};
services.displayManager.enable = true;
services.avahi = {
enable = true;
ipv4 = true;
ipv6 = true;
openFirewall = true;
nssmdns4 = true;
wideArea = true;
};
environment.shells = with pkgs; [ zsh ];
# Enable CUPS to print documents.
services.printing.enable = true;
programs.adb.enable = true;
users.defaultUserShell = pkgs.zsh;
programs.zsh.enable = true;
system.stateVersion = "23.05"; # Did you read the comment?
# Set your time zone.
time.timeZone = "America/Chicago";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
networking = {
hostName = "laptop";
nameservers = [ "1.1.1.1" "1.0.0.1" ];
networkmanager.enable = true;
#firewall.allowedTCPPorts = [ 22 80 443 ];
};
users.users."nathan" = {
isNormalUser = true;
initialPassword = "7567";
#hashedPasswordFile = config.sops.secrets."nathan/pass".path;
extraGroups = [
"wheel"
"podman"
"docker"
"networkmanager"
]; # Enable sudo for the user.
openssh.authorizedKeys.keys = [];
};
nix = {
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
settings = {
experimental-features = [ "nix-command" "flakes" ];
};
};
sops = {
age.keyFile = "/home/nathan/.config/sops/age/keys.txt";
defaultSopsFile = ./secrets.yaml;
defaultSopsFormat = "yaml";
};
fonts.packages = with pkgs; [ nerd-fonts.fira-code ];
}