From 7c32ae8364518e3d5f840e46247b1db8e98441bc Mon Sep 17 00:00:00 2001 From: Ivan Dimitrov Date: Mon, 29 Jan 2024 07:48:15 +0000 Subject: [PATCH] add newshell and make default --- home/default.nix | 2 +- modules/home/programs/default.nix | 1 + modules/home/programs/nushell/default.nix | 47 +++++++++++++++++++++++ nixos/laptop/default.nix | 1 + 4 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 modules/home/programs/nushell/default.nix diff --git a/home/default.nix b/home/default.nix index 86ece42..d4df72f 100644 --- a/home/default.nix +++ b/home/default.nix @@ -1,6 +1,6 @@ { system, pkgs, home-manager, modules, nid, ... }: let - ivand-programs = with modules.home.programs; [ nvim zsh tmux git chromium firefox kitty lf obs-studio sway swaylock browserpass bottom gpg comma ]; + ivand-programs = with modules.home.programs; [ nvim zsh tmux git chromium firefox kitty lf obs-studio sway swaylock browserpass bottom gpg comma nushell ]; ivand-packages = with modules.home.packages; [ dev essential media ]; in { diff --git a/modules/home/programs/default.nix b/modules/home/programs/default.nix index 809429a..fff7883 100644 --- a/modules/home/programs/default.nix +++ b/modules/home/programs/default.nix @@ -12,6 +12,7 @@ gpg = import ./gpg { inherit pkgs; }; kitty = import ./kitty { inherit pkgs; }; lf = import ./lf; + nushell = import ./nushell; obs-studio = import ./obs-studio { inherit pkgs; }; sway = import ./sway { inherit pkgs; }; swaylock = import ./swaylock; diff --git a/modules/home/programs/nushell/default.nix b/modules/home/programs/nushell/default.nix new file mode 100644 index 0000000..97704e6 --- /dev/null +++ b/modules/home/programs/nushell/default.nix @@ -0,0 +1,47 @@ +{ + 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 # case-sensitive completions + quick: true # set to false to prevent auto-selecting completions + partial: true # set to false to prevent partial filling of the prompt + algorithm: "fuzzy" # prefix or fuzzy + external: { + # set to false to prevent nushell looking into $env.PATH to find more suggestions + enable: true + # set to lower can improve completion performance at the cost of omitting some options + max_results: 100 + completer: $carapace_completer # check 'carapace_completer' + } + } + } + $env.PATH = ($env.PATH | + split row (char esep) | + prepend /home/myuser/.apps | + append /usr/bin/env + ) + ''; + }; + carapace = { + enable = true; + enableNushellIntegration = true; + }; + starship = { + enable = true; + settings = { + add_newline = true; + character = { + success_symbol = "[➜](bold green)"; + error_symbol = "[➜](bold red)"; + }; + }; + }; + }; +} diff --git a/nixos/laptop/default.nix b/nixos/laptop/default.nix index 9ec6981..f750f55 100644 --- a/nixos/laptop/default.nix +++ b/nixos/laptop/default.nix @@ -109,6 +109,7 @@ defaultUserShell = pkgs.zsh; users = { ivand = { + shell = pkgs.nushell; isNormalUser = true; extraGroups = [ "adbusers"