From 9a7fa0bb5b1e5e1cd61f6442933234f0b8a17e13 Mon Sep 17 00:00:00 2001 From: jopejoe1 Date: Sun, 14 Jan 2024 21:11:06 +0100 Subject: [PATCH] better nushell config --- home-modules/default.nix | 1 + home-modules/nushell/default.nix | 54 ++++++++++++++++++++++++++++++ modules/users/jopejoe1/default.nix | 1 + 3 files changed, 56 insertions(+) create mode 100644 home-modules/nushell/default.nix diff --git a/home-modules/default.nix b/home-modules/default.nix index ddc505d..7c7bd67 100644 --- a/home-modules/default.nix +++ b/home-modules/default.nix @@ -6,5 +6,6 @@ ./direnv ./firefox ./git + ./nushell ]; } diff --git a/home-modules/nushell/default.nix b/home-modules/nushell/default.nix new file mode 100644 index 0000000..6e08c2b --- /dev/null +++ b/home-modules/nushell/default.nix @@ -0,0 +1,54 @@ +{ config, lib, pkgs, ... }: + +let cfg = config.jopejoe1.nushell; +in { + options.jopejoe1.nushell = { + enable = lib.mkEnableOption "Enable Nushell"; + }; + + config = lib.mkIf cfg.enable { + programs = { + nushell = { + enable = true; + extraConfig = '' + let carapace_completer = {|spans| + carapace $spans.0 nushell $spans | from json + } + $env.config = { + show_banner: false, + completions: { + case_sensitive: false + quick: true + partial: true + algorithm: "fuzzy" + external: { + enable: true + max_results: 100 + completer: $carapace_completer + } + } + } + ''; + shellAliases = { + vi = "nvim"; + vim = "nvim"; + }; + }; + carapace.enable = true; + carapace.enableNushellIntegration = true; + + starship = { + enable = true; + settings = { + add_newline = true; + character = { + success_symbol = "[➜](bold green)"; + error_symbol = "[➜](bold red)"; + }; + }; + }; + }; + }; +} + + diff --git a/modules/users/jopejoe1/default.nix b/modules/users/jopejoe1/default.nix index cec9d15..581f02f 100644 --- a/modules/users/jopejoe1/default.nix +++ b/modules/users/jopejoe1/default.nix @@ -44,6 +44,7 @@ in { emoji = config.fonts.fontconfig.defaultFonts.emoji; }; }; + nushell.enable = true; git.enable = true; direnv.enable = true; firefox.enable = true;