carapace: Use home-manager module

This commit is contained in:
Erwin Boskma 2024-02-22 11:33:31 +01:00
parent 12efb214e0
commit db9e19eff0
Signed by: erwin
SSH key fingerprint: SHA256:/Wk1WZdLg+vQHs3in9qq7PsIp8SMzwGSk/RLZ5zPuZk
2 changed files with 28 additions and 50 deletions

View file

@ -1,15 +1,3 @@
let carapace_completer = {|spans|
let expanded_alias = (scope aliases | where name == $spans.0 | get -i 0 | get -i expansion)
let spans = (if $expanded_alias != null {
spans | skip 1 | prepend ($expanded_alias | split row " " | take 1)
} else {
$spans
})
carapace $spans.0 nushell ...$spans | from json
}
# The default config record. This is where much of your global configuration is setup. # The default config record. This is where much of your global configuration is setup.
$env.config = { $env.config = {
explore: { explore: {
@ -34,7 +22,6 @@ $env.config = {
algorithm: "fuzzy" # prefix or fuzzy algorithm: "fuzzy" # prefix or fuzzy
external: { external: {
enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up my be very slow enable: true # set to false to prevent nushell looking into $env.PATH to find more suggestions, `false` recommended for WSL users as this look up my be very slow
completer: $carapace_completer # check 'carapace_completer' above as an example
} }
} }
filesize: { filesize: {

View file

@ -7,8 +7,6 @@
with lib; with lib;
let let
cfg = config.eboskma.programs.nushell; cfg = config.eboskma.programs.nushell;
zoxideOptions = concatStringsSep " " config.programs.zoxide.options;
in in
{ {
options.eboskma.programs.nushell = { options.eboskma.programs.nushell = {
@ -16,56 +14,49 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.nushell = { programs = {
enable = true; nushell = {
package = pkgs.nushellFull; enable = true;
configFile.source = ./config.nu; package = pkgs.nushellFull;
envFile.source = ./env.nu; configFile.source = ./config.nu;
envFile.source = ./env.nu;
extraEnv = '' extraEnv = ''
$env.command_not_found_db = ${config.programs.command-not-found.dbPath} $env.command_not_found_db = ${config.programs.command-not-found.dbPath}
$env.NIX_SYSTEM = "${pkgs.system}" $env.NIX_SYSTEM = "${pkgs.system}"
let zoxide_cache = "${config.xdg.cacheHome}/zoxide" $env.NU_LIB_DIRS = ($env.NU_LIB_DIRS | append ${pkgs.nu_scripts}/share/nu_scripts)
if not ($zoxide_cache | path exists) { '';
mkdir $zoxide_cache extraConfig = ''
} alias vim = nvim
${config.programs.zoxide.package}/bin/zoxide init nushell ${zoxideOptions} | save --force ${config.xdg.cacheHome}/zoxide/init.nu alias tree = ${pkgs.eza}/bin/eza -F -b --git --tree --icons
# Temporary fix until zoxide releases new version
sed -i 's/def-env/def --env/g' ${config.xdg.cacheHome}/zoxide/init.nu
$env.NU_LIB_DIRS = ($env.NU_LIB_DIRS | append ${pkgs.nu_scripts}/share/nu_scripts) $env.LS_COLORS = (${pkgs.vivid}/bin/vivid generate gruvbox-dark | str trim)
'';
extraConfig = ''
alias vim = nvim
alias tree = ${pkgs.eza}/bin/eza -F -b --git --tree --icons
$env.LS_COLORS = (${pkgs.vivid}/bin/vivid generate gruvbox-dark | str trim) register ${pkgs.nushellPlugins.query}/bin/nu_plugin_query
register ${pkgs.nushellPlugins.formats}/bin/nu_plugin_formats
register ${pkgs.nushellPlugins.net}/bin/nu_plugin_net
register ${pkgs.nushellPlugins.query}/bin/nu_plugin_query use kink.nu
register ${pkgs.nushellPlugins.formats}/bin/nu_plugin_formats
register ${pkgs.nushellPlugins.net}/bin/nu_plugin_net
use kink.nu # use ${pkgs.nu_scripts}/share/nu_scripts/themes/nu-themes/dracula.nu
use themes/nu-themes/dracula.nu
# use ${pkgs.nu_scripts}/share/nu_scripts/themes/nu-themes/dracula.nu $env.config = ($env.config | merge { color_config: (dracula)})
use themes/nu-themes/dracula.nu '';
};
$env.config = ($env.config | merge { color_config: (dracula)}) carapace = {
enable = true;
source ${config.xdg.cacheHome}/zoxide/init.nu };
'';
}; };
# Temporary until zoxide releases new version
programs.zoxide.enableNushellIntegration = false;
xdg.configFile."nushell/scripts" = { xdg.configFile."nushell/scripts" = {
source = ./scripts; source = ./scripts;
}; };
home.packages = with pkgs; [ home.packages = with pkgs; [
carapace # carapace
nu_scripts nu_scripts
]; ];
}; };