Simple flake setup to configure nixos laptop. Probably a lot of jank, so needs some refactoring as I get better at Nix. Hopefully there's no secrets in here that I'm leaking accidentally.
6I2HQYU2ZU5STWSYDZV3PLK6J3J4DWKXIJEZ3CCOVPXUJRR627BAC # Do not modify this file! It was generated by ‘nixos-generate-config’# and may be overwritten by future invocations. Please make changes# to /etc/nixos/configuration.nix instead.{ config, lib, pkgs, modulesPath, ... }:{imports =[ (modulesPath + "/installer/scan/not-detected.nix")];boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "sr_mod" ];boot.initrd.kernelModules = [ ];boot.kernelModules = [ "kvm-intel" ];boot.extraModulePackages = [ ];fileSystems."/" ={ device = "/dev/disk/by-uuid/9a5c78da-3650-4895-8f6a-f3ccf194ad90";fsType = "ext4";};fileSystems."/boot/efi" ={ device = "/dev/disk/by-uuid/B8E0-2F59";fsType = "vfat";};swapDevices = [ ];# Enables DHCP on each ethernet and wireless interface. In case of scripted networking# (the default) this is the recommended approach. When using systemd-networkd it's# still possible to use this option, but it's recommended to use it in conjunction# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.networking.useDHCP = lib.mkDefault true;# networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;}
# Thanks to https://colinramsay.co.uk/2021/10/19/migrating-a-nixos-install-to-flakes.html{# the source of your packagesinputs = {# normal nix stuffnixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";# Nixpkgs-waylandnixpkgs-wayland.url = "github:nix-community/nixpkgs-wayland";# only needed if you use as a package set:nixpkgs-wayland.inputs.nixpkgs.follows = "nixpkgs";# Rust via rust-overlayrust-overlay.url = "github:oxalica/rust-overlay";# Firefox nightly overlayfirefox-nightly-overlay.url = "github:mozilla/nixpkgs-mozilla";};# what will be produced (i.e. the build)outputs = inputs: {nixosConfigurations."nixos" =let system = "x86_64-linux";python-packages = ps: with ps; [requestsdiscordpypandasnumpy# spacynosematplotlibseabornbasemapgeopandaspyshpjupyternotebookipythonipykernelopenpyxl];in inputs.nixpkgs.lib.nixosSystem {inherit system;modules = [({pkgs, config, ... }: {imports = [ ./configuration.nix ];config = {nix.settings = {# add binary cachestrusted-public-keys = ["cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=""nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA="];substituters = ["https://cache.nixos.org""https://nixpkgs-wayland.cachix.org"];extra-substituters = [# Nix community's cache server"https://nix-community.cachix.org"];extra-trusted-public-keys = ["nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="];};nixpkgs.overlays = with inputs; [nixpkgs-wayland.overlayrust-overlay.overlays.defaultfirefox-nightly-overlay.overlay];# or, pull specific packages (built against inputs.nixpkgs, usually `nixos-unstable`)environment.systemPackages = with pkgs; [(rust-bin.selectLatestNightlyWith (toolchain: toolchain.default.override {extensions = [ "rust-src" "llvm-tools-preview" ];targets = [ "riscv32imc-unknown-none-elf" "x86_64-unknown-none" "wasm32-unknown-unknown" "wasm32-wasi" ];}))(python3.withPackages python-packages)latest.firefox-nightly-binneofetchgnome.gnome-remote-desktop # Needed for screen sharing? see https://bbs.archlinux.org/viewtopic.php?id=283835nushellFullpandocbiomealacrittyhelixdirenvdiscord-canaryvscodegitpijulsteamsidequestripgreparduinobatbottomdu-dustasciinemalapcefontconfigzoxidefdtokeihotspotonlyoffice-binhyperfinepsstbottlestopgradethunderbird-binrustdesksteam-runlutrismdbookdifftasticlurktypstobs-studiopkg-configopenssllibiconvzstdxxHashyarnnodejslibudev-zeroqemullvmPackages.bintoolsxorg.libX11xorg.libxkbfilelibsecretmoldclang_14cmakefontconfigfreetypeninjarufflibsodiumffmpegtkzipgdb];};})];};};}
# 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 ];# Enable Lorri daemonservices.lorri.enable = true;# SSH Agentservices.gnome.gnome-keyring.enable = true;security.pam.services.lightdm.enableGnomeKeyring = true;# Bootloader.boot.loader.systemd-boot.enable = true;boot.loader.efi.canTouchEfiVariables = true;boot.loader.efi.efiSysMountPoint = "/boot/efi";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";# Enable networkingnetworking.networkmanager.enable = true;# Dynamically configure time zone.services.automatic-timezoned.enable = true;# Select internationalisation properties.i18n.defaultLocale = "en_AU.utf8";# Enable the X11 windowing system.services.xserver.enable = true;# Enable the GNOME Desktop Environment.services.xserver.displayManager.gdm.enable = true;services.xserver.desktopManager.gnome.enable = true;services.xserver.displayManager.gdm.wayland = false; # I wish X11 wasn't required..# FUCK YOU GPGprograms.gnupg.agent = {enable = true;enableSSHSupport = true;pinentryFlavor = "gnome3";};# Fix fontsfonts = {enableDefaultPackages = true;fontDir.enable = true;packages = with pkgs; [nerdfonts];fontconfig.enable = true;};# Configure keymap in X11services.xserver = {layout = "au";xkbVariant = "";};# Enable CUPS to print documents.services.printing.enable = true;# Enable sound with pipewire.#sound.enable = true;hardware.pulseaudio.enable = false;# rtkit is optional but recommendedsecurity.rtkit.enable = true;services.pipewire = {enable = true;alsa.enable = true;alsa.support32Bit = true;pulse.enable = true;# If you want to use JACK applications, uncomment this#jack.enable = true;};# Enable touchpad support (enabled default in most desktopManager).# services.xserver.libinput.enable = true;# Define a user account. Don't forget to set a password with ‘passwd’.users.users.finchie = {isNormalUser = true;description = "Finchie";extraGroups = [ "networkmanager" "wheel" ];};# Allow unfree packagesnixpkgs.config.allowUnfree = true;# Firefox nightly overlay# nixpkgs.overlays =# let# moz-rev = "master";# moz-url = builtins.fetchTarball { url = "https://github.com/mozilla/nixpkgs-mozilla/archive/${moz-rev}.tar.gz";};# nightlyOverlay = (import "${moz-url}/firefox-overlay.nix");# in [# nightlyOverlay# (import "${fetchTarball "https://github.com/nix-community/fenix/archive/main.tar.gz"}/overlay.nix")# ];# List packages installed in system profile. To search, run:# $ nix search wgetenvironment.systemPackages = with pkgs; [# latest.firefox-nightly-bin];# Steam configurationnixpkgs.config.packageOverrides = pkgs: {steam = pkgs.steam.override {extraPkgs = pkgs: with pkgs; [libgdiplus];};};programs.steam.enable = true;# 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;# passwordAuthentication = false; # default true# permitRootLogin = "yes";# challengeResponseAuthentication = false;};# 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 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.nixUnstable;extraOptions = ''experimental-features = nix-command flakes'';};}
.git.DS_Storeflake.lock