{ config, inputs, pkgs, ... }: { imports = [ ./hardware-configuration.nix ]; # Sops stuff sops.defaultSopsFile = ../../secrets/gunter/secrets.yaml; sops.age.keyFile = "/var/lib/sops-nix/key.txt"; sops.age.generateKey = true; sops.secrets."gotify_tokens/backup-home" = { }; # Bootloader stuff boot.kernelParams = [ "quiet" "splash" "rd.systemd.show_status=false" ]; boot.loader.systemd-boot = { enable = true; configurationLimit = 10; }; boot.supportedFilesystems = [ "nfs" ]; boot.loader.efi = { canTouchEfiVariables = true; }; boot.extraModprobeConfig = '' options nvidia NVreg_RegistryDwords="PowerMizerEnable=0x1; PerfLevelSrc=0x2222; PowerMizerLevel=0x3; PowerMizerDefault=0x3; PowerMizerDefaultAC=0x3" options v4l2loopback exclusive_caps=1 card_label="Virtual Camera" ''; # Networking stuff networking.hostName = "gunter"; # Define your hostname. networking.networkmanager.enable = true; networking.nftables.enable = true; networking.firewall = { enable = true; }; # Set time stuff time.timeZone = "Europe/Oslo"; # Enable opengl hardware.opengl = { enable = true; driSupport = true; driSupport32Bit = true; extraPackages = with pkgs; [ vaapiVdpau nvidia-vaapi-driver ]; }; # Nvidia stuff hardware.nvidia = { modesetting.enable = true; powerManagement.enable = false; powerManagement.finegrained = false; open = false; nvidiaSettings = true; package = config.boot.kernelPackages.nvidiaPackages.stable; }; # Setup hyprland # nixpkgs.overlays = [ # (self: super: { # hyprland = super.hyprland.override { # debug = true; # }; # }) # ]; services.xserver.enable = true; services.xserver.videoDrivers = [ "nvidia" ]; services.xserver.displayManager.gdm.wayland = true; services.xserver.displayManager.lightdm.enable = false; services.xserver.displayManager.startx.enable = true; services.xserver.windowManager.i3.enable = true; programs.hyprland = { enable = true; xwayland.enable = true; portalPackage = pkgs.unstable.xdg-desktop-portal-hyprland; }; # Setup common XDG env vars environment.sessionVariables = rec { XDG_CACHE_HOME = "$HOME/.cache"; XDG_CONFIG_HOME = "$HOME/.config"; XDG_DATA_HOME = "$HOME/.local/share"; XDG_STATE_HOME = "$HOME/.local/state"; XDG_BIN_HOME = "$HOME/.local/bin"; PATH = [ "${XDG_BIN_HOME}" ]; }; # Setup xdg portal xdg.portal = { enable = true; xdgOpenUsePortal = true; extraPortals = (with pkgs; [ # unstable.xdg-desktop-portal-hyprland xdg-desktop-portal-gtk ]); }; # Enable flakes nix.settings.experimental-features = [ "nix-command" "flakes" ]; nixpkgs.config.allowUnfree = true; # Install system-wide packages environment.systemPackages = with pkgs; [ curl git libnotify usbutils vim wget v4l-utils nmap # X shit # xorg.xorgserver # xorg.xinit # xorg.xf86inputevdev # xorg.xf86inputlibinput # xorg.xinit ]; # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, # and migrated your data accordingly. # # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . system.stateVersion = "23.11"; # Did you read the comment? }