nix-configs/systems/x86_64/shepard/flake.nix
2023-11-14 18:16:47 -07:00

129 lines
3.4 KiB
Nix

{
description = "Shepard";
inputs = {
# nixpkgs.url = "github:NixOS/nixpkgs/release-23.05";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
};
outputs = { self, nixpkgs-unstable, nixos-hardware, ... }@inputs: {
nixosConfigurations = {
"shepard" = nixpkgs-unstable.lib.nixosSystem {
system = "x86_64-linux";
specialArgs = { inherit inputs; };
modules = [
# Import the configuration.nix we used before, so that the old configuration file can still take effect.
# Note: /etc/nixos/configuration.nix itself is also a Nix Module, so you can import it directly here
# nixos-hardware.nixosModules.raspberry-pi-4
# ./configuration.nix
./hardware-configuration.nix
./gnome.nix
({config, pkgs, ...}: {
# Latest kernel
boot.kernelPackages = pkgs.linuxPackages_latest;
boot.loader = {
systemd-boot.enable = true;
systemd-boot.consoleMode = "0";
};
boot.initrd.luks.devices = {
root = {
device = "/dev/nvme1n1p2";
preLVM = true;
};
};
nix = {
settings.auto-optimise-store = true;
settings.experimental-features = [ "nix-command" "flakes" ];
gc = {
automatic = true;
dates = "weekly";
options = "--delete-older-than 30d";
};
};
networking = {
hostName = "shepard";
networkmanager.enable = true;
};
time.timeZone = "America/Denver";
# Stable
environment.systemPackages = with pkgs; [
avahi
cargo
cosmic-edit
dmidecode
fire
firefox
fish
git
git-lfs
libcamera
lshw
roboto-slab
neofetch
restic
unzip
wget
xz
];
users.users.aaronh = {
description = "Aaron Honeycutt";
home = "/home/aaronh";
extraGroups = [ "wheel" "networkmanager" "adm" ];
isNormalUser = true;
shell = pkgs.fish;
hashedPassword = "$6$aAcbLtqiqzySifls$jdKMOQjoWITHD/dWNNZVUH/qNc6aoJ7v4zYofi0U7IJSVTbmOfChS3mzaJbp57AodjdPNKPrnrip8Nlh2Qanx.";
packages = with pkgs; [
signal-desktop
youtube-music
];
};
programs.fish.enable = true;
# Enable Pipewire
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
# Turn off PulseAudio
hardware.pulseaudio.enable = false;
# Enable Bluetooth
hardware.bluetooth.enable = true;
# Enable SSH
services.openssh.enable = true;
# Enable CUPS
services.printing.enable = true;
# Allow Unfree
nixpkgs.config.allowUnfree = true;
# System
system = {
stateVersion = "23.11";
autoUpgrade.enable = true;
};
})
];
};
};
};
}