summary refs log tree commit diff stats
path: root/hosts
diff options
context:
space:
mode:
authorsils <sils@sils.li>2023-03-18 10:12:58 +0100
committersils <sils@sils.li>2023-03-18 10:18:37 +0100
commit495c661f5081c023c242e96cf99259181408e99a (patch)
tree1a1c105e4046de38ef4f812345eee33f3eb3f6e0 /hosts
parentPackages: Add zip-utils (diff)
downloadnix-config-495c661f5081c023c242e96cf99259181408e99a.tar.gz
nix-config-495c661f5081c023c242e96cf99259181408e99a.zip
Feat: Restructure and add nameservers.
Diffstat (limited to 'hosts')
-rw-r--r--hosts/thinklappi/basesystem.nix85
-rw-r--r--hosts/thinklappi/default.nix3
-rw-r--r--hosts/thinklappi/thinklappi.nix70
3 files changed, 158 insertions, 0 deletions
diff --git a/hosts/thinklappi/basesystem.nix b/hosts/thinklappi/basesystem.nix
new file mode 100644
index 0000000..e5bc5ba
--- /dev/null
+++ b/hosts/thinklappi/basesystem.nix
@@ -0,0 +1,85 @@
+{
+  config,
+  lib,
+  pkgs,
+  modulesPath,
+  ...
+}: {
+  imports = [
+    (modulesPath + "/installer/scan/not-detected.nix")
+  ];
+
+  boot = {
+    initrd = {
+      availableKernelModules = ["xhci_pci" "nvme" "rtsx_pci_sdmmc"];
+      kernelModules = [];
+      luks.devices."cryptroot".device = "/dev/disk/by-uuid/6700d662-29a9-4ea5-8ca6-85d42550b3ab";
+    };
+    kernelModules = ["kvm-intel"];
+    extraModulePackages = [];
+    kernelPackages = pkgs.linuxPackages_latest;
+    loader = {
+      systemd-boot = {
+        enable = true;
+        configurationLimit = 3;
+      };
+      efi.canTouchEfiVariables = true;
+    };
+  };
+
+  fileSystems = {
+    "/" = {
+      device = "tmpfs";
+      fsType = "tmpfs";
+      options = ["defaults" "size=2G" "mode=755"];
+    };
+    "/nix" = {
+      device = "/dev/disk/by-label/nixos-root";
+      fsType = "btrfs";
+      options = ["subvol=nix" "compress-force=zstd"];
+    };
+    "/etc/NetworkManager" = {
+      device = "/dev/disk/by-label/nixos-root";
+      fsType = "btrfs";
+      options = ["subvol=networkmanagerconfig" "compress-force=zstd"];
+    };
+    "/etc/nixos" = {
+      device = "/dev/disk/by-label/nixos-root";
+      fsType = "btrfs";
+      options = ["subvol=nixconfig" "compress-force=zstd"];
+    };
+    "/srv" = {
+      device = "/dev/disk/by-label/nixos-root";
+      fsType = "btrfs";
+      options = ["subvol=srv" "compress-force=zstd"];
+    };
+    "/home" = {
+      device = "/dev/disk/by-label/nixos-root";
+      fsType = "btrfs";
+      options = ["subvol=home" "compress-force=zstd"];
+    };
+    "/srv/snapshots" = {
+      device = "/dev/disk/by-label/nixos-root";
+      fsType = "btrfs";
+      options = ["subvol=snapshots" "compress-force=zstd"];
+    };
+    "/boot" = {
+      device = "/dev/disk/by-uuid/4064-2D6C";
+      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.enp0s31f6.useDHCP = lib.mkDefault true;
+  # networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
+
+  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+  powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
+  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
+}
diff --git a/hosts/thinklappi/default.nix b/hosts/thinklappi/default.nix
new file mode 100644
index 0000000..5019f10
--- /dev/null
+++ b/hosts/thinklappi/default.nix
@@ -0,0 +1,3 @@
+{...}: {
+  thinklappi = import ./thinklappi.nix;
+}
diff --git a/hosts/thinklappi/thinklappi.nix b/hosts/thinklappi/thinklappi.nix
new file mode 100644
index 0000000..5a3f0f6
--- /dev/null
+++ b/hosts/thinklappi/thinklappi.nix
@@ -0,0 +1,70 @@
+{
+  config,
+  pkgs,
+  ...
+}: let
+  compiledLayout = pkgs.runCommand "keyboard-layout" {} ''
+    ${pkgs.xorg.xkbcomp}/bin/xkbcomp ${../files/neoqwertz.xkb} $out
+  '';
+in {
+  imports = [
+    ./basesystem.nix
+    ../../env.nix
+    ../../nix.nix
+    ../../packages.nix
+    ../../users.nix
+    ../../zsh.nix
+    ../../flatpak.nix # Mainly for minecraft
+
+    # Desktop Environment to use
+    ../../desktop/gnome.nix
+  ];
+
+  services = {
+    printing.enable = true;
+    xserver = {
+      layout = "de";
+      #xkbVariant = ",neo";
+      xkbOptions = "grp:win_space_toggle";
+      displayManager.sessionCommands = "${pkgs.xorg.xkbcomp}/bin/xkbcomp ${compiledLayout} $DISPLAY";
+    };
+    pipewire = {
+      enable = true;
+      alsa.enable = true;
+      alsa.support32Bit = true;
+      pulse.enable = true;
+      jack.enable = true;
+    };
+  };
+
+  hardware = {
+    bluetooth.enable = true;
+    pulseaudio.enable = false;
+  };
+  security.rtkit.enable = true;
+
+  environment.systemPackages = [pkgs.xorg.xkbcomp];
+
+  i18n.defaultLocale = "en_US.UTF-8";
+
+  networking = {
+    hostName = "thinklappi";
+    nameservers = ["2620:fe::fe" "2620:fe::9" "9.9.9.9" "149.112.112.112"];
+    networkmanager = {
+      enable = true;
+      dns = "none";
+    };
+  };
+
+  time.timeZone = "Europe/Berlin";
+
+  console = {
+    font = "Lat2-Terminus16";
+    keyMap = "de";
+    #useXkbConfig = true; # use xkbOptions in tty.
+  };
+
+  programs.ssh.startAgent = true;
+
+  system.stateVersion = "23.05";
+}