From 68d57ea7cbe643778922ed349fc3cebea03ba6aa Mon Sep 17 00:00:00 2001 From: Patrick Stevens <3138005+Smaug123@users.noreply.github.com> Date: Sat, 30 Mar 2024 18:07:17 +0000 Subject: [PATCH] Add capybara config (#45) --- flake.lock | 56 +++++++++++----------- flake.nix | 25 +++++++++- hardware/capybara.nix | 34 ++++++++++++++ home-manager/capybara-config.nix | 57 +++++++++++++++++++++++ home-manager/earthworm-config.nix | 6 +-- home-manager/{earthworm.nix => linux.nix} | 7 +-- 6 files changed, 145 insertions(+), 40 deletions(-) create mode 100644 hardware/capybara.nix create mode 100644 home-manager/capybara-config.nix rename home-manager/{earthworm.nix => linux.nix} (91%) diff --git a/flake.lock b/flake.lock index 3db20e4..0e11556 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1710209440, - "narHash": "sha256-1JwFo3u2aVrvpz12OotjCK51EQ0hEDI7xSG7CEvTSk8=", + "lastModified": 1711325419, + "narHash": "sha256-dKZUWMB4py9rhefu1lsrCrwksK4WX/dtW8Ma807KyPA=", "owner": "tpwrules", "repo": "nixos-apple-silicon", - "rev": "bdc68b494d6a26c9457f4841ab1a6109b12a33e6", + "rev": "93e85575f63b32b9996676513d95288fc1c87ca9", "type": "github" }, "original": { @@ -27,11 +27,11 @@ ] }, "locked": { - "lastModified": 1710717205, - "narHash": "sha256-Wf3gHh5uV6W1TV/A8X8QJf99a5ypDSugY4sNtdJDe0A=", + "lastModified": 1711763326, + "narHash": "sha256-sXcesZWKXFlEQ8oyGHnfk4xc9f2Ip0X/+YZOq3sKviI=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "bcc8afd06e237df060c85bad6af7128e05fd61a3", + "rev": "36524adc31566655f2f4d55ad6b875fb5c1a4083", "type": "github" }, "original": { @@ -50,11 +50,11 @@ "nixpkgs-stable": "nixpkgs-stable" }, "locked": { - "lastModified": 1711271005, - "narHash": "sha256-JrhnnutZvHowEJFIrA/rQAFgGAc83WOx+BVy97teqKM=", + "lastModified": 1711789603, + "narHash": "sha256-5c8prZYLBFgMDoBrBTMuAu6F33HHF9kfK+i4d39gUDA=", "owner": "nix-community", "repo": "emacs-overlay", - "rev": "d6bbd32eb3e0f167f312e1031c1beee452dc9174", + "rev": "f8ad90d467e2a48cf91aa0b3b75ac7929dc07425", "type": "github" }, "original": { @@ -219,11 +219,11 @@ ] }, "locked": { - "lastModified": 1711133180, - "narHash": "sha256-WJOahf+6115+GMl3wUfURu8fszuNeJLv9qAWFQl3Vmo=", + "lastModified": 1711625603, + "narHash": "sha256-W+9dfqA9bqUIBV5u7jaIARAzMe3kTq/Hp2SpSVXKRQw=", "owner": "nix-community", "repo": "home-manager", - "rev": "1c2c5e4cabba4c43504ef0f8cc3f3dfa284e2dbb", + "rev": "c0ef0dab55611c676ad7539bf4e41b3ec6fa87d2", "type": "github" }, "original": { @@ -254,11 +254,11 @@ }, "locked": { "dir": "contrib", - "lastModified": 1711323947, - "narHash": "sha256-Vc478rxwJkMuOcgBXm+brraWk9lbFqrGEdXVuST2l/A=", + "lastModified": 1711756269, + "narHash": "sha256-3e0j/bvXCI1eOxt6x/ENGkhlDRD3nxLhDU0Q8JViiw0=", "owner": "neovim", "repo": "neovim", - "rev": "02d00cf3eed6681c6dde40585551c8243d7c003f", + "rev": "2424c3e6967ef953222cf48564629ffe5812d415", "type": "github" }, "original": { @@ -279,11 +279,11 @@ ] }, "locked": { - "lastModified": 1711325009, - "narHash": "sha256-c5OJdyuXYzTP+k+PN73X+0pvgXR1yYMYok+72x4SLVg=", + "lastModified": 1711757045, + "narHash": "sha256-+85QI5/ABsk3ObUS2/uPkShQQuHbaq4bgzVBE5zAY94=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "119bbc295f56b531cb87502f5d2fff13dcc35a35", + "rev": "8c9dcf6816db1b976046e491dfb61eef8c15a202", "type": "github" }, "original": { @@ -294,27 +294,27 @@ }, "nixpkgs": { "locked": { - "lastModified": 1709961763, - "narHash": "sha256-6H95HGJHhEZtyYA3rIQpvamMKAGoa8Yh2rFV29QnuGw=", + "lastModified": 1711163522, + "narHash": "sha256-YN/Ciidm+A0fmJPWlHBGvVkcarYWSC+s3NTPk/P+q3c=", "owner": "nixos", "repo": "nixpkgs", - "rev": "3030f185ba6a4bf4f18b87f345f104e6a6961f34", + "rev": "44d0940ea560dee511026a53f0e2e2cde489b4d4", "type": "github" }, "original": { "owner": "nixos", "repo": "nixpkgs", - "rev": "3030f185ba6a4bf4f18b87f345f104e6a6961f34", + "rev": "44d0940ea560dee511026a53f0e2e2cde489b4d4", "type": "github" } }, "nixpkgs-stable": { "locked": { - "lastModified": 1711124224, - "narHash": "sha256-l0zlN/3CiodvWDtfBOVxeTwYSRz93muVbXWSpaMjXxM=", + "lastModified": 1711668574, + "narHash": "sha256-u1dfs0ASQIEr1icTVrsKwg2xToIpn7ZXxW3RHfHxshg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "56528ee42526794d413d6f244648aaee4a7b56c0", + "rev": "219951b495fc2eac67b1456824cc1ec1fd2ee659", "type": "github" }, "original": { @@ -326,11 +326,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1711231723, - "narHash": "sha256-dARJQ8AJOv6U+sdRePkbcVyVbXJTi1tReCrkkOeusiA=", + "lastModified": 1711715736, + "narHash": "sha256-9slQ609YqT9bT/MNX9+5k5jltL9zgpn36DpFB7TkttM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e1d501922fd7351da4200e1275dfcf5faaad1220", + "rev": "807c549feabce7eddbf259dbdcec9e0600a0660d", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 50357cf..a57e1e1 100644 --- a/flake.nix +++ b/flake.nix @@ -61,6 +61,29 @@ f [] attrList; in { nixosConfigurations = { + capybara = let + system = "x86_64-linux"; + in let + pkgs = import nixpkgs {inherit system config overlays;}; + in + nixpkgs.lib.nixosSystem { + inherit system; + modules = let + args = { + nixpkgs = pkgs; + username = "patrick"; + dotnet = pkgs.dotnet-sdk_8; + }; + in [ + ./home-manager/capybara-config.nix + home-manager.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.patrick = recursiveMerge [(import ./home-manager/linux.nix args) (import ./home-manager/home.nix args)]; + } + ]; + }; earthworm = let system = "aarch64-linux"; in let @@ -81,7 +104,7 @@ { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; - home-manager.users.patrick = recursiveMerge [(import ./home-manager/earthworm.nix args) (import ./home-manager/home.nix args)]; + home-manager.users.patrick = recursiveMerge [(import ./home-manager/linux.nix args) (import ./home-manager/home.nix args)]; } ]; }; diff --git a/hardware/capybara.nix b/hardware/capybara.nix new file mode 100644 index 0000000..77491b5 --- /dev/null +++ b/hardware/capybara.nix @@ -0,0 +1,34 @@ +# 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" "nvme" "usb_storage" "usbhid" "sd_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; + + fileSystems."/" = { + device = "/dev/disk/by-uuid/63c5394d-55ce-48a9-8d7c-2b68f3b5f834"; + fsType = "ext4"; + }; + + fileSystems."/boot" = { + device = "/dev/nvme0n1p2"; + fsType = "vfat"; + }; + + swapDevices = []; + + powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/home-manager/capybara-config.nix b/home-manager/capybara-config.nix new file mode 100644 index 0000000..e38f93c --- /dev/null +++ b/home-manager/capybara-config.nix @@ -0,0 +1,57 @@ +{ + pkgs, + config, + ... +}: { + imports = [ + ../hardware/capybara.nix + ]; + + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; + boot.loader.grub.useOSProber = true; + + boot.extraModulePackages = [config.boot.kernelPackages.rtl8821au]; + + networking = { + hostName = "capybara"; + networkmanager.enable = true; + }; + + time.timeZone = "Europe/London"; + + programs.sway.enable = true; + programs.zsh.enable = true; + + # TODO: work out secrets management for password, then set mutableUsers to false + users.mutableUsers = true; + users.users.patrick = { + isNormalUser = true; + extraGroups = ["wheel" "networkManager"]; + }; + + environment.systemPackages = [ + pkgs.vim + pkgs.wget + pkgs.tmux + pkgs.home-manager + pkgs.firefox + ]; + + environment.loginShellInit = '' + [[ "$(tty)" == /dev/tty1 ]] && sway + ''; + + services.openssh.enable = true; + + system.stateVersion = "23.11"; + nix.settings.experimental-features = ["nix-command" "flakes" "ca-derivations"]; + + nix.gc.automatic = true; + nix.extraOptions = '' + auto-optimise-store = true + max-jobs = auto + keep-outputs = true + keep-derivations = true + ''; +} diff --git a/home-manager/earthworm-config.nix b/home-manager/earthworm-config.nix index 7bda66d..bab58ad 100644 --- a/home-manager/earthworm-config.nix +++ b/home-manager/earthworm-config.nix @@ -1,8 +1,4 @@ -{ - config, - pkgs, - ... -}: { +{pkgs, ...}: { imports = [ ../hardware/earthworm.nix ]; diff --git a/home-manager/earthworm.nix b/home-manager/linux.nix similarity index 91% rename from home-manager/earthworm.nix rename to home-manager/linux.nix index 058f941..7241334 100644 --- a/home-manager/earthworm.nix +++ b/home-manager/linux.nix @@ -1,9 +1,4 @@ -{ - nixpkgs, - username, - dotnet, - ... -}: { +{nixpkgs, ...}: { home.packages = [nixpkgs.firefox-wayland]; nixpkgs.config.firefox.speechSynthesisSupport = true;