From 533e5810a9a49445ccad6dea239118f26ab09a37 Mon Sep 17 00:00:00 2001 From: DannyDannyDanny Date: Mon, 30 Mar 2026 18:03:11 +0200 Subject: [PATCH] refactor(wsl): move user packages to home-manager :art: Enable home-manager on WSL, importing the shared home.nix config. Remove duplicate packages and env vars from wsl.nix that are now provided by home-manager (git, ripgrep, fzf, direnv, etc.). --- nixos/flake.nix | 16 ++++++++++++--- nixos/hosts/wsl.nix | 49 +++++++-------------------------------------- 2 files changed, 20 insertions(+), 45 deletions(-) diff --git a/nixos/flake.nix b/nixos/flake.nix index 99f0eca..df13a6c 100644 --- a/nixos/flake.nix +++ b/nixos/flake.nix @@ -36,10 +36,20 @@ vscode-server.nixosModules.default ./hosts/wsl.nix ./tmux.nix - # TODO: handle all user-level programs via home-manager - # ./neovim.nix # Now handled via home-manager ./fish.nix - # home-manager.nixosModules.default + + # Home Manager on WSL + home-manager.nixosModules.home-manager + ({ lib, ... }: { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.backupFileExtension = "backup"; + home-manager.users.dth = { ... }: { + home.username = "dth"; + home.homeDirectory = lib.mkForce "/home/dth"; + imports = [ ./home/danny/home.nix ]; + }; + }) ]; }; diff --git a/nixos/hosts/wsl.nix b/nixos/hosts/wsl.nix index f4786e4..ca7cd82 100644 --- a/nixos/hosts/wsl.nix +++ b/nixos/hosts/wsl.nix @@ -23,14 +23,7 @@ nix.settings.experimental-features = [ "nix-command" "flakes" ]; programs.nix-ld.enable = true; - # TODO: move to home manager (?) - programs = { - direnv = { - enable = true; - # enableFishIntegration = true; - nix-direnv.enable = true; - }; - }; + # direnv is now managed by home-manager (home/danny/home.nix) # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions @@ -47,42 +40,14 @@ }; nixpkgs.config.allowUnfree = true; - environment.variables = { - DBT_USER = "DNTH"; - EDITOR = "nvim"; - VISUAL = "nvim"; - }; + # User-level packages (git, ripgrep, fzf, etc.) are managed by + # home-manager via home/danny/home.nix. Only system-wide deps here. environment.systemPackages = with pkgs; [ - # tmux # activated in tmux.nix - # vim # using neovim in stead - # neovim # activated in neovim.nix - - git # version control - gh # github cli tool - - ripgrep # faster grep - wget # for vscode-server - busybox # useful programs e.g. tree, unzip etc - openssl # cryptography swiss army knife - xdg-utils # terminal desktop intergrations (i.e. allow terminal to open browser) - - # make default.nix in python project folders instead of using a top-level python environment manager - # pyenv - # poetry - - fastfetch # system info - btop # resource monitor - tldr # community alternative to man - fzf # fuzzy finder - jq # parse json - - # gimp # bloat - # blender # bloat - # inkscape # bloat - - cowsay - lolcat + wget # needed by vscode-server + busybox # useful system utilities (tree, unzip, etc.) + xdg-utils # terminal desktop integrations + jq # parse json ]; services.ollama.enable = true;