{ config, pkgs, lib, outputs, inputs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix outputs.nixosModules.default ]; nix.settings.experimental-features = ["nix-command" "flakes"]; # Bootloader. boot.loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; }; # for virtual webcams boot.kernelModules = [ "v4l2loopback"]; boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; boot.extraModprobeConfig = '' options v4l2loopback devices=1 video_nr=0 card_label="My OBS Virt Cam" exclusive_caps=1 ''; security.polkit.enable = true; networking = { hostName = "remus"; networkmanager.enable = true; # wireless.enable = true; # Enables wireless support via wpa_supplicant. }; services.desktopManager.plasma6.enable = true; services.xserver.desktopManager.gnome.enable = true; services.displayManager.defaultSession = "plasma"; programs.ssh.askPassword = lib.mkForce "${pkgs.kdePackages.ksshaskpass.out}/bin/ksshaskpass"; environment.systemPackages = with pkgs; [ ryujinx v4l-utils wf-recorder obs-studio ]; programs.kdeconnect.enable = true; services.flatpak.enable = true; myNixOS = { bundles.general-desktop.enable = true; bundles.gaming = { enable = true; remotePlay = true; }; services.syncthing.enable = true; ausweisapp.enable = true; home-users = { "prunebutt" = { userConfig = ./home.nix; userSettings = { extraGroups = ["networkmanager" "wheel" "libvirtd" "docker"]; }; }; }; }; # List packages installed in system profile. To search, run: # $ nix search wget # Some programs need SUID wrappers, can be configured further or are # started in user sessions. # programs.mtr.enable = true; # programs.gnupg.agent = { # enable = true; # enableSSHSupport = true; # }; # List services that you want to enable: # Enable the OpenSSH daemon. services.openssh.enable = true; # Enable graphics hardware.graphics = { enable = true; enable32Bit = true; }; # Load nvidia driver for Xorg and Wayland 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 = true; # 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+ # Currently alpha-quality/buggy, so false is currently the recommended setting. 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; }; # Open ports in the firewall. # networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ]; # Or disable the firewall altogether. # networking.firewall.enable = false; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "23.11"; # Did you read the comment? }