diff --git a/modules/environment/login/login-inner.nix b/modules/environment/login/login-inner.nix index 1ab3cef..a9682d0 100644 --- a/modules/environment/login/login-inner.nix +++ b/modules/environment/login/login-inner.nix @@ -4,11 +4,6 @@ let inherit (customPkgs.packageInfo) cacert coreutils nix; - - sessionInitPackage = - if config.build.initialBuild - then config.build.sessionInit - else "/nix/var/nix/profiles/per-user/${config.user.userName}/profile"; in writeText "login-inner" '' @@ -20,12 +15,14 @@ writeText "login-inner" '' [ "$#" -gt 0 ] || echo "If nothing works, open an issue at https://github.com/t184256/nix-on-droid/issues or try the rescue shell." - set +u - . "${sessionInitPackage}/etc/profile.d/nix-on-droid-session-init.sh" - set -u - ${lib.optionalString config.build.initialBuild '' if [ -e /etc/UNINTIALISED ]; then + export HOME="${config.user.home}" + export USER="${config.user.userName}" + + # To prevent gc warnings of nix, see https://github.com/NixOS/nix/issues/3237 + export GC_NPROCS=1 + echo "Setting default user profile..." ${nix}/bin/nix-env --switch-profile /nix/var/nix/profiles/per-user/$USER/profile @@ -62,19 +59,9 @@ writeText "login-inner" '' fi ''} - [ "$#" -gt 0 ] || echo "Sourcing Nix environment..." - . $HOME/.nix-profile/etc/profile.d/nix.sh - - if [ -e "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh" ]; then - [ "$#" -gt 0 ] || echo "Sourcing home-manager environment..." - export NIX_PATH=$HOME/.nix-defexpr/channels''${NIX_PATH:+:}$NIX_PATH - set +u - . "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh" - set -u - fi - - # Workaround for https://github.com/NixOS/nix/issues/1865 - export NIX_PATH=nixpkgs=$HOME/.nix-defexpr/channels/nixpkgs/:$NIX_PATH + set +u + . "${config.user.home}/.nix-profile/etc/profile.d/nix-on-droid-session-init.sh" + set -u if [ "$#" -eq 0 ]; then exec /usr/bin/env bash diff --git a/modules/environment/session-init.nix b/modules/environment/session-init.nix index dce93f5..6050c82 100644 --- a/modules/environment/session-init.nix +++ b/modules/environment/session-init.nix @@ -19,6 +19,20 @@ let [ -n "$__NOD_SESS_INIT_SOURCED" ] && return export __NOD_SESS_INIT_SOURCED=1 + . $HOME/.nix-profile/etc/profile.d/nix.sh + + ${optionalString (config.home-manager.config != null) '' + if [ -e "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh" ]; then + export NIX_PATH=$HOME/.nix-defexpr/channels''${NIX_PATH:+:}$NIX_PATH + set +u + . "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh" + set -u + fi + ''} + + # Workaround for https://github.com/NixOS/nix/issues/1865 + export NIX_PATH=nixpkgs=$HOME/.nix-defexpr/channels/nixpkgs/:$NIX_PATH + ${exportAll cfg.sessionVariables} ''; }; diff --git a/pkgs/nix-directory.nix b/pkgs/nix-directory.nix index 33d7cde..fb04359 100644 --- a/pkgs/nix-directory.nix +++ b/pkgs/nix-directory.nix @@ -18,7 +18,6 @@ let prootTermuxClosure = closureInfo { rootPaths = [ - config.build.sessionInit prootTermux ]; };