diff --git a/home/crow/common/core/default.nix b/home/crow/common/core/default.nix index c9e6cd3..6678920 100644 --- a/home/crow/common/core/default.nix +++ b/home/crow/common/core/default.nix @@ -20,6 +20,8 @@ in { ./direnv.nix ./tmux.nix ./git.nix + ./nushell.nix + ./starship.nix ]; home.packages = with pkgs; [ @@ -35,7 +37,7 @@ in { stateVersion = lib.mkDefault "24.05"; sessionVariables = { - SHELL = "zsh"; + SHELL = "nu"; TERM = "foot"; TERMINAL = "foot"; VISUAL = "nvim"; diff --git a/home/crow/common/core/direnv.nix b/home/crow/common/core/direnv.nix index 6388582..cf56ee3 100644 --- a/home/crow/common/core/direnv.nix +++ b/home/crow/common/core/direnv.nix @@ -5,6 +5,7 @@ enable = true; nix-direnv.enable = true; enableZshIntegration = true; + enableNushellIntegration = true; }; }; } diff --git a/home/crow/common/core/nushell.nix b/home/crow/common/core/nushell.nix new file mode 100644 index 0000000..6518a55 --- /dev/null +++ b/home/crow/common/core/nushell.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + ... +}: { + programs = { + nushell = { + enable = true; + shellAliases = { + set-nixpkgs-upstream = "git remote add upstream https://github.com/NixOS/nixpkgs.git"; + nup = "sudo nixos-rebuild switch --flake ."; + }; + }; + carapace = { + enable = true; + enableNushellIntegration = true; + }; + }; +} diff --git a/home/crow/common/core/starship.nix b/home/crow/common/core/starship.nix new file mode 100644 index 0000000..1ac420d --- /dev/null +++ b/home/crow/common/core/starship.nix @@ -0,0 +1,67 @@ +{config, ...}: { + programs.starship = let + raisin_black = "#262932"; + blood_red = "#710000"; + rich_lemon = "#FDF500"; + keppel = "#1AC5B0"; + electric_blue = "#36EBF3"; + blushing_purple = "#9370DB"; + frostbite = "#E455AE"; + steel_pink = "#CB1DCD"; + pale_silver = "#D1C5C0"; + in { + enable = true; + enableZshIntegration = true; + enableNushellIntegration = true; + settings = { + format = "[ ](${rich_lemon})[ CrOS](bg:${rich_lemon} fg:${raisin_black})$username$hostname[ ](fg:${rich_lemon} bg:${blushing_purple})$directory[ ](fg:${blushing_purple} bg:${frostbite})$git_branch$git_status[ ](fg:${frostbite} bg:${steel_pink})$nix_shell[ ](${steel_pink})"; + right_format = "[ ](${rich_lemon})$time[ ](${rich_lemon})"; + + # Left Modules + username = { + disabled = false; + format = "[ $user]($style)"; + style_user = "fg:${keppel} bg:${rich_lemon}"; + style_root = "fg:${blood_red} bg:${rich_lemon}"; + }; + hostname = { + disabled = false; + format = "[@$hostname ]($style)"; + style = "fg:${keppel} bg:${rich_lemon}"; + ssh_only = false; + ssh_symbol = ""; + }; + directory = { + disabled = false; + format = "[ $path ]($style)"; + style = "bg:${blushing_purple} fg:${raisin_black}"; + truncation_length = 3; + truncation_symbol = "…/"; + }; + git_branch = { + disabled = false; + format = "[ $symbol $branch ]($style)"; + symbol = ""; + style = "fg:${raisin_black} bg:${frostbite}"; + }; + git_status = { + disabled = false; + format = "[$all_status$ahead_behind]($style)"; + style = "fg:${raisin_black} bg:${frostbite}"; + }; + nix_shell = { + disabled = false; + format = "[$symbol $name]($style)"; + style = "bg:${steel_pink} fg:${electric_blue}"; + symbol = ""; + }; + + # Right Modules + time = { + disabled = false; + format = "[$time]($style)"; + style = "fg:${raisin_black} bg:${rich_lemon}"; + }; + }; + }; +} diff --git a/hosts/common/core/shell.nix b/hosts/common/core/shell.nix index e2e5c76..fc44f66 100644 --- a/hosts/common/core/shell.nix +++ b/hosts/common/core/shell.nix @@ -19,68 +19,4 @@ nup = "sudo nixos-rebuild switch --flake ."; }; }; - - programs.starship = let - raisin_black = "#262932"; - blood_red = "#710000"; - rich_lemon = "#FDF500"; - keppel = "#1AC5B0"; - electric_blue = "#36EBF3"; - blushing_purple = "#9370DB"; - frostbite = "#E455AE"; - steel_pink = "#CB1DCD"; - pale_silver = "#D1C5C0"; - in { - enable = true; - settings = { - format = "[ ](${rich_lemon})[ CrOS](bg:${rich_lemon} fg:${raisin_black})$username$hostname[ ](fg:${rich_lemon} bg:${blushing_purple})$directory[ ](fg:${blushing_purple} bg:${frostbite})$git_branch$git_status[ ](fg:${frostbite} bg:${steel_pink})$nix_shell[ ](${steel_pink})"; - right_format = "[ ](${rich_lemon})$time[ ](${rich_lemon})"; - - # Left Modules - username = { - disabled = false; - format = "[ $user]($style)"; - style_user = "fg:${keppel} bg:${rich_lemon}"; - style_root = "fg:${blood_red} bg:${rich_lemon}"; - }; - hostname = { - disabled = false; - format = "[@$hostname ]($style)"; - style = "fg:${keppel} bg:${rich_lemon}"; - ssh_only = false; - ssh_symbol = ""; - }; - directory = { - disabled = false; - format = "[ $path ]($style)"; - style = "bg:${blushing_purple} fg:${raisin_black}"; - truncation_length = 3; - truncation_symbol = "…/"; - }; - git_branch = { - disabled = false; - format = "[ $symbol $branch ]($style)"; - symbol = ""; - style = "fg:${raisin_black} bg:${frostbite}"; - }; - git_status = { - disabled = false; - format = "[$all_status$ahead_behind]($style)"; - style = "fg:${raisin_black} bg:${frostbite}"; - }; - nix_shell = { - disabled = false; - format = "[$symbol $name]($style)"; - style = "bg:${steel_pink} fg:${electric_blue}"; - symbol = ""; - }; - - # Right Modules - time = { - disabled = false; - format = "[$time]($style)"; - style = "fg:${raisin_black} bg:${rich_lemon}"; - }; - }; - }; }