{ inputs, lib, pkgs, configVars, ... }: let # Disko setup fsType = "btrfs"; # one of ext4 or btrfs. Use btrfs if using impermanence dev = "/dev/nvme0n1"; # depends on target hardware encrypted = true; # currrently only applies to btrfs btrfsMountDevice = if encrypted then "/dev/mapper/crypted" else "/dev/root_vg/root"; user = "sam"; impermanence = true; pieholeIp = configVars.networking.addresses.piehole.ip; gatewayIp = configVars.networking.addresses.gateway.ip; semitaIp = configVars.networking.addresses.semita.ip; in { imports = [ # Create users for this host ../common/users/${user} # Disk configuration inputs.disko.nixosModules.disko (import ../common/disks { device = dev; impermanence = impermanence; fsType = fsType; encrypted = encrypted; }) # Impermanence (import ../common/disks/btrfs/impermanence.nix { btrfsMountDevice = btrfsMountDevice; lib = lib; }) # Import core options ./hardware-configuration.nix ../common/core # Import optional options ../common/optional/persistence.nix ../common/optional/pipewire.nix ../common/optional/openssh.nix ../common/optional/dwm.nix ../common/optional/nfs-mounts/media.nix ../common/optional/nfs-mounts/homeshare.nix ../common/optional/printing.nix ../common/optional/docker ../common/optional/nixos-containers/nix-bitcoin.nix ../common/optional/nixos-containers/postgres.nix ../common/optional/nixos-containers/jellyfin.nix ../common/optional/nixos-containers/baseddata-worker.nix ../common/optional/nixos-containers/mongodb.nix ]; fileSystems."/media/main-ssd" = { device = "/dev/disk/by-uuid/ba884006-e813-4b67-9fe6-62aea08b3b59"; fsType = "ext4"; }; boot = { blacklistedKernelModules = ["snd_hda_intel" "snd_soc_skl"]; kernelPackages = pkgs.linuxPackagesFor pkgs.linux_latest; loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; timeout = 3; }; }; services = { xserver = { dpi = 144; upscaleDefaultCursor = true; }; }; environment.variables = { GDK_SCALE = "2"; GDK_DPI_SCALE = "0.6"; _JAVA_OPTIONS = "-Dsun.java2d.uiScale=1.8"; QT_AUTO_SCREEN_SCALE_FACTOR = "1"; XCURSOR_SIZE = "32"; }; hardware.firmware = [ pkgs.sof-firmware ]; # Add hardware support for intel gpus as specified here: https://nixos.wiki/wiki/Jellyfin nixpkgs.config.packageOverrides = pkgs: { vaapiIntel = pkgs.vaapiIntel.override {enableHybridCodec = true;}; }; hardware.opengl = { enable = true; extraPackages = with pkgs; [ intel-media-driver intel-vaapi-driver vaapiVdpau libvdpau-va-gl intel-compute-runtime # only available on unstable unstable.vpl-gpu-rt intel-media-sdk ]; }; networking = { hostName = "semita"; nameservers = ["${pieholeIp}" "${gatewayIp}" "8.8.8.8"]; defaultGateway = "${gatewayIp}"; useDHCP = false; bridges = { br0 = { interfaces = ["eth0"]; }; }; interfaces.br0 = { ipv4.addresses = [ { "address" = "${semitaIp}"; "prefixLength" = 24; } ]; }; }; # Using non-Nix Python Packages with Binaries on NixOS https://github.com/mcdonc/.nixconfig/blob/e7885ad18b7980f221e59a21c91b8eb02795b541/videos/pydev/script.rst programs.nix-ld.enable = true; programs.nix-ld.libraries = with pkgs; [ zlib # numpy libgcc # sqlalchemy # that's where the shared libs go, you can find which one you need using # nix-locate --top-level libstdc++.so.6 (replace this with your lib) # ^ this requires `nix-index` pkg ]; environment.variables = { NIX_LD_LIBRARY_PATH="/run/current-system/sw/share/nix-ld/lib"; NIX_LD="/run/current-system/sw/share/nix-ld/lib/ld.so"; LD_LIBRARY_PATH=lib.mkForce "$NIX_LD_LIBRARY_PATH"; }; services.libinput.enable = true; }