5075cbe696
My original reason to put it at the beginning of NIX_PATH was to allow shipping a particular version <nixpkgs> with a channel. But in order to do that, we can still let the channel expression ship with a custom version of nixpkgs by something like <channel/nixpkgs> and the builder of the channel could also rewrite self-references. So the inconvenience is now shifted towards the maintainer of the channel rather than the user (which isn't nice, but better err on the side of the developer rather than on the user), because as @edolstra pointed out: Having the channels of root at the beginning of NIX_PATH could have unintended side-effects if there a channel called nixpkgs. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
80 lines
2.3 KiB
Nix
80 lines
2.3 KiB
Nix
# This module defines a standard configuration for NixOS global environment.
|
|
|
|
# Most of the stuff here should probably be moved elsewhere sometime.
|
|
|
|
{ config, lib, pkgs, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
|
|
cfg = config.environment;
|
|
|
|
in
|
|
|
|
{
|
|
|
|
config = {
|
|
|
|
environment.variables =
|
|
{ LOCATE_PATH = "/var/cache/locatedb";
|
|
NIXPKGS_CONFIG = "/etc/nix/nixpkgs-config.nix";
|
|
PAGER = mkDefault "less -R";
|
|
EDITOR = mkDefault "nano";
|
|
};
|
|
|
|
environment.sessionVariables =
|
|
{ NIX_PATH =
|
|
[ "/nix/var/nix/profiles/per-user/root/channels/nixos"
|
|
"nixpkgs=/etc/nixos/nixpkgs"
|
|
"nixos-config=/etc/nixos/configuration.nix"
|
|
"/nix/var/nix/profiles/per-user/root/channels"
|
|
];
|
|
};
|
|
|
|
environment.profiles =
|
|
[ "$HOME/.nix-profile"
|
|
"/nix/var/nix/profiles/default"
|
|
"/run/current-system/sw"
|
|
];
|
|
|
|
# TODO: move most of these elsewhere
|
|
environment.profileRelativeEnvVars =
|
|
{ PATH = [ "/bin" "/sbin" "/lib/kde4/libexec" ];
|
|
INFOPATH = [ "/info" "/share/info" ];
|
|
PKG_CONFIG_PATH = [ "/lib/pkgconfig" ];
|
|
TERMINFO_DIRS = [ "/share/terminfo" ];
|
|
PERL5LIB = [ "/lib/perl5/site_perl" ];
|
|
KDEDIRS = [ "" ];
|
|
STRIGI_PLUGIN_PATH = [ "/lib/strigi/" ];
|
|
QT_PLUGIN_PATH = [ "/lib/qt4/plugins" "/lib/kde4/plugins" "/lib/qt5/plugins" ];
|
|
QML_IMPORT_PATH = [ "/lib/qt5/imports" ];
|
|
QML2_IMPORT_PATH = [ "/lib/qt5/qml" ];
|
|
QTWEBKIT_PLUGIN_PATH = [ "/lib/mozilla/plugins/" ];
|
|
GTK_PATH = [ "/lib/gtk-2.0" "/lib/gtk-3.0" ];
|
|
XDG_CONFIG_DIRS = [ "/etc/xdg" ];
|
|
XDG_DATA_DIRS = [ "/share" ];
|
|
MOZ_PLUGIN_PATH = [ "/lib/mozilla/plugins" ];
|
|
LIBEXEC_PATH = [ "/lib/libexec" ];
|
|
};
|
|
|
|
environment.extraInit =
|
|
''
|
|
# reset TERM with new TERMINFO available (if any)
|
|
export TERM=$TERM
|
|
|
|
unset ASPELL_CONF
|
|
for i in ${concatStringsSep " " (reverseList cfg.profiles)} ; do
|
|
if [ -d "$i/lib/aspell" ]; then
|
|
export ASPELL_CONF="dict-dir $i/lib/aspell"
|
|
fi
|
|
done
|
|
|
|
export NIX_USER_PROFILE_DIR="/nix/var/nix/profiles/per-user/$USER"
|
|
export NIX_PROFILES="${concatStringsSep " " (reverseList cfg.profiles)}"
|
|
'';
|
|
|
|
};
|
|
|
|
}
|