diff --git a/configs/nixos/modules/shell/fish/default.nix b/configs/nixos/modules/shell/fish/default.nix index c5063b4..4ee0279 100644 --- a/configs/nixos/modules/shell/fish/default.nix +++ b/configs/nixos/modules/shell/fish/default.nix @@ -9,7 +9,11 @@ let cfg = config.modules.shell.fish; user = config.user.name; shortcuts = config.registry.shell-shortcut.${config.networking.hostName}; + envVars = config.registry.env-var.${config.networking.hostName}; commandsOf = shortcuts: lib.mapAttrs (_name: shortcut: shortcut.command) shortcuts; + exportEnvVar = name: value: '' + set -gx ${name} ${lib.escapeShellArg value} + ''; in { options.modules.shell.fish = { @@ -99,7 +103,10 @@ in }; # Rendered by home-manager into ~/.config/fish/config.fish. - interactiveShellInit = builtins.readFile ./config.fish; + interactiveShellInit = lib.concatStringsSep "\n" ( + (lib.mapAttrsToList exportEnvVar envVars) + ++ [ (builtins.readFile ./config.fish) ] + ); }; }; }; diff --git a/configs/nixos/modules/shell/rust.nix b/configs/nixos/modules/shell/rust.nix index 050b508..36c9c8d 100644 --- a/configs/nixos/modules/shell/rust.nix +++ b/configs/nixos/modules/shell/rust.nix @@ -23,13 +23,13 @@ in options.modules.shell.rust.enable = lib.mkEnableOption "Rust tools for the primary user's shell environment"; config = lib.mkIf cfg.enable { + registry.env-var.${config.networking.hostName}.RUST_TOOLCHAIN_ROOT = "${toolchain}"; + home-manager.users.${user} = { home.packages = [ toolchain pkgs.rust-analyzer ]; - - home.sessionVariables.RUST_TOOLCHAIN_ROOT = "${toolchain}"; }; }; } diff --git a/configs/nixos/registry/env-var.nix b/configs/nixos/registry/env-var.nix new file mode 100644 index 0000000..8a6fd91 --- /dev/null +++ b/configs/nixos/registry/env-var.nix @@ -0,0 +1,4 @@ +{ lib, ... }: +{ + type = lib.types.str; +}