From 77c516cec2474c23d98c30784ec5fc69e16b2748 Mon Sep 17 00:00:00 2001 From: Filippo Berto Date: Sat, 30 Oct 2021 19:59:44 +0200 Subject: [PATCH] NixOS configuration for Thor --- nixos/odin-nvidia.nix | 9 +-- nixos/thor.nix | 152 +++++++++++++++++++++++++++++++++++++----- 2 files changed, 137 insertions(+), 24 deletions(-) diff --git a/nixos/odin-nvidia.nix b/nixos/odin-nvidia.nix index 9599222..c21ef24 100644 --- a/nixos/odin-nvidia.nix +++ b/nixos/odin-nvidia.nix @@ -7,6 +7,8 @@ { imports = [ + + ./base.nix ]; @@ -14,13 +16,6 @@ hardware.cpu.intel.updateMicrocode = config.hardware.enableRedistributableFirmware; - hardware.opengl.extraPackages = with pkgs; [ - vaapiIntel - vaapiVdpau - libvdpau-va-gl - intel-media-driver - ]; - services.xserver = { videoDrivers = [ "nvidia" ]; displayManager.sddm = { diff --git a/nixos/thor.nix b/nixos/thor.nix index 5896cc6..29d4d51 100644 --- a/nixos/thor.nix +++ b/nixos/thor.nix @@ -3,31 +3,149 @@ # and in the NixOS manual (accessible by running ‘nixos-help’). { config, pkgs, ... }: - { imports = [ - ./base.nix + /etc/nixos/hardware-configuration.nix ]; - hardware.enableRedistributableFirmware = true; - - services.xserver = { - videoDrivers = [ "nvidia" ]; - displayManager.sddm = { - enable = true; - autoNumlock = true; + boot = { + binfmt.emulatedSystems = [ "armv7l-linux" "aarch64-linux" ]; + extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; + loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; + initrd = { + checkJournalingFS = true; + luks.devices = { + root = { + device = "/dev/nvme0n1p2"; + preLVM = true; + allowDiscards = true; + }; + }; }; }; - hardware.nvidia.prime = { - offload.enable = false; - sync.enable = true; - intelBusId = "PCI:0:2:0"; - nvidiaBusId = "PCI:1:0:0"; + console = { + font = "Lat2-Terminus16"; + keyMap = "us"; }; - # hardware.nvidia.modesetting.enable = true; - # hardware.nvidia.package = pkgs.linuxPackages.nvidia_x11; - hardware.opengl.driSupport32Bit = true; + + environment = { + pathsToLink = [ "/share/zsh" ]; + systemPackages = with pkgs; [ + kakoune + tmux + vim + ]; + }; + + hardware = { + bluetooth.enable = true; + enableRedistributableFirmware = true; + pulseaudio.enable = false; + }; + + i18n.defaultLocale = "it_IT.UTF-8"; + + programs = { + dconf.enable = true; + gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + steam.enable = true; + zsh = { + enable = true; + syntaxHighlighting.enable = true; + }; + }; + + networking = { + hostName = "thor"; # Define your hostname. + interfaces = { + eno1.useDHCP = true; + wlp5s0.useDHCP = true; + }; + networkmanager.enable = true; + useDHCP = false; + }; + + time.timeZone = "Europe/Rome"; + + services = { + avahi = { enable = true; nssmdns = true; }; + clamav = { daemon.enable = true; updater.enable = true; }; + dbus.packages = with pkgs; [ gnome.dconf ]; + gnome.gnome-keyring.enable = true; + gvfs = { enable = true; package = pkgs.gnome3.gvfs; }; + openssh.enable = true; + pipewire = { + enable = true; + pulse.enable = true; + jack.enable = true; + alsa = { + enable = true; + support32Bit = true; + }; + # media-session.enable = true; + }; + power-profiles-daemon.enable = true; + smartd = { enable = true; notifications.x11.enable = true; }; + snapper = { + configs = + let + common = { + extraConfig = '' + ALLOW_USERS="bertof" + TIMELINE_CREATE=yes + TIMELINE_CLEANUP=yes + ''; + }; + in + { + bertof_home = common // { subvolume = "/home/bertof"; }; + }; + }; + thermald.enable = true; + xserver = { + enable = true; + desktopManager.gnome.enable = true; + displayManager.gdm = { enable = true; wayland = false; }; + layout = "us"; + videoDrivers = [ "nvidia" ]; + xkbOptions = "eurosign:e"; + }; + zerotierone = { enable = true; joinNetworks = [ "8056c2e21cf9c753" ]; }; + }; + + security = { + rtkit.enable = true; + sudo.extraConfig = '' + Defaults pwfeedback + ''; + }; + + sound.enable = true; + + users.users.bertof = { + isNormalUser = true; + extraGroups = [ "audio" "input" "docker" "libvirtd" "network" "usb" "video" "wheel" ]; + shell = pkgs.zsh; + }; + + virtualisation = { + docker.enable = true; + kvmgt.enable = true; + libvirtd.enable = true; + podman.enable = true; + virtualbox.host.enable = true; + }; + + nixpkgs.config.allowUnfree = true; + + system.stateVersion = "21.05"; # Did you read the comment? }