From 559b376ac02e7dffcea368a95502fe462dda06d1 Mon Sep 17 00:00:00 2001 From: Christoph Hollizeck Date: Wed, 21 Aug 2024 16:53:36 +0200 Subject: [PATCH] initial wsl setup --- flake.lock | 90 +++++++++++++++++-- flake.nix | 9 ++ homes/x86_64-linux/cholli@wsl/default.nix | 20 +++++ .../nixos/submodules/basics-wsl/default.nix | 48 ++++++++++ result | 1 + systems/x86_64-linux/wsl/default.nix | 26 ++++++ 6 files changed, 185 insertions(+), 9 deletions(-) create mode 100644 homes/x86_64-linux/cholli@wsl/default.nix create mode 100644 modules/nixos/submodules/basics-wsl/default.nix create mode 120000 result create mode 100644 systems/x86_64-linux/wsl/default.nix diff --git a/flake.lock b/flake.lock index 90bc6b7..dbcd880 100644 --- a/flake.lock +++ b/flake.lock @@ -28,12 +28,28 @@ }, "original": { "owner": "edolstra", - "ref": "v1.0.1", "repo": "flake-compat", "type": "github" } }, "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "ref": "v1.0.1", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-compat_4": { "flake": false, "locked": { "lastModified": 1650374568, @@ -49,7 +65,7 @@ "type": "github" } }, - "flake-compat_4": { + "flake-compat_5": { "flake": false, "locked": { "lastModified": 1650374568, @@ -103,7 +119,7 @@ }, "flake-utils-plus": { "inputs": { - "flake-utils": "flake-utils_3" + "flake-utils": "flake-utils_4" }, "locked": { "lastModified": 1715533576, @@ -122,7 +138,7 @@ }, "flake-utils-plus_2": { "inputs": { - "flake-utils": "flake-utils_4" + "flake-utils": "flake-utils_5" }, "locked": { "lastModified": 1715533576, @@ -158,6 +174,24 @@ } }, "flake-utils_3": { + "inputs": { + "systems": "systems_3" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_4": { "locked": { "lastModified": 1644229661, "narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=", @@ -172,9 +206,9 @@ "type": "github" } }, - "flake-utils_4": { + "flake-utils_5": { "inputs": { - "systems": "systems_3" + "systems": "systems_4" }, "locked": { "lastModified": 1694529238, @@ -305,6 +339,28 @@ "type": "github" } }, + "nixos-wsl": { + "inputs": { + "flake-compat": "flake-compat_2", + "flake-utils": "flake-utils_3", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1724065442, + "narHash": "sha256-8ZUoyeO7Q70bLuijVYvToBSkApw9kfc5hMykTGxB64I=", + "owner": "nix-community", + "repo": "NixOS-WSL", + "rev": "0bec2bfb8a2d4dd16e5b012982ca95e57d50e6a2", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NixOS-WSL", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1708475490, @@ -415,6 +471,7 @@ "kickstartnvim": "kickstartnvim", "nix-ld": "nix-ld", "nixos-hardware": "nixos-hardware", + "nixos-wsl": "nixos-wsl", "nixpkgs": "nixpkgs_2", "pyfa": "pyfa", "snowfall-flake": "snowfall-flake", @@ -425,7 +482,7 @@ }, "snowfall-flake": { "inputs": { - "flake-compat": "flake-compat_2", + "flake-compat": "flake-compat_3", "nixpkgs": [ "unstable" ], @@ -447,7 +504,7 @@ }, "snowfall-lib": { "inputs": { - "flake-compat": "flake-compat_3", + "flake-compat": "flake-compat_4", "flake-utils-plus": "flake-utils-plus", "nixpkgs": [ "snowfall-flake", @@ -471,7 +528,7 @@ }, "snowfall-lib_2": { "inputs": { - "flake-compat": "flake-compat_4", + "flake-compat": "flake-compat_5", "flake-utils-plus": "flake-utils-plus_2", "nixpkgs": [ "nixpkgs" @@ -555,6 +612,21 @@ "type": "github" } }, + "systems_4": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "unstable": { "locked": { "lastModified": 1722813957, diff --git a/flake.nix b/flake.nix index 3edb704..f2a8953 100644 --- a/flake.nix +++ b/flake.nix @@ -12,6 +12,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + nixos-wsl = { + url = "github:nix-community/NixOS-WSL"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + snowfall-lib = { url = "github:snowfallorg/lib"; inputs.nixpkgs.follows = "nixpkgs"; @@ -84,5 +89,9 @@ nix-ld.nixosModules.nix-ld sops-nix.nixosModules.sops ]; + + systems.hosts.wsl.modules = with inputs; [ + nixos-wsl.nixosModules.default + ]; }; } diff --git a/homes/x86_64-linux/cholli@wsl/default.nix b/homes/x86_64-linux/cholli@wsl/default.nix new file mode 100644 index 0000000..694b9c7 --- /dev/null +++ b/homes/x86_64-linux/cholli@wsl/default.nix @@ -0,0 +1,20 @@ +{ + lib, + pkgs, + config, + osConfig ? { }, + format ? "unknown", + ... +}: +with lib.wyrdgard; +{ + wyrdgard = { + apps = { + kitty = enabled; + }; + + tools = { + direnv = enabled; + }; + }; +} diff --git a/modules/nixos/submodules/basics-wsl/default.nix b/modules/nixos/submodules/basics-wsl/default.nix new file mode 100644 index 0000000..a41fc8a --- /dev/null +++ b/modules/nixos/submodules/basics-wsl/default.nix @@ -0,0 +1,48 @@ +{ + options, + config, + lib, + pkgs, + ... +}: +with lib; +with lib.wyrdgard; +let + cfg = config.wyrdgard.submodules.basics-wsl; +in +{ + options.wyrdgard.submodules.basics-wsl = with types; { + enable = mkBoolOpt false "Whether or not to enable basic configuration."; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + neofetch + + fd + tree + ripgrep + fzf + colorls + ]; + + wyrdgard = { + nix = enabled; + + tools = { + git = enabled; + }; + + system.hardware = { + networking = enabled; + }; + + system = { + fonts = enabled; + locale = enabled; + time = enabled; + xkb = enabled; + }; + }; + }; +} diff --git a/result b/result new file mode 120000 index 0000000..a7c115f --- /dev/null +++ b/result @@ -0,0 +1 @@ +/nix/store/5bn24v1m3gsjr96fj9h2kavaj67lxh5q-nixos-24.05.20240410.1042fd8-x86_64-linux.iso \ No newline at end of file diff --git a/systems/x86_64-linux/wsl/default.nix b/systems/x86_64-linux/wsl/default.nix new file mode 100644 index 0000000..5d0be17 --- /dev/null +++ b/systems/x86_64-linux/wsl/default.nix @@ -0,0 +1,26 @@ +{ + config, + pkgs, + lib, + ... +}: +with lib; +with lib.wyrdgard; +{ + wsl = { + enable = true; + defaultUser = config.wyrdgard.user.name; + }; + + environment.systemPackages = with pkgs; [ + git + wslu + wsl-open + ]; + + wyrdgard = { + submodules.basics-wsl = enabled; + }; + + system.stateVersion = "24.11"; +}