From 762e95d30986d0a3a06f2ebfd75dc20aed12d6f2 Mon Sep 17 00:00:00 2001 From: Avery Date: Mon, 24 Feb 2025 21:07:36 +0100 Subject: [PATCH] Add experimental "mizuki" configuration --- README.md | 6 ++++++ common/nixos.nix | 2 -- flake.nix | 28 ++++++++++++++++++++++++++++ hosts/mizuki/development.nix | 30 ++++++++++++++++++++++++++++++ hosts/mizuki/nixos.nix | 22 ++++++++++++++++++++++ 5 files changed, 86 insertions(+), 2 deletions(-) create mode 100644 hosts/mizuki/development.nix create mode 100644 hosts/mizuki/nixos.nix diff --git a/README.md b/README.md index d46d224..cbecb51 100644 --- a/README.md +++ b/README.md @@ -61,3 +61,9 @@ Desktop with NixOS as a primary system and Windows 11 N as secondary. Has secure | Invidious | YouTube proxy | | | SearXNG | Metasearch engine | | | Radicale | CalDAV / CardDAV server | | + +### 🎀 Mizuki | WSL development setup + +An experimental configuration for software development inside Windows Subsystem for Linux. + +Inherits the Nixvim configuration from totsugeki diff --git a/common/nixos.nix b/common/nixos.nix index 26ab9f5..651508d 100644 --- a/common/nixos.nix +++ b/common/nixos.nix @@ -29,8 +29,6 @@ systemPackages = with pkgs; [ git htop neovim sops ]; }; - programs.zsh.enable = true; - security = { doas = { enable = true; diff --git a/flake.nix b/flake.nix index b2ca12c..eeb9610 100644 --- a/flake.nix +++ b/flake.nix @@ -28,6 +28,10 @@ url = "github:nix-community/autofirma-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; + nixos-wsl = { + url = "github:nix-community/NixOS-WSL/main"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; nixConfig = { @@ -39,6 +43,7 @@ outputs = { self, nixpkgs, ... }@inputs: { nixosConfigurations = { + # Desktop computer totsugeki = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ @@ -65,6 +70,7 @@ } ]; }; + # Home server greatyamada = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ @@ -74,6 +80,28 @@ inputs.sops-nix.nixosModules.sops ]; }; + # WSL development system + mizuki = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./hosts/mizuki/nixos.nix + inputs.nixos-wsl.nixosModules.default + inputs.home-manager.nixosModules.home-manager + { + home-manager = { + backupFileExtension = "bak"; + useUserPackages = true; + users.avery = { + imports = [ + inputs.nixvim.homeManagerModules.nixvim + ./hosts/totsugeki/home-manager/development/nixvim + ./hosts/mizuki/development.nix + ]; + }; + }; + } + ]; + }; }; }; } diff --git a/hosts/mizuki/development.nix b/hosts/mizuki/development.nix new file mode 100644 index 0000000..889b8a5 --- /dev/null +++ b/hosts/mizuki/development.nix @@ -0,0 +1,30 @@ +{ ... }: { + programs = { + git = { + enable = true; + extraConfig = { + init.defaultBranch = "main"; + merge.tool = "nvim -d"; + }; + userEmail = "aveeryy@protonmail.com"; + userName = "Avery"; + }; + lazygit = { + enable = true; + settings = { + gui.theme = { + activeBorderColor = [ "#89b4fa" "bold" ]; + inactiveBorderColor = [ "#a6adc8" ]; + optionsTextColor = [ "#89b4fa" ]; + selectedLineBgColor = [ "#313244" ]; + selectedRangeBgColor = [ "#313244" ]; + cherryPickedCommitBgColor = [ "#45475a" ]; + cherryPickedCommitFgColor = [ "#89b4fa" ]; + unstagedChangesColor = [ "#f38ba8" ]; + defaultFgColor = [ "#cdd6f4" ]; + searchingActiveBorderColor = [ "#f9e2af" ]; + }; + }; + }; + }; +} diff --git a/hosts/mizuki/nixos.nix b/hosts/mizuki/nixos.nix new file mode 100644 index 0000000..b599815 --- /dev/null +++ b/hosts/mizuki/nixos.nix @@ -0,0 +1,22 @@ +{ config, lib, pkgs }: { + + environment.shells = with pkgs; [ zsh ]; + + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + + security.sudo.enable = true; + + users = { + defaultUserShell = pkgs.zsh; + users.avery.extraGroups = [ "wheel" ]; + }; + + wsl = { + enable = true; + defaultUser = "avery"; + }; + + system.stateVersion = "24.11"; +}