# Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). { config, pkgs, ... }: { imports = [ # Include the results of the hardware scan. #./modules/layout.nix ./modules/audio.nix ./modules/bluetooth.nix ./modules/ntfs.nix # ./modules/virtual_machine.nix #./modules/nouveau.nix #./modules/nvidia.nix ./hardware-configuration.nix ]; # Bootloader. boot.loader = { systemd-boot.enable = false; efi = { canTouchEfiVariables = true; }; grub = { enable = true; efiSupport = true; device = "nodev"; useOSProber = true; }; }; boot.extraModprobeConfig = '' options amdgpu ppfeaturemask=0xFFF7FFFF ''; boot.initrd.kernelModules = [ "amdgpu" ]; networking.hostName = "nixos"; # Define your hostname. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # Configure network proxy if necessary # networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; services.xserver.enable = true; services.xserver.displayManager = { startx.enable = true; lightdm.enable = false; }; services.xserver.windowManager.dwm.enable = true; hardware.opengl = { enable = true; driSupport = true; }; hardware.cpu.amd.updateMicrocode = true; hardware.enableRedistributableFirmware = true; programs.nix-ld.enable = true; programs.nix-ld.libraries = with pkgs; [ # Add any missing dynamic libraries for unpackaged programs # here, NOT in environment.systemPackages ]; # Enable networking networking.networkmanager.enable = true; #networking.wireless.enable = true; #networking.wireless.userControlled.enable = true; # Set your time zone. time.timeZone = "America/New_York"; # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; i18n.extraLocaleSettings = { LC_ADDRESS = "en_US.UTF-8"; LC_IDENTIFICATION = "en_US.UTF-8"; LC_MEASUREMENT = "en_US.UTF-8"; LC_MONETARY = "en_US.UTF-8"; LC_NAME = "en_US.UTF-8"; LC_NUMERIC = "en_US.UTF-8"; LC_PAPER = "en_US.UTF-8"; LC_TELEPHONE = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8"; }; # Configure keymap in X11 services.xserver = { xkb.layout = "us"; #xkb.variant = "colemak_dh_iso"; excludePackages = [ pkgs.xterm ]; }; services.hardware.openrgb = { enable = true; package = pkgs.openrgb-with-all-plugins; motherboard = "amd"; server.port = 6742; }; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.vitrial = { isNormalUser = true; description = "vitrial"; extraGroups = [ "networkmanager" "wheel" ]; packages = with pkgs; []; }; security.sudo.wheelNeedsPassword = false; programs.nano.enable = false; programs.steam.enable = true; programs.gamemode = { enable = true; settings = { gpu = { apply_gup_optimizations = "accept-responsibility"; gpu_device = 0; nvidia_performance_level = "high"; }; custom = { start = "${pkgs.dunst}/bin/dunstify 'GameMode started'"; end = "${pkgs.dunst}/bin/dunstify 'GameMode ended'"; }; }; }; services.xserver.libinput = { enable = true; mouse = { middleEmulation = false; accelProfile = "flat"; }; }; services.xserver.wacom.enable = true; #services.fprintd.enable = true; #services.fprintd.tod.enable = true; #services.fprintd.tod.driver = pkgs.libfprint-2-tod1-vfs0090; nix.settings.experimental-features = [ "nix-command" "flakes" ]; # Allow unfree packages nixpkgs.config.allowUnfree = true; programs.bash.shellAliases = { ror = "steam steam://rungameid/632360"; cs2 = "steam steam://rungameid/730"; }; # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. eza wget home-manager xdotool xorg.xkbcomp xorg.libX11 xorg.libXinerama picom ratpoison arandr pavucontrol wacomtablet xf86_input_wacom libwacom lact #linuxKernel.packages.linux_6_6.nvidia_x11 (python3.withPackages (ps: with ps; [ scapy ])) (st.overrideAttrs (oldAttrs: rec { buildInputs = oldAttrs.buildInputs ++ [ harfbuzz ]; patches = [ (fetchpatch { url = "https://software.vitrial.xyz/nix-st.diff"; sha256 = "1ph4nb8d9vkaq1rcdzlavhppxp1ikqygljqbnkpmx6j80khvjz3h"; }) ]; })) ]; systemd.packages = with pkgs; [ lact ]; systemd.services.lactd.wantedBy = ["multi-user.target"]; fonts.packages = with pkgs; [ (nerdfonts.override { fonts = [ "FiraCode" ]; }) ]; console.colors = [ "1E2127" "E06C75" "98C379" "D19A66" "5B9BB3" "C678DD" "56B6C2" "ABB2BF" "5C6370" "E06C75" "98C379" "D19A66" "5B9BB3" "C678DD" "56B6C2" "FFFFFF" ]; # 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; programs.ssh.enableAskPassword = false; programs.ssh.askPassword = ""; # 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? }