{ lib, pkgs, config, modulesPath, ... }: { # nixpkgs.overlays = overlays; # Enable nix flakes nix.package = pkgs.nixFlakes; nix.extraOptions = '' experimental-features = nix-command flakes ''; system.stateVersion = "22.11"; wsl = { enable = true; wslConf.automount.root = "/mnt"; defaultUser = "sstent"; startMenuLaunchers = true; interop.preserveArgvZero = true; nativeSystemd = true; # Enable native Docker support # docker-native.enable = true; # Enable integration with Docker Desktop (needs to be installed) # docker-desktop.enable = true; }; mymods = { user_sstent.enable = true; }; sops.defaultSopsFile = ./secrets.yaml; sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; sops.secrets.example_key = {}; environment.systemPackages = [ pkgs.socat pkgs.npiperelay #pkgs.wsl-ssh-agent-relay ]; nixpkgs.config.packageOverrides = pkgs: with pkgs; rec { npiperelay = callPackage ../../pkgs/npiperelay { }; wsl-ssh-agent-relay = callPackage ../../pkgs/wsl-ssh-agent-relay { }; }; systemd.user.services.ssh-proxy = { Unit = { Description = "WSL Proxy"; }; Service = { ExecStart = "${pkgs.writeShellScript "start-proxy" '' rm -f /tmp/.ssh-sock setsid ${pkgs.socat}/bin/socat UNIX-LISTEN:/tmp/.ssh-sock,fork EXEC:"/mnt/c/ProgramData/chocolatey/bin/npiperelay.exe -ei -s //./pipe/openssh-ssh-agent",nofork ''}"; }; Install = { WantedBy = [ "default.target" ]; }; }; systemd.services.nixs-wsl-systemd-fix = { description = "Fix the /dev/shm symlink to be a mount"; unitConfig = { DefaultDependencies = "no"; Before = [ "sysinit.target" "systemd-tmpfiles-setup-dev.service" "systemd-tmpfiles-setup.service" "systemd-sysctl.service" ]; ConditionPathExists = "/dev/shm"; ConditionPathIsSymbolicLink = "/dev/shm"; ConditionPathIsMountPoint = "/run/shm"; }; serviceConfig = { Type = "oneshot"; ExecStart = [ "${pkgs.coreutils-full}/bin/rm /dev/shm" "/run/wrappers/bin/mount --bind -o X-mount.mkdir /run/shm /dev/shm" ]; }; wantedBy = [ "sysinit.target" ]; }; }