diff --git a/home-manager/modules/emulators.nix b/home-manager/modules/emulators.nix index 8b6747b..816e321 100644 --- a/home-manager/modules/emulators.nix +++ b/home-manager/modules/emulators.nix @@ -7,7 +7,7 @@ rpcs3 ryujinx mupen64plus - dolphin-emulator + dolphin-emu retroarch mednafen joycond diff --git a/hosts/local-packages.nix b/hosts/local-packages.nix index 8e7efb7..a3f20dc 100644 --- a/hosts/local-packages.nix +++ b/hosts/local-packages.nix @@ -7,9 +7,11 @@ in { imports = [ ../modules/python.nix + ../modules/npm.nix ]; python.enable = true; + npm.enable = true; environment.systemPackages = with pkgs; [ brave # TODO: make a module to save browser stuff diff --git a/modules/npm.nix b/modules/npm.nix new file mode 100644 index 0000000..77c1f0f --- /dev/null +++ b/modules/npm.nix @@ -0,0 +1,38 @@ +{ + config, + pkgs, + lib, + ... +}: let + npmConf = pkgs.writeText "npmrc" '' + prefix=${config.environment.variables.NPM_CONFIG_PREFIX} + cache=$HOME/.npm + init-module=$HOME/.npm-init.js + node-linker=hoisted + ''; +in { + options.npm = { + enable = lib.mkEnableOption "System NPM Environment"; + }; + config = lib.mkIf config.npm.enable { + environment.systemPackages = with pkgs; [ + nodejs + nodePackages.npm + ]; + environment.variables = { + NPM_CONFIG_PREFIX = "$HOME/.npm-global"; + PATH = ["$HOME/.npm-global/bin"]; + NPM_CONFIG_USERCONFIG = "${npmConf}"; + }; + system.userActivationScripts.setupNpm = '' + mkdir -p $HOME/.npm-global/bin + mkdir -p $HOME/.npm + if [ ! -f "$HOME/.npmrc" ]; then + cp ${npmConf} $HOME/.npmrc + fi + if [ -d "$HOME/.npm-global" ]; then + chmod -R +rw $HOME/.npm-global + fi + ''; + }; +}