# 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. ./hardware-configuration.nix ]; # Try to pass through Wii remotes # services.udev.packages = [ pkgs.dolphinEmu ]; virtualisation.docker.enable = true; # Should avoid tmpfs running out of space, thanks to: https://discourse.nixos.org/t/run-usr-id-is-too-small/4842 services.logind.extraConfig = "RuntimeDirectorySize=4G"; # Setup binary caching nix.settings = { # add binary caches substituters = [ "https://cosmic.cachix.org" "https://cache.nixos.org" "https://nixpkgs-wayland.cachix.org" "https://cache.lix.systems" ]; trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=" "cache.lix.systems:aBnZUw8zA7H35Cz2RyKFVs3H4PlGTLawyY5KRbvJR8o=" ]; extra-substituters = [ # Nix community's cache server "https://nix-community.cachix.org" ]; extra-trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ]; }; # Automatically hard-link where appropriate nix.optimise.automatic = true; # Laptop-specific config powerManagement.enable = true; services.thermald.enable = true; services.auto-cpufreq = { enable = true; settings = { battery = { governor = "powersave"; turbo = "never"; }; charger = { governor = "performance"; turbo = "auto"; }; }; }; # Disable wifi powersaving mode networking.networkmanager.wifi.powersave = false; # Use the zen kernel boot.kernelPackages = pkgs.linuxPackages_zen; # Bootloader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.efiSysMountPoint = "/boot/efi"; networking.hostName = "nixos"; # Define your hostname. # Enable networking networking.networkmanager.enable = true; # Don't wait for connection to boot systemd.services.NetworkManager-wait-online.enable = false; # Mount with `noatime` option fileSystems."/".options = [ "noatime" ]; # Select internationalisation properties. i18n.defaultLocale = "en_AU.utf8"; # Enable the COSMIC Desktop Environment. services.displayManager.cosmic-greeter.enable = true; services.desktopManager.cosmic.enable = true; # Enable System76 scheduler services.system76-scheduler.enable = true; # FUCK YOU GPG programs.gnupg.agent = { enable = true; enableSSHSupport = true; pinentryPackage = pkgs.pinentry-gnome3; }; # Fix fonts fonts = { enableDefaultPackages = true; fontDir.enable = true; packages = with pkgs; [ intel-one-mono ]; fontconfig = { enable = true; defaultFonts = { monospace = [ "Intel One Mono" ]; sansSerif = [ "Intel One Mono" ]; }; }; }; # Configure keymap in X11 services.xserver.xkb = { layout = "au"; variant = ""; }; # Enable CUPS to print documents. services.printing.enable = true; # Enable pulseaudio hardware.pulseaudio.enable = false; # rtkit is optional but recommended security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.finchie = { isNormalUser = true; description = "Finchie"; shell = pkgs.nushell; extraGroups = [ "networkmanager" "wheel" "docker" ]; }; # Allow unfree packages nixpkgs.config = { allowUnfree = true; nvidia.acceptLicense = true; }; # Steam configuration nixpkgs.config.packageOverrides = pkgs: { steam = pkgs.steam.override { extraPkgs = pkgs: with pkgs; [ libgdiplus ]; }; }; programs.steam.enable = true; # 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 leavecatenate(variables, "bootdev", bootdev) # 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 = "22.05"; # Did you read the comment? nix = { package = pkgs.nixVersions.latest; extraOptions = '' experimental-features = nix-command flakes auto-allocate-uids ''; }; }