mirror of
https://github.com/nix-community/home-manager.git
synced 2026-01-13 11:19:27 +08:00
starship: add nushell integration support
This commit is contained in:
committed by
Robert Helgesson
parent
4a12f304e0
commit
7ae7250df8
@@ -89,6 +89,14 @@ in {
|
||||
Whether to enable Ion integration.
|
||||
'';
|
||||
};
|
||||
|
||||
enableNushellIntegration = mkOption {
|
||||
default = true;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
Whether to enable Nushell integration.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
@@ -116,10 +124,21 @@ in {
|
||||
end
|
||||
'';
|
||||
|
||||
programs.ion.initExtra = mkIf cfg.enableIonIntegration ''
|
||||
if test $TERM != "dumb" && not exists -s INSIDE_EMACS || test $INSIDE_EMACS = "vterm"
|
||||
eval $(${starshipCmd} init ion)
|
||||
end
|
||||
'';
|
||||
programs.nushell = mkIf cfg.enableNushellIntegration {
|
||||
# Unfortunately nushell doesn't allow conditionally sourcing nor
|
||||
# conditionally setting (global) environment variables, which is why the
|
||||
# check for terminal compatibility (as seen above for the other shells) is
|
||||
# not done here.
|
||||
extraEnv = ''
|
||||
let starship_cache = "${config.xdg.cacheHome}/starship"
|
||||
if not ($starship_cache | path exists) {
|
||||
mkdir $starship_cache
|
||||
}
|
||||
${starshipCmd} init nu | save ${config.xdg.cacheHome}/starship/init.nu
|
||||
'';
|
||||
extraConfig = ''
|
||||
source ${config.xdg.cacheHome}/starship/init.nu
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user