From d8cd9df7d37b6050301a11a141ab75da99f541e7 Mon Sep 17 00:00:00 2001 From: Daniel Lundin Date: Tue, 3 Sep 2024 17:13:48 +0200 Subject: [PATCH] Add pearl host --- .gitignore | 1 + flake.lock | 105 +++-------------------- flake.nix | 5 +- home/dln/pearl.nix | 9 ++ hosts/pearl/default.nix | 111 +++++++++++++++++++++++++ hosts/pearl/hardware-configuration.nix | 38 +++++++++ 6 files changed, 173 insertions(+), 96 deletions(-) create mode 100644 .gitignore create mode 100644 home/dln/pearl.nix create mode 100644 hosts/pearl/default.nix create mode 100644 hosts/pearl/hardware-configuration.nix diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c4a847d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/result diff --git a/flake.lock b/flake.lock index 9733c55..2021fa5 100644 --- a/flake.lock +++ b/flake.lock @@ -1,41 +1,6 @@ { "nodes": { - "colmena": { - "inputs": { - "flake-compat": "flake-compat", - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs", - "stable": "stable" - }, - "locked": { - "lastModified": 1711386353, - "narHash": "sha256-gWEpb8Hybnoqb4O4tmpohGZk6+aerAbJpywKcFIiMlg=", - "path": "/nix/store/in94zdj4ls6p21r3q4zzvmbd61g9ap3b-source", - "rev": "cd65ef7a25cdc75052fbd04b120aeb066c3881db", - "type": "path" - }, - "original": { - "id": "colmena", - "type": "indirect" - } - }, "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1650374568, - "narHash": "sha256-Z+s0J8/r907g149rllvwhb4pKi8Wam5ij0st8PwAh+E=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "b4a34015c698c7793d592d66adbab377907a2be8", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_2": { "flake": false, "locked": { "lastModified": 1696426674, @@ -52,21 +17,6 @@ } }, "flake-utils": { - "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_2": { "inputs": { "systems": "systems" }, @@ -84,7 +34,7 @@ "type": "github" } }, - "flake-utils_3": { + "flake-utils_2": { "inputs": { "systems": "systems_2" }, @@ -102,7 +52,7 @@ "type": "github" } }, - "flake-utils_4": { + "flake-utils_3": { "inputs": { "systems": "systems_3" }, @@ -132,11 +82,11 @@ "zls": "zls" }, "locked": { - "lastModified": 1725298527, - "narHash": "sha256-WAttmsNzqkw4tm0Po/ZzeFtp83BvJAnYIbGyBIdGnMU=", + "lastModified": 1725337181, + "narHash": "sha256-qahlxe7TBQBdpCVahSauLPx/Wp1+HDpFClArt2HNQaI=", "ref": "refs/heads/main", - "rev": "2f32efbc82c938c3502ce20d2479ea867cc3ed0a", - "revCount": 7161, + "rev": "d885c814234060679dcd5bd0d9259be39b938be9", + "revCount": 7176, "type": "git", "url": "ssh://git@github.com/ghostty-org/ghostty" }, @@ -215,22 +165,6 @@ } }, "nixpkgs": { - "locked": { - "lastModified": 1696019113, - "narHash": "sha256-X3+DKYWJm93DRSdC5M6K5hLqzSya9BjibtBsuARoPco=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "f5892ddac112a1e9b3612c39af1b72987ee5783a", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { "locked": { "lastModified": 1725103162, "narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=", @@ -248,27 +182,10 @@ }, "root": { "inputs": { - "colmena": "colmena", "ghostty": "ghostty", "ghostty-hm": "ghostty-hm", "home-manager": "home-manager", - "nixpkgs": "nixpkgs_2" - } - }, - "stable": { - "locked": { - "lastModified": 1696039360, - "narHash": "sha256-g7nIUV4uq1TOVeVIDEZLb005suTWCUjSY0zYOlSBsyE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "32dcb45f66c0487e92db8303a798ebc548cadedc", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-23.05", - "repo": "nixpkgs", - "type": "github" + "nixpkgs": "nixpkgs" } }, "systems": { @@ -321,7 +238,7 @@ "flake-compat": [ "ghostty" ], - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils", "nixpkgs": [ "ghostty", "nixpkgs-stable" @@ -343,8 +260,8 @@ }, "zig-overlay": { "inputs": { - "flake-compat": "flake-compat_2", - "flake-utils": "flake-utils_4", + "flake-compat": "flake-compat", + "flake-utils": "flake-utils_3", "nixpkgs": [ "ghostty", "zls", @@ -367,7 +284,7 @@ }, "zls": { "inputs": { - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_2", "gitignore": "gitignore", "langref": "langref", "nixpkgs": [ diff --git a/flake.nix b/flake.nix index adc2cd2..07a7f01 100644 --- a/flake.nix +++ b/flake.nix @@ -21,7 +21,6 @@ { self, nixpkgs, - colmena, ghostty, ghostty-hm, home-manager, @@ -82,19 +81,21 @@ devShells = forEachSystem' ( { system, pkgs, ... }: { - default = pkgs.mkShell { packages = [ pkgs.colmena ]; }; + default = pkgs.mkShell { packages = [ ]; }; } ); homeConfigurations = { "dln@dinky" = mkHome [ ./home/dln/dinky.nix ]; "dln@nemo" = mkHome [ ./home/dln/nemo.nix ]; + "dln@pearl" = mkHome [ ./home/dln/pearl.nix ]; "lsjostro@nemo" = mkHome [ ./home/lsjostro/nemo.nix ]; }; nixosConfigurations = { dinky = mkHost [ ./hosts/dinky ]; nemo = mkHost [ ./hosts/nemo ]; + pearl = mkHost [ ./hosts/pearl ]; }; }; } diff --git a/home/dln/pearl.nix b/home/dln/pearl.nix new file mode 100644 index 0000000..18a1715 --- /dev/null +++ b/home/dln/pearl.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: +{ + imports = [ + ./home.nix + ]; + + home.packages = with pkgs; [ + ]; +} diff --git a/hosts/pearl/default.nix b/hosts/pearl/default.nix new file mode 100644 index 0000000..226044c --- /dev/null +++ b/hosts/pearl/default.nix @@ -0,0 +1,111 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + modulesPath, + ... +}: +{ + imports = [ ./hardware-configuration.nix ]; + + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + + hardware.graphics = { + enable = true; + extraPackages = with pkgs; [ + vpl-gpu-rt + intel-media-driver + vaapiVdpau + libvdpau-va-gl + ]; + }; + + hardware.enableAllFirmware = true; + + #environment.systemPackages = with pkgs; [ + #]; + + services.printing.enable = true; + services.printing.drivers = [ pkgs.brlaser ]; + + programs.adb.enable = true; + + networking = { + hostName = "pearl"; + domain = "aarn.patagia.dev"; + search = [ + "patagia.dev" + "aarn.patagia.dev" + ]; + useDHCP = lib.mkDefault true; + }; + + networking.networkmanager.enable = true; + networking.networkmanager.wifi.backend = "iwd"; + + time.timeZone = "Europe/Stockholm"; + + users.users.dln = { + isNormalUser = true; + description = "Daniel Lundin"; + extraGroups = [ + "lp" + "wheel" + ]; + openssh.authorizedKeys.keys = [ + "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAILwakA+EeuR23vRhjvjMkzK+FtWIhpnbs7z1pfnBehCUAAAABHNzaDo= dln@dinky" + "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIJNOBFoU7Cdsgi4KpYRcv7EhR/8kD4DYjEZnwk6urRx7AAAABHNzaDo= dln@nemo" + ]; + }; + + patagia = { + desktop.enable = true; + laptop.enable = true; + plymouth.enable = true; + podman.enable = false; + }; + + systemd.services."getty@tty1".enable = false; + systemd.services."autovt@tty1".enable = false; + + # 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; + + # Configure keymap in X11 + services.xserver.xkb = { + layout = "se"; + variant = "us"; + }; + + # Configure console keymap + console.keyMap = "sv-latin1"; + + # Enable sound with pipewire. + hardware.pulseaudio.enable = false; + security.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; + + # use the example session manager (no others are packaged yet so this is enabled by default, + # no need to redefine it in your config for now) + #media-session.enable = true; + }; + + nixpkgs.config.allowUnfree = true; + + services.openssh.enable = true; + + system.stateVersion = "24.05"; # Did you read the comment? +} diff --git a/hosts/pearl/hardware-configuration.nix b/hosts/pearl/hardware-configuration.nix new file mode 100644 index 0000000..f1105d5 --- /dev/null +++ b/hosts/pearl/hardware-configuration.nix @@ -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" "thunderbolt" "nvme" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/5ab8f3b9-4f74-4bc3-ac8e-3392a6120240"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/4C5D-8244"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + 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..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +}