mirror of
https://github.com/nix-community/home-manager
synced 2024-12-23 18:29:47 +01:00
targets/genericLinux: set TERMINFO_DIRS (#1819)
This makes terminfo descriptions in installed packages available to shell sessions. Not needed for NixOS, which does the same thing already.
This commit is contained in:
parent
abc9d96d19
commit
5fbb33cff5
2 changed files with 26 additions and 1 deletions
|
@ -32,10 +32,27 @@ in {
|
||||||
dataDirs = concatStringsSep ":"
|
dataDirs = concatStringsSep ":"
|
||||||
(map (profile: "${profile}/share") profiles
|
(map (profile: "${profile}/share") profiles
|
||||||
++ config.targets.genericLinux.extraXdgDataDirs);
|
++ config.targets.genericLinux.extraXdgDataDirs);
|
||||||
in { XDG_DATA_DIRS = "${dataDirs}\${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS"; };
|
|
||||||
|
# https://github.com/archlinux/svntogit-packages/blob/packages/ncurses/trunk/PKGBUILD
|
||||||
|
# https://salsa.debian.org/debian/ncurses/-/blob/master/debian/rules
|
||||||
|
# https://src.fedoraproject.org/rpms/ncurses/blob/main/f/ncurses.spec
|
||||||
|
# https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-libs/ncurses/ncurses-6.2-r1.ebuild
|
||||||
|
distroTerminfoDirs = concatStringsSep ":" [
|
||||||
|
"/etc/terminfo" # debian, fedora, gentoo
|
||||||
|
"/lib/terminfo" # debian
|
||||||
|
"/usr/share/terminfo" # package default, all distros
|
||||||
|
];
|
||||||
|
in {
|
||||||
|
XDG_DATA_DIRS = "${dataDirs}\${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS";
|
||||||
|
TERMINFO_DIRS =
|
||||||
|
"${profileDirectory}/share/terminfo:$TERMINFO_DIRS\${TERMINFO_DIRS:+:}${distroTerminfoDirs}";
|
||||||
|
};
|
||||||
|
|
||||||
home.sessionVariablesExtra = ''
|
home.sessionVariablesExtra = ''
|
||||||
. "${pkgs.nix}/etc/profile.d/nix.sh"
|
. "${pkgs.nix}/etc/profile.d/nix.sh"
|
||||||
|
|
||||||
|
# reset TERM with new TERMINFO available (if any)
|
||||||
|
export TERM="$TERM"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# We need to source both nix.sh and hm-session-vars.sh as noted in
|
# We need to source both nix.sh and hm-session-vars.sh as noted in
|
||||||
|
|
|
@ -11,12 +11,20 @@ with lib;
|
||||||
|
|
||||||
nmt.script = ''
|
nmt.script = ''
|
||||||
assertFileExists home-path/etc/profile.d/hm-session-vars.sh
|
assertFileExists home-path/etc/profile.d/hm-session-vars.sh
|
||||||
|
|
||||||
assertFileContains \
|
assertFileContains \
|
||||||
home-path/etc/profile.d/hm-session-vars.sh \
|
home-path/etc/profile.d/hm-session-vars.sh \
|
||||||
'export XDG_DATA_DIRS="''${NIX_STATE_DIR:-/nix/var/nix}/profiles/default/share:/home/hm-user/.nix-profile/share:/foo''${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS"'
|
'export XDG_DATA_DIRS="''${NIX_STATE_DIR:-/nix/var/nix}/profiles/default/share:/home/hm-user/.nix-profile/share:/foo''${XDG_DATA_DIRS:+:}$XDG_DATA_DIRS"'
|
||||||
assertFileContains \
|
assertFileContains \
|
||||||
home-path/etc/profile.d/hm-session-vars.sh \
|
home-path/etc/profile.d/hm-session-vars.sh \
|
||||||
'. "${pkgs.nix}/etc/profile.d/nix.sh"'
|
'. "${pkgs.nix}/etc/profile.d/nix.sh"'
|
||||||
|
|
||||||
|
assertFileContains \
|
||||||
|
home-path/etc/profile.d/hm-session-vars.sh \
|
||||||
|
'export TERMINFO_DIRS="/home/hm-user/.nix-profile/share/terminfo:$TERMINFO_DIRS''${TERMINFO_DIRS:+:}/etc/terminfo:/lib/terminfo:/usr/share/terminfo"'
|
||||||
|
assertFileContains \
|
||||||
|
home-path/etc/profile.d/hm-session-vars.sh \
|
||||||
|
'export TERM="$TERM"'
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue