Hi,
The issue
I would like to build an option like this :
{ config, pkgs, lib, ... }:
{
options.perso.latex = lib.mkEnableOption "Enable the latex configuration";
config = lib.mkIf config.perso.latex {
environment.systemPackages = with pkgs; [ tectonic ipe tikzit ];
# Using tectonic as a pdflatex & xelatex alias
environment.shellAliases = { pdflatex = "${pkgs.tectonic}/bin/tectonic"; xelatex = "${pkgs.tectonic}/bin/tectonic"; };
};
}
When I import and activate this option via perso.latex = true;
in my machine configuration file, I do get tectonic
accessible in the command line but I do not get the environment.shellAliases
: when I run pdflatex
I get :
The program ‘pdflatex’ is currently not installed. It is provided by
several packages. You can install it by typing one of the following:
nix-env -iA nixos.tetex
nix-env -iA nixos.texlive.combined.scheme-basic
nix-env -iA nixos.texlive.combined.scheme-small
and, of course, which pdflatex
sends back :
which: no pdflatex in (/home/sirc/.yarn/bin:/home/sirc/.config/yarn/global/node_modules/.bin:/home/sirc/.local/bin:/home/sirc/.fzf/bin:/home/sirc/bin:/run/wrappers/bin:/home/sirc/.nix-profile/bin:/etc/profiles/per-user/sirc/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin)
but when using a nix-shell
the command acts as set.
As I use fish
in my main shell, is there a way to have all my shell aliases through the option environment.shellAliases
that could be overridden via specific options for different shells as suggest the description of the option programs.fish.shellaliases
.
Icing
While researching my issue I realized that the description for environment.shellaliases
does not show up in the documentation site (try to click on the line to see and report if it is just me), even if it exists in the actual code.
I have no idea how to fix it but would like to.
Previous work
I have searched through uses and I can find several people using it as I want :