From 1b75ffba08ff4eddc80486101b6ef6cce013ac0c Mon Sep 17 00:00:00 2001 From: Carsten Kragelund Date: Thu, 6 Jul 2023 23:12:38 +0200 Subject: [PATCH] Add boulder and stuff --- flake.lock | 135 ++++++++++++++++++++++------ flake.nix | 30 ++++--- hosts/boulder/default.nix | 26 ++++++ hosts/boulder/hardware.nix | 35 ++++++++ hosts/gitea/default.nix | 2 +- hosts/gitea/services/ryot.nix | 0 users/carsten/conf/doom/config.el | 9 ++ users/carsten/conf/doom/packages.el | 7 ++ users/carsten/conf/xdg.nix | 4 + users/carsten/pkgs/default.nix | 16 ++-- 10 files changed, 218 insertions(+), 46 deletions(-) create mode 100644 hosts/boulder/default.nix create mode 100644 hosts/boulder/hardware.nix create mode 100644 hosts/gitea/services/ryot.nix diff --git a/flake.lock b/flake.lock index ccf5895..3e63e09 100644 --- a/flake.lock +++ b/flake.lock @@ -49,6 +49,51 @@ "type": "github" } }, + "crane_3": { + "inputs": { + "flake-compat": "flake-compat_4", + "flake-utils": "flake-utils_5", + "nixpkgs": [ + "sanctureplicum-nur", + "nixpkgs" + ], + "rust-overlay": "rust-overlay_3" + }, + "locked": { + "lastModified": 1676846788, + "narHash": "sha256-XLsHLgXyMdliMeAXuzdGP+TXBaV44kG1RPTUHNOs6Jk=", + "owner": "ipetkov", + "repo": "crane", + "rev": "953b70da2813fb882c39890f2514e7db76fc8843", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "ref": "v0.11.3", + "repo": "crane", + "type": "github" + } + }, + "darwin": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1688307440, + "narHash": "sha256-7PTjbN+/+b799YN7Tk2SS5Vh8A0L3gBo8hmB7Y0VXug=", + "owner": "lnl7", + "repo": "nix-darwin", + "rev": "b06bab83bdf285ea0ae3c8e145a081eb95959047", + "type": "github" + }, + "original": { + "owner": "lnl7", + "repo": "nix-darwin", + "type": "github" + } + }, "emacs-overlay": { "inputs": { "flake-utils": "flake-utils_2", @@ -119,6 +164,22 @@ "type": "github" } }, + "flake-compat_4": { + "flake": false, + "locked": { + "lastModified": 1673956053, + "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-utils": { "locked": { "lastModified": 1676283394, @@ -188,6 +249,21 @@ "type": "github" } }, + "flake-utils_5": { + "locked": { + "lastModified": 1676283394, + "narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "3db36a8b464d0c4532ba1c7dda728f4576d6d073", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -231,26 +307,6 @@ "type": "github" } }, - "nix-darwin": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1686307493, - "narHash": "sha256-R4VEFnDn7nRmNxAu1LwNbjns5DPM8IBsvnrWmZ8ymPs=", - "owner": "lnl7", - "repo": "nix-darwin", - "rev": "7c16d31383a90e0e72ace0c35d2d66a18f90fb4f", - "type": "github" - }, - "original": { - "owner": "lnl7", - "repo": "nix-darwin", - "type": "github" - } - }, "nixos-wsl": { "inputs": { "flake-compat": "flake-compat_3", @@ -337,10 +393,10 @@ "root": { "inputs": { "crane": "crane", + "darwin": "darwin", "emacs-overlay": "emacs-overlay", "home-manager": "home-manager", "nekowinston-nur": "nekowinston-nur", - "nix-darwin": "nix-darwin", "nixos-wsl": "nixos-wsl", "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable", @@ -401,24 +457,49 @@ "type": "github" } }, + "rust-overlay_3": { + "inputs": { + "flake-utils": [ + "sanctureplicum-nur", + "crane", + "flake-utils" + ], + "nixpkgs": [ + "sanctureplicum-nur", + "crane", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1676437770, + "narHash": "sha256-mhJye91Bn0jJIE7NnEywGty/U5qdELfsT8S+FBjTdG4=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "a619538647bd03e3ee1d7b947f7c11ff289b376e", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "sanctureplicum-nur": { "inputs": { + "crane": "crane_3", "nixpkgs": [ "nixpkgs-unstable" ] }, "locked": { "lastModified": 1686890354, - "narHash": "sha256-a8Yxu4ApSk6fhfRoHvnWhUJuOG/A7BVASczKtdXMzf0=", - "ref": "refs/heads/main", - "rev": "72e258ac341e9e91314a2738b7577273354a386b", - "revCount": 24, + "narHash": "sha256-ImaA4sfwjZyqY9yA9IsvbZ0Oh/6Sxh1dft8tWaXdJrM=", "type": "git", - "url": "https://gitea.pid1.sh/sanctureplicum/nur" + "url": "file:///Users/carsten/source/nur" }, "original": { "type": "git", - "url": "https://gitea.pid1.sh/sanctureplicum/nur" + "url": "file:///Users/carsten/source/nur" } }, "sops-nix": { diff --git a/flake.nix b/flake.nix index 827b81d..1c70ab0 100644 --- a/flake.nix +++ b/flake.nix @@ -4,7 +4,8 @@ nixpkgs-unstable.url = "nixpkgs/nixpkgs-unstable"; nur.url = "github:nix-community/nur"; sanctureplicum-nur = { - url = "git+https://gitea.pid1.sh/sanctureplicum/nur"; + #url = "git+https://gitea.pid1.sh/sanctureplicum/nur"; + url = "git+file:///Users/carsten/source/nur"; inputs.nixpkgs.follows = "nixpkgs-unstable"; }; nekowinston-nur = { @@ -26,7 +27,7 @@ url = "github:nix-community/nixos-wsl"; inputs.nixpkgs.follows = "nixpkgs"; }; - nix-darwin = { + darwin = { url = "github:lnl7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -49,7 +50,7 @@ nekowinston-nur, emacs-overlay, nixos-wsl, - nix-darwin, + darwin, sops-nix, crane, home-manager, @@ -111,7 +112,7 @@ isDarwin = builtins.match ".+?-linux" == null; builder = if isDarwin - then nix-darwin.lib.darwinSystem + then darwin.lib.darwinSystem else nixpkgs.lib.nixosSystem; hmModule = if isDarwin @@ -190,7 +191,7 @@ ] ++ hmConfig; }; - darwinConfigurations.hawk = nix-darwin.lib.darwinSystem { + darwinConfigurations.hawk = darwin.lib.darwinSystem { system = "aarch64-darwin"; specialArgs = { inherit inputs; @@ -199,15 +200,10 @@ [ overlayModule home-manager.darwinModules.home-manager - { - home-manager.sharedModules = [ - sops-nix.homeManagerModule - ]; - } ./hosts/hawk ./hosts/common/darwin.nix ] - ++ hmConfig; + ++ (hmConfig true); }; nixosConfigurations.buzzard = mkSystem { @@ -234,7 +230,6 @@ nixosConfigurations.gitea = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { - inherit inputs; craneLib = crane.lib."x86_64-linux"; }; modules = [ @@ -244,5 +239,16 @@ ./hosts/common/linux.nix ]; }; + nixosConfigurations.boulder = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + specialArgs = { + inherit inputs; + }; + modules = [ + overlayModule + ./hosts/boulder + ./hosts/common/linux.nix + ]; + }; }; } diff --git a/hosts/boulder/default.nix b/hosts/boulder/default.nix new file mode 100644 index 0000000..9fa5b39 --- /dev/null +++ b/hosts/boulder/default.nix @@ -0,0 +1,26 @@ +{ config, lib, pkgs, ... }: +{ + imports = [ + ./hardware.nix + (import ../common/network.nix { + hostName = "boulder"; + macAddresses = ["00:50:50:00:00:02"]; + ipv4Addresses = ["192.168.1.8"]; + }) + ../common + ]; + + + nix.settings.build-cores = 4; + + graphical = false; + vm-guest = 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 = "23.05"; # Did you read the comment? +} diff --git a/hosts/boulder/hardware.nix b/hosts/boulder/hardware.nix new file mode 100644 index 0000000..c01562d --- /dev/null +++ b/hosts/boulder/hardware.nix @@ -0,0 +1,35 @@ +# 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 = [ ]; + + boot.initrd.availableKernelModules = [ "ata_piix" "vmw_pvscsi" "sd_mod" "sr_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/e8b86c83-cc3e-45ce-89d4-35fb952836fd"; + fsType = "ext4"; + }; + + fileSystems."/boot/efi" = + { device = "/dev/disk/by-uuid/89BA-94B4"; + 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..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.ens192.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/hosts/gitea/default.nix b/hosts/gitea/default.nix index 3f68cf0..4eb86ce 100644 --- a/hosts/gitea/default.nix +++ b/hosts/gitea/default.nix @@ -39,7 +39,7 @@ # 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 + # 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). diff --git a/hosts/gitea/services/ryot.nix b/hosts/gitea/services/ryot.nix new file mode 100644 index 0000000..e69de29 diff --git a/users/carsten/conf/doom/config.el b/users/carsten/conf/doom/config.el index 7786e18..b0e645f 100644 --- a/users/carsten/conf/doom/config.el +++ b/users/carsten/conf/doom/config.el @@ -78,6 +78,15 @@ ;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how ;; they are implemented. +(use-package! fixmee + :after (button-lock nav-flash back-button smartrep string-utils tabulated-list) + :config + (setq fixmee-notice-regexp "\\(TODO+\\(?:\(\\w+\)\\)?:\\)")) + +(use-package! hl-todo + :config + (setq hl-todo-keyword-faces (assoc-delete-all "TODO" hl-todo-keyword-faces)) + (add-to-list 'hl-todo-keyword-faces '("TODO+" . (warning bold)))) (use-package! org :config diff --git a/users/carsten/conf/doom/packages.el b/users/carsten/conf/doom/packages.el index 7043458..ea9c1c2 100644 --- a/users/carsten/conf/doom/packages.el +++ b/users/carsten/conf/doom/packages.el @@ -49,5 +49,12 @@ ;; ...Or *all* packages (NOT RECOMMENDED; will likely break things) ;(unpin! t) (package! meson-mode) +(when (package! fixmee) + (package! button-lock) + (package! nav-flash) + (package! back-button) + (package! smartrep) + (package! string-utils) + (package! tabulated-list)) (package! org :pin "fe74a3ed2d8" :recipe (:host nil :repo "https://git.savannah.gnu.org/git/emacs/org-mode.git")) diff --git a/users/carsten/conf/xdg.nix b/users/carsten/conf/xdg.nix index 4fb9729..a0deaa2 100644 --- a/users/carsten/conf/xdg.nix +++ b/users/carsten/conf/xdg.nix @@ -28,8 +28,12 @@ }; }; + home.sessionPath = [ + "${config.home.sessionVariables.CARGO_HOME}/bin" + ]; home.sessionVariables = { CARGO_HOME = "${config.xdg.dataHome}/cargo"; + RUSTUP_HOME = "${config.xdg.dataHome}/rustup"; WGETRC = "${config.xdg.dataHome}/wget/wgetrc"; XCOMPOSECACHE = "${config.xdg.cacheHome}/X11/xcompose"; }; diff --git a/users/carsten/pkgs/default.nix b/users/carsten/pkgs/default.nix index 841e437..89bc741 100644 --- a/users/carsten/pkgs/default.nix +++ b/users/carsten/pkgs/default.nix @@ -35,11 +35,15 @@ wezterm # Rust - cargo - gcc - llvmPackages_latest.lld - llvmPackages_latest.llvm - rustc + # cargo + # gcc + # llvmPackages_latest.lld + # llvmPackages_latest.llvm + # rustc + clang + # Replace llvmPackages with llvmPackages_X, where X is the latest LLVM version (at the time of writing, 16) + #llvmPackages.bintools + rustup # JS nodejs @@ -49,7 +53,7 @@ mpc-cli # language-servers - rust-analyzer + # rust-analyzer ] ++ lib.lists.optionals (osConfig.graphical or true) [ recursive