diff --git a/modules/common/nushell/config.nu b/modules/common/nushell/config.nu index 6bd9afd..9c9c02f 100644 --- a/modules/common/nushell/config.nu +++ b/modules/common/nushell/config.nu @@ -1,4 +1,4 @@ -$env.config.buffer_editor = "/home/thegeneralist/.nix-profile/bin/nvim" +$env.config.buffer_editor = "/etc/profiles/per-user/thegeneralist/bin/nvim" $env.config.show_banner = false $env.config = { @@ -13,6 +13,32 @@ $env.config = { } } +$env.config.completions = { + algorithm: prefix + case_sensitive: false + partial: true + quick: true + external: { + enable: true + max_results: 100 + completer: {|tokens: list| + let expanded = scope aliases | where name == $tokens.0 | get --ignore-errors expansion.0 + + mut expanded_tokens = if $expanded != null and $tokens.0 != "cd" { + $expanded | split row " " | append ($tokens | skip 1) + } else { + $tokens + } + + $expanded_tokens.0 = ($expanded_tokens.0 | str trim --left --char "^") + + fish --command $"complete '--do-complete=($expanded_tokens | str join ' ')'" + | $"value(char tab)description(char newline)" + $in + | from tsv --flexible --no-infer + } + } +} + # Basic Aliases alias v = nvim . alias ff = fastfetch --load-config examples/10.jsonc @@ -41,5 +67,3 @@ alias ah = cd ~/dotfiles/hosts/thegeneralist alias ai3 = nvim /home/thegeneralist/dotfiles/hosts/thegeneralist/dotfiles/i3/config # alias rb = sudo nixos-rebuild switch --flake ~/dotfiles#thegeneralist alias rb = nh os switch . -v -- --show-trace --verbose - -source ~/.zoxide.nu diff --git a/modules/common/nushell/default.nix b/modules/common/nushell/default.nix index e83b489..0ee517e 100644 --- a/modules/common/nushell/default.nix +++ b/modules/common/nushell/default.nix @@ -12,6 +12,7 @@ in { nushell fish zoxide + vivid ripgrep jq yq-go @@ -45,12 +46,22 @@ in { home-manager.sharedModules = [ ({ - home.file.".zshrc" = let - configFile = ./config.nu; - envFile = ./env.nu; - in { - text = "exec nu --env-config ${envFile} --config ${configFile}"; - force = true; + home.file = { + ".zshrc" = let + configFile = ./config.nu; + envFile = ./env.nu; + in { + text = "exec nu --env-config ${envFile} --config ${configFile}"; + force = true; + }; + + ".config/nushell/zoxide.nu".source = pkgs.runCommand "zoxide.nu" {} '' + ${getExe pkgs.zoxide} init nushell --cmd cd > $out + ''; + + ".config/nushell/ls_colors.txt".source = pkgs.runCommand "ls_colors.txt" {} '' + ${getExe pkgs.vivid} generate gruvbox-dark-hard > $out + ''; }; }) (homeArgs: { diff --git a/modules/common/nushell/env.nu b/modules/common/nushell/env.nu index 55b4e71..75cd321 100644 --- a/modules/common/nushell/env.nu +++ b/modules/common/nushell/env.nu @@ -6,6 +6,10 @@ $env.ENV_CONVERSIONS.PATH = { $value | path expand --no-symlink | str join (char esep) } } + +$env.LS_COLORS = (open ~/.config/nushell/ls_colors.txt) + +source ~/.config/nushell/zoxide.nu # NVM # source ("/Users/thegeneralist/.nvm/" | path join "nvm.sh")