nix/history/20250323_085726/configuration.nix
2025-03-23 09:39:46 +01:00

200 lines
4.3 KiB
Nix

{ 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;
users.users.libvirt-qemu = {
isSystemUser = true;
extraGroups = [ "video" ];
};
system.stateVersion = "24.11";
}