From a9532469718f53912a66073dfae12a5bcf8e7ffa Mon Sep 17 00:00:00 2001 From: Grigory Shipunov Date: Wed, 25 May 2022 19:27:42 +0200 Subject: init --- hosts/microwave/configuration.nix | 108 +++++++++++++++++++++++++++++ hosts/microwave/hardware-configuration.nix | 56 +++++++++++++++ 2 files changed, 164 insertions(+) create mode 100644 hosts/microwave/configuration.nix create mode 100644 hosts/microwave/hardware-configuration.nix (limited to 'hosts') diff --git a/hosts/microwave/configuration.nix b/hosts/microwave/configuration.nix new file mode 100644 index 0000000..7020447 --- /dev/null +++ b/hosts/microwave/configuration.nix @@ -0,0 +1,108 @@ +# 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 + ]; + + # SWAP + zramSwap = { + enable = true; + algorithm = "zstd"; + }; + + environment.systemPackages = with pkgs; [ + tdesktop + signal-desktop + cubicsdr + kicad + gimp + inkscape + ]; + networking.firewall.enable = true; + services.xserver.videoDrivers = [ "displaylink" "modesetting" ]; + + networking = { + hostName = "microwave"; # Define your hostname. + networkmanager.enable = true; + wireguard.enable = true; + + }; + + + nixpkgs.config.allowUnfree = true; + + services.fstrim.enable = true; + + boot = { + supportedFilesystems = ["btrfs"]; + + # use systemd boot by default + loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; + tmpOnTmpfs = true; + plymouth.enable = false; + }; + + # update the microcode + hardware.cpu.intel.updateMicrocode = true; + hardware.enableAllFirmware = true; + + + # Copy the NixOS configuration file and link it from the resulting system + # (/run/current-system/configuration.nix). This is useful in case you + # accidentally delete configuration.nix. + # system.copySystemConfiguration = true; + + + # Enable touchpad support. + services.xserver.libinput = { + enable = true; + touchpad = { + disableWhileTyping = true; + naturalScrolling = true; + scrollMethod = "twofinger"; + tapping = true; + accelProfile = "adaptive"; + # clickMethod = "clickfinger"; + }; + }; + + # Shell config (bash) + programs.bash = { + enableCompletion = true; + }; + + security.sudo = { + enable = true; + wheelNeedsPassword = true; + }; + + # Users + users.users.grue = { + createHome = true; + extraGroups = [ "wheel" "networkmanager" "wireshark" "video" + "libvirtd" "plugdev" "dialout" "bluetooth" ]; + group = "users"; + home = "/home/grue"; + isNormalUser = true; + uid = 1000; + }; + + # 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 = "22.05"; # Did you read the comment? + +} + diff --git a/hosts/microwave/hardware-configuration.nix b/hosts/microwave/hardware-configuration.nix new file mode 100644 index 0000000..13aefaa --- /dev/null +++ b/hosts/microwave/hardware-configuration.nix @@ -0,0 +1,56 @@ +# 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" "thunderbolt" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/f9edd500-f47b-42e5-9b88-7b6d86f76caa"; + fsType = "btrfs"; + options = [ "subvol=root" "noatime" "compress=zstd" ]; + }; + + boot.initrd.luks.devices."nixos-crypt".device = "/dev/disk/by-uuid/dbee4082-85ae-40f0-9c80-034f3574688f"; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/4B02-CE16"; + fsType = "vfat"; + }; + + fileSystems."/home" = + { device = "/dev/disk/by-uuid/f9edd500-f47b-42e5-9b88-7b6d86f76caa"; + fsType = "btrfs"; + options = [ "subvol=home" "noatime" "compress=zstd" ]; + }; + + fileSystems."/nix" = + { device = "/dev/disk/by-uuid/f9edd500-f47b-42e5-9b88-7b6d86f76caa"; + fsType = "btrfs"; + options = [ "subvol=nix" "noatime" "compress=zstd" ]; + }; + + fileSystems."/tmp" = + { device = "/dev/disk/by-uuid/f9edd500-f47b-42e5-9b88-7b6d86f76caa"; + fsType = "btrfs"; + options = [ "subvol=tmp" "noatime" "compress=zstd" ]; + }; + + # 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 = lib.mkDefault false; + networking.interfaces.enp53s0.useDHCP = lib.mkDefault true; + networking.interfaces.wlp54s0.useDHCP = lib.mkDefault true; + + powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} -- cgit v1.3.1