···11+# Do not modify this file! It was generated by ‘nixos-generate-config’
22+# and may be overwritten by future invocations. Please make changes
33+# to /etc/nixos/configuration.nix instead.
44+{ config, lib, pkgs, modulesPath, ... }:
55+66+{
77+ imports =
88+ [ (modulesPath + "/installer/scan/not-detected.nix")
99+ ];
1010+1111+ boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
1212+ boot.initrd.kernelModules = [ ];
1313+ boot.kernelModules = [ "kvm-amd" ];
1414+ boot.extraModulePackages = [ ];
1515+1616+ fileSystems."/" =
1717+ { device = "/dev/disk/by-uuid/3a30689d-9a7b-454a-9572-5e8df3b6a76c";
1818+ fsType = "ext4";
1919+ };
2020+2121+ fileSystems."/boot" =
2222+ { device = "/dev/disk/by-uuid/BB4C-094D";
2323+ fsType = "vfat";
2424+ options = [ "fmask=0022" "dmask=0022" ];
2525+ };
2626+2727+ swapDevices = [ ];
2828+2929+ # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
3030+ # (the default) this is the recommended approach. When using systemd-networkd it's
3131+ # still possible to use this option, but it's recommended to use it in conjunction
3232+ # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
3333+ networking.useDHCP = lib.mkDefault true;
3434+ # networking.interfaces.enp34s0.useDHCP = lib.mkDefault true;
3535+ # networking.interfaces.enp40s0.useDHCP = lib.mkDefault true;
3636+3737+ nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
3838+ hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
3939+}
+224
nixos-configuration.nix
···11+# Edit this configuration file to define what should be installed on
22+# your system. Help is available in the configuration.nix(5) man page
33+# and in the NixOS manual (accessible by running ‘nixos-help’).
44+55+{ config, pkgs, ... }:
66+77+{
88+ imports =
99+ [ # Include the results of the hardware scan.
1010+ ./hardware-configuration.nix
1111+ ];
1212+1313+ # Bootloader.
1414+ # boot.loader.systemd-boot.enable = true;
1515+ boot.loader.grub.enable = true;
1616+ boot.loader.grub.devices = [ "nodev" ];
1717+ boot.loader.grub.efiSupport = true;
1818+ # boot.loader.efi.canTouchEfiVariables = true;
1919+ boot.loader.efi.efiSysMountPoint = "/boot";
2020+ boot.loader.grub.efiInstallAsRemovable = true;
2121+ boot.loader.grub.extraEntries = ''
2222+2323+ menuentry "Windows" {
2424+ search --fs-uuid --no-floppy --set=root D6E4-28CA
2525+ chainloader (''${root})/EFI/Microsoft/Boot/bootmgfw.efi
2626+ }
2727+2828+ '';
2929+3030+ networking.hostName = "nixos"; # Define your hostname.
3131+ # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
3232+3333+ # Configure network proxy if necessary
3434+ # networking.proxy.default = "http://user:password@proxy:port/";
3535+ # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
3636+3737+ # Enable networking
3838+ networking.networkmanager.enable = true;
3939+4040+ # Set your time zone.
4141+ time.timeZone = "America/Toronto";
4242+4343+ # Select internationalisation properties.
4444+ i18n.defaultLocale = "en_CA.UTF-8";
4545+4646+ # Enable the X11 windowing system.
4747+ services.xserver.enable = true;
4848+4949+ # Enable the GNOME Desktop Environment.
5050+ services.xserver.displayManager.gdm.enable = true;
5151+ services.xserver.desktopManager.gnome.enable = true;
5252+5353+ # Configure keymap in X11
5454+ services.xserver = {
5555+ xkb.layout = "us";
5656+ xkb.variant = "";
5757+ };
5858+5959+ # Enable CUPS to print documents.
6060+ # services.printing.enable = true;
6161+6262+ # Enable sound with pipewire.
6363+ hardware.pulseaudio.enable = false;
6464+ security.rtkit.enable = true;
6565+ services.pipewire = {
6666+ enable = true;
6767+ alsa.enable = true;
6868+ alsa.support32Bit = true;
6969+ pulse.enable = true;
7070+ # If you want to use JACK applications, uncomment this
7171+ #jack.enable = true;
7272+7373+ # use the example session manager (no others are packaged yet so this is enabled by default,
7474+ # no need to redefine it in your config for now)
7575+ #media-session.enable = true;
7676+ };
7777+7878+ # Enable touchpad support (enabled default in most desktopManager).
7979+ # services.xserver.libinput.enable = true;
8080+8181+ # Define a user account. Don't forget to set a password with ‘passwd’.
8282+ users.users.mofin = {
8383+ isNormalUser = true;
8484+ description = "Cameron";
8585+ extraGroups = [ "networkmanager" "wheel" ];
8686+ packages = with pkgs; [
8787+ # thunderbird
8888+ ];
8989+ };
9090+9191+ # Enable automatic login for the user.
9292+ services.displayManager.autoLogin.enable = true;
9393+ services.displayManager.autoLogin.user = "mofin";
9494+9595+ # Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
9696+ systemd.services."getty@tty1".enable = false;
9797+ systemd.services."autovt@tty1".enable = false;
9898+9999+ # Install firefox.
100100+ programs.firefox.enable = true;
101101+102102+ # Allow unfree packages
103103+ nixpkgs.config.allowUnfree = true;
104104+105105+ nix.settings.experimental-features = [ "nix-command" "flakes" ];
106106+107107+108108+ # List packages installed in system profile. To search, run:
109109+ # $ nix search wget
110110+ environment.systemPackages = with pkgs; [
111111+ vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
112112+ wget
113113+ vscode
114114+ git
115115+ networkmanager
116116+ git-credential-oauth
117117+ pass
118118+ haxe
119119+ neko
120120+ blackbox-terminal
121121+ nix-search-cli
122122+ spotify
123123+ lshw
124124+ wezterm
125125+ ];
126126+127127+128128+ services.pcscd.enable = true;
129129+ programs.gnupg.agent = {
130130+ enable = true;
131131+ pinentryPackage = pkgs.pinentry-curses;
132132+ enableSSHSupport = true;
133133+ };
134134+135135+ # Graphics / GPU stuff
136136+ services.xserver.videoDrivers = ["nvidia"];
137137+138138+139139+ hardware.opengl = {
140140+ enable = true;
141141+ extraPackages = with pkgs; [ libva nvidia-vaapi-driver ];
142142+ driSupport = true;
143143+ };
144144+145145+ hardware.nvidia = {
146146+147147+ # Modesetting is required.
148148+ modesetting.enable = true;
149149+150150+ # Nvidia power management. Experimental, and can cause sleep/suspend to fail.
151151+ # Enable this if you have graphical corruption issues or application crashes after waking
152152+ # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
153153+ # of just the bare essentials.
154154+ powerManagement.enable = true;
155155+156156+ # Fine-grained power management. Turns off GPU when not in use.
157157+ # Experimental and only works on modern Nvidia GPUs (Turing or newer).
158158+ powerManagement.finegrained = false;
159159+160160+ # Use the NVidia open source kernel module (not to be confused with the
161161+ # independent third-party "nouveau" open source driver).
162162+ # Support is limited to the Turing and later architectures. Full list of
163163+ # supported GPUs is at:
164164+ # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
165165+ # Only available from driver 515.43.04+
166166+ # Currently alpha-quality/buggy, so false is currently the recommended setting.
167167+ open = false;
168168+169169+ # Enable the Nvidia settings menu,
170170+ # accessible via `nvidia-settings`.
171171+ nvidiaSettings = true;
172172+173173+ # Optionally, you may need to select the appropriate driver version for your specific GPU.
174174+ package = config.boot.kernelPackages.nvidiaPackages.stable;
175175+ };
176176+177177+ time.hardwareClockInLocalTime = true;
178178+179179+180180+ console.font = "${pkgs.terminus_font}/share/consolefonts/ter-v32n.psf.gz";
181181+ console.earlySetup = true;
182182+183183+184184+ services.fstrim.enable = true;
185185+186186+ programs.steam = {
187187+ enable = true;
188188+ remotePlay.openFirewall = true;
189189+ dedicatedServer.openFirewall = true;
190190+ localNetworkGameTransfers.openFirewall = true;
191191+ };
192192+193193+ programs.git = {
194194+ enable = true;
195195+ package = pkgs.gitFull;
196196+ };
197197+198198+ # Some programs need SUID wrappers, can be configured further or are
199199+ # started in user sessions.
200200+ # programs.mtr.enable = true;
201201+ # programs.gnupg.agent = {
202202+ # enable = true;
203203+ # enableSSHSupport = true;
204204+ # };
205205+206206+ # List services that you want to enable:
207207+208208+ # Enable the OpenSSH daemon.
209209+ # services.openssh.enable = true;
210210+211211+ # Open ports in the firewall.
212212+ # networking.firewall.allowedTCPPorts = [ ... ];
213213+ # networking.firewall.allowedUDPPorts = [ ... ];
214214+ # Or disable the firewall altogether.
215215+ # networking.firewall.enable = false;
216216+217217+ # This value determines the NixOS release from which the default
218218+ # settings for stateful data, like file locations and database versions
219219+ # on your system were taken. It‘s perfectly fine and recommended to leave
220220+ # this value at the release version of the first install of this system.
221221+ # Before changing this value read the documentation for this option
222222+ # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
223223+ system.stateVersion = "24.05"; # Did you read the comment?
224224+}