parent
dd538c2969
commit
d06bcf4c97
@ -0,0 +1,39 @@ |
||||
{ config, lib, pkgs, ... }: |
||||
|
||||
with lib; |
||||
|
||||
let |
||||
|
||||
profileDirectory = config.home.profileDirectory; |
||||
|
||||
in { |
||||
options.targets.genericLinux.enable = mkEnableOption "" // { |
||||
description = '' |
||||
Whether to enable settings that make Home Manager work better on |
||||
GNU/Linux distributions other than NixOS. |
||||
''; |
||||
}; |
||||
|
||||
config = mkIf config.targets.genericLinux.enable { |
||||
home.sessionVariables = let |
||||
profiles = [ "/nix/var/nix/profiles/default" profileDirectory ]; |
||||
dataDirs = |
||||
concatStringsSep ":" (map (profile: "${profile}/share") profiles); |
||||
in { XDG_DATA_DIRS = "${dataDirs}\${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS"; }; |
||||
|
||||
home.sessionVariablesExtra = '' |
||||
. "${pkgs.nix}/etc/profile.d/nix.sh" |
||||
''; |
||||
|
||||
# We need to source both nix.sh and hm-session-vars.sh as noted in |
||||
# https://github.com/rycee/home-manager/pull/797#issuecomment-544783247 |
||||
programs.bash.initExtra = '' |
||||
. "${pkgs.nix}/etc/profile.d/nix.sh" |
||||
. "${profileDirectory}/etc/profile.d/hm-session-vars.sh" |
||||
''; |
||||
|
||||
systemd.user.sessionVariables = { |
||||
NIX_PATH = "$HOME/.nix-defexpr/channels\${NIX_PATH:+:}$NIX_PATH"; |
||||
}; |
||||
}; |
||||
} |
@ -0,0 +1 @@ |
||||
{ targets-generic-linux = ./generic-linux.nix; } |
@ -0,0 +1,6 @@ |
||||
# Only source this once. |
||||
if [ -n "$__HM_SESS_VARS_SOURCED" ]; then return; fi |
||||
export __HM_SESS_VARS_SOURCED=1 |
||||
|
||||
export XDG_DATA_DIRS="/nix/var/nix/profiles/default/share:/homeless-shelter/.nix-profile/share${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS" |
||||
. "@nix@/etc/profile.d/nix.sh" |
@ -0,0 +1,23 @@ |
||||
{ config, lib, pkgs, ... }: |
||||
|
||||
with lib; |
||||
|
||||
{ |
||||
config = { |
||||
home.homeDirectory = "/homeless-shelter"; |
||||
|
||||
targets.genericLinux.enable = true; |
||||
|
||||
nmt.script = '' |
||||
assertFileExists home-path/etc/profile.d/hm-session-vars.sh |
||||
assertFileContent \ |
||||
home-path/etc/profile.d/hm-session-vars.sh \ |
||||
${ |
||||
pkgs.substituteAll { |
||||
src = ./generic-linux-session-vars-expected.txt; |
||||
nix = pkgs.nix; |
||||
} |
||||
} |
||||
''; |
||||
}; |
||||
} |
Loading…
Reference in new issue