Relocated & split up darwin & nixos modules

I broke out host specific bits from the configuration that should be
common to all hosts of a given type.
This commit is contained in:
Gene Liverman 2023-12-15 14:02:19 -05:00 committed by Gene Liverman
parent 7d7a958da9
commit 067ab7a012
10 changed files with 243 additions and 220 deletions

View file

@ -0,0 +1,52 @@
{ pkgs, ... }: {
system.stateVersion = 4;
environment = {
systemPackages = with pkgs; [
chart-testing
kopia
kubectx
python2
];
};
homebrew = {
taps = [
"hashicorp/tap"
# "homebrew/bundle"
# "jandedobbeleer/oh-my-posh"
"puppetlabs/puppet"
];
brews = [
"adr-tools"
"helm"
"kubernetes-cli"
];
casks = [
"asana"
"boinc"
"discord"
"elgato-stream-deck"
"google-drive"
"kopiaui"
"obs"
"pdk"
"puppet-agent"
"puppet-bolt"
"qmk-toolbox"
"thunderbird"
"vagrant"
"virtualbox"
"whalebird"
"zenmap"
];
masApps = {
"HomeCam" = 1292995895;
"Keeper Password Manager" = 414781829;
"MeetingBar" = 1532419400;
"Microsoft Remote Desktop" = 1295203466;
"Telegram" = 747648890;
"WhatsApp Messenger" = 310633997;
};
};
}

View file

@ -0,0 +1,110 @@
{ config, pkgs, ... }: let
username = "gene";
hostname = "rainbow-planet";
in {
imports = [
./hardware-configuration.nix
];
system.stateVersion = "23.05";
boot.loader = {
efi.canTouchEfiVariables = true;
systemd-boot= {
enable = true;
consoleMode = "1";
};
};
environment.systemPackages = with pkgs; [
# host specific apps
boinc
brightnessctl
gnome.nautilus
pavucontrol
polkit-kde-agent
ulauncher
whalebird
wmctrl
# common gui apps that really should be in another file
firefox
libreoffice
meld
slack
tilix
vivaldi
xfce.xfce4-terminal
zoom-us
];
networking = {
hostName = "${hostname}";
networkmanager.enable = true;
};
nix.settings.allowed-users = [ "${username}" ];
programs = {
_1password.enable = true;
_1password-gui = {
enable = true;
# Certain features, including CLI integration and system authentication support,
# require enabling PolKit integration on some desktop environments (e.g. Plasma).
polkitPolicyOwners = [ "${username}" ];
};
hyprland.enable = true;
# common programs that really should be in another file
# required for setting to be picked up by xfce4-terminal
xfconf.enable = true;
};
services = {
boinc.enable = true;
gnome.gnome-keyring.enable = true; # Provides secret storage
gvfs.enable = true; # Used by Nautilus
printing.enable = true; # Enable CUPS
tailscale = {
extraUpFlags = [
"--ssh"
];
};
xserver = {
enable = true; # Enable the X11 windowing system.
# Configure keymap in X11
layout = "us";
xkbVariant = "";
displayManager = {
gdm = {
enable = true;
wayland = true;
};
};
};
};
# Enable sound with pipewire.
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = true;
};
# Define a user account. Don't forget to set a password with passwd.
users.users.${username} = {
isNormalUser = true;
description = "Gene Liverman";
extraGroups = [ "networkmanager" "wheel" "dialout" "input" ];
packages = with pkgs; [
tailscale-systray
];
};
}

View file

@ -0,0 +1,40 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/eb9a2c7e-ae61-4d06-9464-49b98d576f7c";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/924D-E7A4";
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/166d24ca-401c-492e-845d-bb1d0d6d7d86"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp58s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}