diff --git a/system/ooksdesk/ooksdesk.nix b/system/ooksdesk/ooksdesk.nix new file mode 100644 index 0000000..2657aa5 --- /dev/null +++ b/system/ooksdesk/ooksdesk.nix @@ -0,0 +1,88 @@ + + + + +{ inputs, pkgs, ... }: + + +{ + imports = [ + inputs.hardware.nixosModule.common-cpu-intel + inputs.hardware.nixosModule.common-pc-ssd + + ./hardware-configuration.nix # Hardware configuration generated by nix-generate-config + + ../common/user/ooks # Add and configure the user "ooks" + ../common/base # Default system programs + ../common/features/vm.nix # Adds VM support + ../common/features/greetd.nix # Adds login-manager greetd + + ]; + + + networking = { + hostName = "ooksdesk"; # Define hostname + networkmanager.enable = true; # Networking tool + }; + + boot = { + kernelPackages = pkgs.linuxKernel.packages.linux_zen; # Kernel version + supportedFilesystems = ["ntfs"]; # Add ntfs support + }; + + programs = { + dconf.enable = true; # Low level configuration system + kdeconnect.enable = true; # Adds android connectivity over local network + gnupg.agent = { # Daemon to request and cache passwords for the keychain + enable = true; + enableSSHSupport = true; + }; + }; + + xdg.portal = { # Allows cross-desktop communication + enable = true; + wlr.enable = true; # Adds Wayland support + }; + + hardware = { + opengl = { # Used for rendering 2D and 3D graphics + enable = true; + driSupport = true; + driSupport32Bit = true; + extraPackages = with pkgs; [nvidia-vaapi-driver]; # Adds nvidia VAAPI driver for hardware-accelerated video decoding + }; + nvidia = { + open = true; # Use Nvidia's open source kernel module + modesetting.enable = true; # Enables kernel modesettings + nvidiaSettings = true; # Nvidia's settings GUI + }; + }; + services = { + dbus = { # Allows communication between applications + enable = true; + packages = [ pkgs.gcr ]; # GNOME cryptographic services, used for managing cryptographic keys + }; + xserver.videoDrivers = ["nvidia"]; # Required for Nvidia to work + udisks2 = { # Used to manage mounting of temp storage + enable = true; + mountOnMedia = true; # Auto mounts device to /media + }; + }; + + environment = { + variables = { # Environment variables for nvidia + GBM_BACKEND = "nvidia-drm"; + LIBVA_DRIVER_NAME = "nvidia"; + __GLX_VENDOR_LIBRARY_NAME = "nvidia"; + }; + systemPackages = with pkgs; [ # Vulkan packages + vulkan-loader + vulkan-validation-layers + vulkan-tools + ]; + }; + + system = { + stateVersion = "22.05"; + }; +}