add curve, clone kuro
This commit is contained in:
		
							parent
							
								
									e8cd6f02d4
								
							
						
					
					
						commit
						8eef2f4549
					
				
							
								
								
									
										79
									
								
								hosts/curve/configuration.nix
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										79
									
								
								hosts/curve/configuration.nix
									
									
									
									
									
										Executable file
									
								
							|  | @ -0,0 +1,79 @@ | ||||||
|  | { config, pkgs, ... }: | ||||||
|  | 
 | ||||||
|  | { | ||||||
|  |   imports = | ||||||
|  |     [ # Include the results of the hardware scan. | ||||||
|  |       ./hardware-configuration.nix | ||||||
|  |     ]; | ||||||
|  | 
 | ||||||
|  |   boot.loader.grub.enable = true; | ||||||
|  |   boot.loader.grub.version = 2; | ||||||
|  |   # Define on which hard drive you want to install Grub. | ||||||
|  |   boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only | ||||||
|  | 
 | ||||||
|  |   # Minimal list of modules to use the EFI system partition and the YubiKey | ||||||
|  |   boot.initrd.kernelModules = [ "vfat" "nls_cp437" "nls_iso8859-1" "usbhid" ]; | ||||||
|  |    | ||||||
|  |   # Enable support for the YubiKey PBA | ||||||
|  |   boot.initrd.luks.yubikeySupport = true; | ||||||
|  |    | ||||||
|  |   # Configuration to use your Luks device | ||||||
|  |   boot.initrd.luks.devices = { | ||||||
|  |     "crypthome" = { | ||||||
|  |       device = "/dev/sda2"; | ||||||
|  |       preLVM = true; # You may want to set this to false if you need to start a network service first | ||||||
|  |       yubikey = { | ||||||
|  |         slot = 2; | ||||||
|  |         twoFactor = true; # Set to false if you did not set up a user password. | ||||||
|  |         storage = { | ||||||
|  |           device = "/dev/sda1"; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |     };  | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |  # nix = { | ||||||
|  |  #   package = pkgs.nixUnstable; | ||||||
|  |  #   extraOptions = "experimental-features = nix-command flakes"; | ||||||
|  |  # }; | ||||||
|  | 
 | ||||||
|  |   networking.hostName = "curve"; # Define your hostname. | ||||||
|  |   networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant. | ||||||
|  | 
 | ||||||
|  |   time.timeZone = "Australia/Brisbane"; | ||||||
|  | 
 | ||||||
|  |   networking.useDHCP = false; | ||||||
|  |   networking.interfaces.enp0s31f6.useDHCP = true; | ||||||
|  |   networking.interfaces.wlp3s0.useDHCP = true; | ||||||
|  | 
 | ||||||
|  |   # Select internationalisation properties. | ||||||
|  |   i18n.defaultLocale = "en_US.UTF-8"; | ||||||
|  |   # console = { | ||||||
|  |   #   font = "Lat2-Terminus16"; | ||||||
|  |   #   keyMap = "us"; | ||||||
|  |   # }; | ||||||
|  | 
 | ||||||
|  |   services.xserver.layout = "us,dvorak"; | ||||||
|  | 
 | ||||||
|  |   sound.enable = true; | ||||||
|  |   hardware.pulseaudio.enable = true; | ||||||
|  | 
 | ||||||
|  |   services.xserver.libinput.enable = true; | ||||||
|  | 
 | ||||||
|  |   users.users.anish = { | ||||||
|  |     isNormalUser = true; | ||||||
|  |     extraGroups = [ "wheel" ];  | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   # Enable the OpenSSH daemon. | ||||||
|  |   # services.openssh.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 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 = "21.05"; # Did you read the comment? | ||||||
|  | } | ||||||
|  | 
 | ||||||
							
								
								
									
										128
									
								
								hosts/curve/default.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								hosts/curve/default.nix
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,128 @@ | ||||||
|  | { pkgs, config, lib, ... }: | ||||||
|  | { | ||||||
|  |   imports = [ | ||||||
|  |     ../home.nix | ||||||
|  |     ./hardware-configuration.nix | ||||||
|  |     ./configuration.nix | ||||||
|  |   ]; | ||||||
|  | 
 | ||||||
|  |   ## Modules | ||||||
|  |   modules = { | ||||||
|  |     desktop = { | ||||||
|  |       bspwm.enable = true; | ||||||
|  |       apps = { | ||||||
|  |         discord.enable = true; | ||||||
|  |         rofi.enable = true; | ||||||
|  |         # godot.enable = true; | ||||||
|  |         signal.enable = true; | ||||||
|  |       }; | ||||||
|  |       browsers = { | ||||||
|  |         default = "brave"; | ||||||
|  |         brave.enable = true; | ||||||
|  |         firefox.enable = true; | ||||||
|  |         qutebrowser.enable = true; | ||||||
|  |       }; | ||||||
|  |       gaming = { | ||||||
|  |         steam.enable = true; | ||||||
|  |         # emulators.enable = true; | ||||||
|  |         # emulators.psx.enable = true; | ||||||
|  |       }; | ||||||
|  |       media = { | ||||||
|  |         daw.enable = true; | ||||||
|  |         documents.enable = true; | ||||||
|  |         graphics.enable = true; | ||||||
|  |         mpv.enable = true; | ||||||
|  |         recording.enable = true; | ||||||
|  |         spotify.enable = true; | ||||||
|  |       }; | ||||||
|  |       term = { | ||||||
|  |         default = "xst"; | ||||||
|  |         st.enable = true; | ||||||
|  |       }; | ||||||
|  |       vm = { | ||||||
|  |         qemu.enable = true; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |     dev = { | ||||||
|  |       node.enable = true; | ||||||
|  |       rust.enable = true; | ||||||
|  |       python.enable = true; | ||||||
|  |     }; | ||||||
|  |     editors = { | ||||||
|  |       default = "nvim"; | ||||||
|  |       emacs.enable = true; | ||||||
|  |       vim.enable = true; | ||||||
|  |     }; | ||||||
|  |     shell = { | ||||||
|  |       adl.enable = true; | ||||||
|  |       vaultwarden.enable = true; | ||||||
|  |       direnv.enable = true; | ||||||
|  |       git.enable    = true; | ||||||
|  |       gnupg.enable  = true; | ||||||
|  |       tmux.enable   = true; | ||||||
|  |       zsh.enable    = true; | ||||||
|  |     }; | ||||||
|  |     services = { | ||||||
|  |       ssh.enable = true; | ||||||
|  |       docker.enable = true; | ||||||
|  |       # Needed occasionally to help the parental units with PC problems | ||||||
|  |       # teamviewer.enable = true; | ||||||
|  |     }; | ||||||
|  |     theme.active = "alucard"; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |   ## Local config | ||||||
|  |   programs.ssh.startAgent = true; | ||||||
|  |   services.openssh.startWhenNeeded = true; | ||||||
|  | 
 | ||||||
|  |   networking.networkmanager.enable = true; | ||||||
|  |   # The global useDHCP flag is deprecated, therefore explicitly set to false | ||||||
|  |   # here. Per-interface useDHCP will be mandatory in the future, so this | ||||||
|  |   # generated config replicates the default behaviour. | ||||||
|  |   networking.useDHCP = false; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |   ## Personal backups | ||||||
|  |   # Syncthing is a bit heavy handed for my needs, so rsync to my NAS instead. | ||||||
|  |   systemd = { | ||||||
|  |     services.backups = { | ||||||
|  |       description = "Backup /usr/store to NAS"; | ||||||
|  |       wants = [ "usr-drive.mount" ]; | ||||||
|  |       path  = [ pkgs.rsync ]; | ||||||
|  |       environment = { | ||||||
|  |         SRC_DIR  = "/usr/store"; | ||||||
|  |         DEST_DIR = "/usr/drive"; | ||||||
|  |       }; | ||||||
|  |       script = '' | ||||||
|  |         rcp() { | ||||||
|  |           if [[ -d "$1" && -d "$2" ]]; then | ||||||
|  |             echo "---- BACKUPING UP $1 TO $2 ----" | ||||||
|  |             rsync -rlptPJ --chmod=go= --delete --delete-after \ | ||||||
|  |                 --exclude=lost+found/ \ | ||||||
|  |                 --exclude=@eaDir/ \ | ||||||
|  |                 --include=.git/ \ | ||||||
|  |                 --filter=':- .gitignore' \ | ||||||
|  |                 --filter=':- $XDG_CONFIG_HOME/git/ignore' \ | ||||||
|  |                 "$1" "$2" | ||||||
|  |           fi | ||||||
|  |         } | ||||||
|  |         rcp "$HOME/projects/" "$DEST_DIR/projects" | ||||||
|  |         rcp "$SRC_DIR/" "$DEST_DIR" | ||||||
|  |       ''; | ||||||
|  |       serviceConfig = { | ||||||
|  |         Type = "oneshot"; | ||||||
|  |         Nice = 19; | ||||||
|  |         IOSchedulingClass = "idle"; | ||||||
|  |         User = config.user.name; | ||||||
|  |         Group = config.user.group; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |     timers.backups = { | ||||||
|  |       wantedBy = [ "timers.target" ]; | ||||||
|  |       partOf = [ "backups.service" ]; | ||||||
|  |       timerConfig.OnCalendar = "*-*-* 00,12:00:00"; | ||||||
|  |       timerConfig.Persistent = true; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
							
								
								
									
										38
									
								
								hosts/curve/hardware-configuration.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								hosts/curve/hardware-configuration.nix
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,38 @@ | ||||||
|  | # 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" "ahci" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; | ||||||
|  |   boot.initrd.kernelModules = [ "dm-snapshot" ]; | ||||||
|  |   boot.kernelModules = [ ]; | ||||||
|  |   boot.extraModulePackages = [ ]; | ||||||
|  | 
 | ||||||
|  |   fileSystems."/" = | ||||||
|  |     { device = "/dev/disk/by-uuid/6ee9d430-1b1b-4e39-bced-606145570a78"; | ||||||
|  |       fsType = "btrfs"; | ||||||
|  |       options = [ "subvol=root" ]; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |   fileSystems."/home" = | ||||||
|  |     { device = "/dev/disk/by-uuid/6ee9d430-1b1b-4e39-bced-606145570a78"; | ||||||
|  |       fsType = "btrfs"; | ||||||
|  |       options = [ "subvol=home" ]; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |   fileSystems."/boot" = | ||||||
|  |     { device = "/dev/disk/by-uuid/AD0C-92EF"; | ||||||
|  |       fsType = "vfat"; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |   swapDevices = | ||||||
|  |     [ { device = "/dev/disk/by-uuid/5486bd9f-6826-4ac7-b09b-8768a35c331f"; } | ||||||
|  |     ]; | ||||||
|  | 
 | ||||||
|  |   powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; | ||||||
|  | } | ||||||
		Loading…
	
		Reference in a new issue