[rebuild]
switch *opts         # Build and activate the host flake
boot *opts           # Build the host flake, and make it the boot default
test *opts           # Build and activate the host flake, and revert on boot
build *opts          # Build the host flake
[history]
rollback             # Rollback to the previous generation
history limit='10'   # List available generations
wipe-history days    # Delete generations older than input days
[util]
check                # Run all flake checks
format               # Format all files
repl                 # Start a nix REPL with nixpkgs loaded
index                # Update the nixpkgs index
search pattern *args # Search for top-level packages and package outputs
update *args         # Update flake lockfile for all or specified inputs- 
Bootstrap xcode-select --install /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install git clone https://github.com/tedbyron/dotfiles.git ~/git/dotfiles --filter tree:0 # Give terminal full disk access and restart nix run nix-darwin -- --flake ~/git/dotfiles#host switch fd '.*before-nix-darwin' /etc -X sudo rm 
- 
Uninstall default apps mas uninstall \ 409203825 \ # Numbers 408981434 \ # iMovie 6826558836 \ # GarageBand 409183694 \ # Keynote 409201541 \ # Pages 
- 
Disable tipsd sudo launchctl disable system/com.apple.tipsd 
- 
Bootstrap - 
Boot to installer sudo -i 
- 
Partition and format - 
btrfslsblk parted /dev/nvmeXn1 -- mklabel gpt parted /dev/nvmeXn1 -- mkpart root btrfs 500MB -38GB parted /dev/nvmeXn1 -- mkpart swap btrfs -38GB 100% parted /dev/nvmeXn1 -- mkpart ESP fat32 1MB 500MB parted /dev/nvmeXn1 -- set 3 esp on mkfs.btrfs -L nixos /dev/nvmeXn1p1 mkfs.btrfs -L swap /dev/nvmeXn1p2 mkfs.fat -F 32 -n boot /dev/nvmeXn1p3 mkdir /mnt mount /dev/nvmeXn1p1 /mnt btrfs subvolume create /mnt/root btrfs subvolume create /mnt/nix btrfs subvolume create /mnt/home umount /mnt mount /dev/nvmeXn1p2 /mnt btrfs subvolume create /mnt/swap umount /mnt mount -o noatime,discard,subvol=root /dev/disk/by-label/nixos /mnt mkdir /mnt/{nix,home,swap,boot} mount -o compress=zstd,noatime,discard,subvol=nix \ /dev/disk/by-label/nixos /mnt/nix mount -o noatime,discard,subvol=home \ /dev/disk/by-label/nixos /mnt/home mount -o nodatacow,noatime,discard,subvol=swap \ /dev/disk/by-label/swap /mnt/swap mount -o umask=077 /dev/disk/by-label/boot /mnt/boot dd if=/dev/zero of=/mnt/swap/swapfile bs=1MB chmod 0600 /mnt/swap/swapfile mkswap -L swap -U clear /mnt/swap/swapfile swapon /mnt/swap/swapfile
 
- 
- 
Connect to wifi if necessary- 
nmcli(requires graphical installer)nmcli device wifi list nmcli device wifi connect SSID password PASSWORD 
- 
wpa_clisystemctl stop NetworkManager systemctl start wpa_supplicant wpa_cli add_network set_network 0 ssid SSID set_network 0 psk PASSWORD enable_network 0 
 
- 
- 
Generate config nixos-generate-config --root /mnt 
- 
Edit config{ config, lib, pgks, ... }: { swapDevices = [ { device = "/swap/swapfile"; } ]; boot.loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; }; networking = { hostname = "teds-desktop"; networkmanager.enable = true; }; nix.settings.experimental-features = [ "auto-allocate-uids" "flakes" "nix-command" "pipe-operators" ]; users = { defaultUserShell = pkgs.zsh; users.ted = { description = "Teddy Byron"; extraGroups = [ "networkmanager" "wheel" ]; isNormalUser = true; uid = 1000; }; }; fileSystems = let defaultOpts = [ "noatime" "discard" ]; in { "/".options = defaultOpts; "/nix".options = defaultOpts ++ [ "compress=zstd" ]; "/home".options = defaultOpts; "/boot".neededForBoot = true; "/swap" = { neededForBoot = true; options = defaultOpts ++ [ "nodatacow" ]; }; }; } 
- 
Install nixos-install mkdir /mnt/snapshots btrfs subvolume snapshot -r /mnt /mnt/snapshots/root-after-install nixos-enter --root /mnt -c 'passwd ted' reboot
- 
Switch to flake # Reconnect to wifi if necessary nix run nixpkgs#git -- \ clone https://github.com/tedbyron/dotfiles.git ~/git/dotfiles \ --filter tree:0 sudo nixos-rebuild --flake ~/git/dotfiles#host switch reboot 
 
- 
- 
VS Code - 
Preferences: configure runtime arguments "password-store": "gnome-libsecret" 
- 
Preferences "window.titleBarStyle": "native" 
 
- 
- 
Windows dual boot - 
Change hardware clock to UTC in registry HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformationkey value type RealTimeIsUniversal00000001dwordreg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation" /v RealTimeIsUniversal /d 1 /t REG_DWORD /f 
 
- 
- 
PCI display controllers nix shell nixpkgs#pciutils -c lspci -kd ::03xx 
- 
EDID info fd edid /sys/devices/pci0000:00 nix shell nixpkgs#read-edid -c parse-edid /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card2/card2-DP-4/edid 
- 
OpenGL nvidia-settings --glxinfo nix shell nixpkgs#glxinfo -c glxinfo 
- 
Vulkan nix shell nixpkgs#vulkan-tools -c vulkaninfo 
- 
VA-API NVD_LOG=1 nix shell nixpkgs#libva-utils -c vainfo 
- 
Gpg test key retrieval gpg --locate-keys --auto-key-locate clear,nodefault,wkd [email protected] 
- 
Reinstall bootloader sudo nixos-rebuild --install-bootloader boot 

