{ config, lib, pkgs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ./home.nix ]; # Bootloader boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; networking.hostName = "nixos-leo"; networking.networkmanager.enable = true; time.timeZone = "Europe/Berlin"; i18n.defaultLocale = "en_US.UTF-8"; i18n.extraLocaleSettings = { LC_ADDRESS = "de_DE.UTF-8"; LC_IDENTIFICATION = "de_DE.UTF-8"; LC_MEASUREMENT = "de_DE.UTF-8"; LC_MONETARY = "de_DE.UTF-8"; LC_NAME = "de_DE.UTF-8"; LC_NUMERIC = "de_DE.UTF-8"; LC_PAPER = "de_DE.UTF-8"; LC_TELEPHONE = "de_DE.UTF-8"; LC_TIME = "de_DE.UTF-8"; }; environment.variables = { EDITOR = "micro"; VISUAL = "micro"; }; services.xserver.enable = true; services.displayManager.sddm.enable = true; services.desktopManager.plasma6.enable = true; services.xserver.xkb = { layout = "de"; variant = ""; }; console.keyMap = "de"; services.printing.enable = true; hardware.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; hardware.graphics = { enable = true; }; services.xserver.videoDrivers = ["nvidia"]; hardware.nvidia = { # Modesetting is required. modesetting.enable = true; # Nvidia power management. Experimental, and can cause sleep/suspend to fail. # Enable this if you have graphical corruption issues or application crashes after waking # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead # of just the bare essentials. powerManagement.enable = false; # Fine-grained power management. Turns off GPU when not in use. # Experimental and only works on modern Nvidia GPUs (Turing or newer). powerManagement.finegrained = false; # Use the NVidia open source kernel module (not to be confused with the # independent third-party "nouveau" open source driver). # Support is limited to the Turing and later architectures. Full list of # supported GPUs is at: # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus # Only available from driver 515.43.04+ open = false; # Enable the Nvidia settings menu, # accessible via `nvidia-settings`. nvidiaSettings = true; # Optionally, you may need to select the appropriate driver version for your specific GPU. package = config.boot.kernelPackages.nvidiaPackages.stable; }; users.users.leo = { isNormalUser = true; description = "leo"; extraGroups = [ "networkmanager" "wheel" "video" ]; packages = with pkgs; [ kdePackages.kate pkgs.vesktop pkgs.brave pkgs.localsend pkgs.git pkgs.pciutils pkgs.spotify pkgs.prismlauncher pkgs.speedtest-cli pkgs.yazi zsh starship ]; }; programs.firefox.enable = true; nixpkgs.config.allowUnfree = true; environment.systemPackages = with pkgs; [ micro nano btop pkgs.flatpak pkgs.unzip pkgs.zip pkgs.python3 pkgs.python3Packages.flask pkgs.dig pkgs.fish pkgs.kitty pkgs.vscode pkgs.code-cursor pkgs.nodejs_23 pkgs.jq pkgs.xclip pkgs.ffmpeg_6-full pkgs.hyprland pkgs.temurin-jre-bin-23 appimage-run (nerdfonts.override { fonts = [ "ProFont" ]; }) pkgs.qbittorrent-enhanced virt-manager virt-viewer spice spice-gtk spice-protocol win-virtio win-spice ]; environment.shells = with pkgs; [ zsh ]; programs.bash.shellAliases = { l = "ls -alh"; ll = "ls -l"; ls = "ls --color=tty"; }; programs.steam.enable = true; programs.zsh = { enable = true; }; programs.starship = { enable = true; }; programs.virt-manager.enable = true; users.groups.libvirtd.members = ["leo"]; virtualisation = { libvirtd = { enable = true; qemu = { swtpm.enable = true; ovmf.enable = true; ovmf.packages = [ pkgs.OVMFFull.fd ]; }; }; spiceUSBRedirection.enable = true; }; services.spice-vdagentd.enable = true; system.stateVersion = "24.11"; }