mirror of
https://github.com/davegallant/nix-config
synced 2025-08-05 14:43:39 +00:00
265 lines
5.3 KiB
Nix
265 lines
5.3 KiB
Nix
{ config
|
|
, lib
|
|
, modulesPath
|
|
, pkgs
|
|
, unstable
|
|
, ...
|
|
}:
|
|
let
|
|
gnomeExtensions = with pkgs.gnomeExtensions; [
|
|
appindicator
|
|
bluetooth-quick-connect
|
|
blur-my-shell
|
|
caffeine
|
|
clipboard-indicator
|
|
dash-to-dock
|
|
grand-theft-focus
|
|
notification-banner-reloaded
|
|
quick-settings-tweaker
|
|
tailscale-status
|
|
tray-icons-reloaded
|
|
];
|
|
in
|
|
{
|
|
|
|
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
|
|
|
boot = {
|
|
extraModulePackages = with config.boot.kernelPackages; [
|
|
xpadneo
|
|
];
|
|
kernelModules = [ "kvm-amd" ];
|
|
kernelPackages = pkgs.linuxPackages;
|
|
|
|
loader = {
|
|
efi.canTouchEfiVariables = true;
|
|
efi.efiSysMountPoint = "/boot/efi";
|
|
grub = {
|
|
enable = true;
|
|
device = "nodev";
|
|
efiSupport = true;
|
|
enableCryptodisk = true;
|
|
};
|
|
};
|
|
|
|
supportedFilesystems = [ "ntfs" ];
|
|
|
|
initrd = {
|
|
availableKernelModules = [
|
|
"ahci"
|
|
"nvme"
|
|
"sd_mod"
|
|
"usb_storage"
|
|
"usbhid"
|
|
"xhci_pci"
|
|
];
|
|
luks.devices."root" = {
|
|
allowDiscards = true;
|
|
device = "/dev/disk/by-uuid/21cd166c-1528-49a4-b31b-0d408d48aa80";
|
|
preLVM = true;
|
|
keyFile = "./keyfile0.bin";
|
|
};
|
|
secrets = {
|
|
"keyfile0.bin" = "/etc/secrets/initrd/keyfile0.bin";
|
|
};
|
|
};
|
|
};
|
|
|
|
console = {
|
|
font = "Lat2-Terminus16";
|
|
keyMap = "us";
|
|
};
|
|
|
|
environment.systemPackages = with pkgs;
|
|
[
|
|
android-tools
|
|
bitwarden
|
|
cryptsetup
|
|
deja-dup
|
|
discord
|
|
docker
|
|
docker-compose
|
|
foliate
|
|
ghostscript
|
|
gimp-with-plugins
|
|
glibcLocales
|
|
gnome.gnome-tweaks
|
|
iputils
|
|
kazam
|
|
legendary-gl
|
|
lm_sensors
|
|
mullvad-vpn
|
|
netdata
|
|
nfs-utils
|
|
pavucontrol
|
|
pinentry-curses
|
|
podman
|
|
psst
|
|
qemu
|
|
sbx-h6-rgb
|
|
strace
|
|
tailscale
|
|
traceroute
|
|
ungoogled-chromium
|
|
unstable.burpsuite
|
|
unstable.logseq
|
|
unstable.obsidian
|
|
unstable.ryujinx
|
|
unstable.signal-desktop
|
|
usbutils
|
|
virt-manager
|
|
vlc
|
|
whois
|
|
wine
|
|
wine64
|
|
wireshark-qt
|
|
zoom-us
|
|
]
|
|
++ gnomeExtensions;
|
|
|
|
fileSystems = {
|
|
"/" = {
|
|
device = "/dev/disk/by-uuid/a6723178-6f18-428e-b541-9ac901861125";
|
|
fsType = "ext4";
|
|
};
|
|
"/home" = {
|
|
device = "/dev/disk/by-uuid/e3ab2e1a-bddf-4ae0-b00a-bf954c6c182b";
|
|
fsType = "ext4";
|
|
};
|
|
"/boot/efi" = {
|
|
device = "/dev/disk/by-uuid/3CFD-D749";
|
|
fsType = "vfat";
|
|
};
|
|
"/mnt/synology-2b/media" = {
|
|
device = "192.168.1.178:/volume1/Media";
|
|
fsType = "nfs";
|
|
};
|
|
"/mnt/synology-2b/backups" = {
|
|
device = "192.168.1.178:/volume1/Backups";
|
|
fsType = "nfs";
|
|
};
|
|
};
|
|
|
|
swapDevices = [
|
|
{ device = "/dev/disk/by-uuid/5d6d0388-2b15-4ff1-9f0f-391818a76090"; }
|
|
];
|
|
|
|
nixpkgs = {
|
|
hostPlatform = "x86_64-linux";
|
|
config = {
|
|
allowUnfree = true;
|
|
permittedInsecurePackages = [
|
|
"nix-2.16.2"
|
|
];
|
|
};
|
|
};
|
|
|
|
networking = {
|
|
iproute2.enable = true;
|
|
hostName = "hephaestus";
|
|
interfaces.enp34s0 = {
|
|
useDHCP = true;
|
|
};
|
|
firewall = {
|
|
allowPing = false;
|
|
enable = true;
|
|
checkReversePath = "loose";
|
|
trustedInterfaces = [ "tailscale0" ];
|
|
};
|
|
};
|
|
|
|
systemd.services = {
|
|
NetworkManager-wait-online.enable = false;
|
|
};
|
|
|
|
system = {
|
|
autoUpgrade.enable = true;
|
|
stateVersion = "23.11";
|
|
};
|
|
|
|
nix = {
|
|
extraOptions = "experimental-features = nix-command flakes";
|
|
package = pkgs.nixUnstable;
|
|
};
|
|
|
|
users.users.dave = {
|
|
isNormalUser = true;
|
|
extraGroups = [ "docker" "wheel" "libvirtd" "corectrl" ];
|
|
shell = pkgs.zsh;
|
|
};
|
|
|
|
i18n.defaultLocale = "en_US.UTF-8";
|
|
|
|
time.timeZone = "America/Toronto";
|
|
|
|
hardware = {
|
|
opengl.enable = true;
|
|
cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
pulseaudio.enable = true;
|
|
# Vulkan
|
|
opengl.driSupport = true;
|
|
opengl.driSupport32Bit = true;
|
|
# Steam
|
|
opengl.extraPackages32 = with pkgs.pkgsi686Linux; [ libva ];
|
|
pulseaudio.support32Bit = true;
|
|
};
|
|
|
|
programs = {
|
|
corectrl.enable = true;
|
|
gnupg.agent = {
|
|
enable = true;
|
|
enableSSHSupport = true;
|
|
};
|
|
steam = {
|
|
enable = true;
|
|
remotePlay.openFirewall = true;
|
|
};
|
|
zsh.enable = true;
|
|
};
|
|
|
|
services = {
|
|
avahi = {
|
|
enable = true;
|
|
nssmdns = true;
|
|
publish = {
|
|
enable = true;
|
|
addresses = true;
|
|
domain = true;
|
|
hinfo = true;
|
|
userServices = true;
|
|
workstation = true;
|
|
};
|
|
};
|
|
gnome.gnome-keyring.enable = true;
|
|
mullvad-vpn.enable = false;
|
|
printing.enable = true;
|
|
resolved.enable = true;
|
|
sshd.enable = true;
|
|
tailscale.enable = true;
|
|
udev.extraRules = ''
|
|
ACTION=="add", ATTR{idVendor}=="041e", ATTR{idProduct}=="3255", RUN+="${pkgs.sbx-h6-rgb}/bin/sbx-h6-ctl -c c010ff 041e:3255"
|
|
'';
|
|
xserver = {
|
|
enable = true;
|
|
displayManager = {
|
|
gdm = {
|
|
enable = true;
|
|
wayland = false;
|
|
};
|
|
};
|
|
desktopManager = {
|
|
gnome = {
|
|
enable = true;
|
|
};
|
|
};
|
|
videoDrivers = [ "amdgpu" ];
|
|
};
|
|
};
|
|
|
|
virtualisation = {
|
|
docker.enable = true;
|
|
libvirtd.enable = true;
|
|
podman.enable = true;
|
|
};
|
|
}
|