diff options
Diffstat (limited to 'users/seth')
| -rw-r--r-- | users/seth/programs/default.nix | 2 | ||||
| -rw-r--r-- | users/seth/programs/fish/default.nix (renamed from users/seth/programs/fish.nix) | 18 | ||||
| -rw-r--r-- | users/seth/programs/fish/fish_prompt.fish | 44 | ||||
| -rw-r--r-- | users/seth/programs/starship/default.nix | 1 |
4 files changed, 47 insertions, 18 deletions
diff --git a/users/seth/programs/default.nix b/users/seth/programs/default.nix index 3785712..945edbe 100644 --- a/users/seth/programs/default.nix +++ b/users/seth/programs/default.nix @@ -12,7 +12,7 @@ ./bash.nix ./chromium.nix ./firefox - ./fish.nix + ./fish ./gh.nix ./git.nix ./gpg.nix diff --git a/users/seth/programs/fish.nix b/users/seth/programs/fish/default.nix index 1c72865..84b9370 100644 --- a/users/seth/programs/fish.nix +++ b/users/seth/programs/fish/default.nix @@ -1,7 +1,6 @@ { config, lib, - pkgs, ... }: let @@ -10,9 +9,6 @@ in { options.seth.programs.fish = { enable = lib.mkEnableOption "Fish configuration"; - withPlugins = lib.mkEnableOption "Fish plugins" // { - default = true; - }; }; config = lib.mkIf cfg.enable ( @@ -23,6 +19,7 @@ in functions = { last_history_item.body = "echo $history[1]"; + fish_prompt = lib.readFile ./fish_prompt.fish; }; shellAbbrs = { @@ -46,19 +43,6 @@ in ''; }; }) - - (lib.mkIf cfg.withPlugins { - programs.fish = { - plugins = - let - useFishPlugins = map (plugin: { - name = plugin; - inherit (pkgs.fishPlugins.${plugin}) src; - }); - in - useFishPlugins [ "autopair" ]; - }; - }) ] ); } diff --git a/users/seth/programs/fish/fish_prompt.fish b/users/seth/programs/fish/fish_prompt.fish new file mode 100644 index 0000000..5bee872 --- /dev/null +++ b/users/seth/programs/fish/fish_prompt.fish @@ -0,0 +1,44 @@ +# SPDX-SnippetCopyrightText: Lily Ballard +# +# SPDX-License-Identifier: GPL-2.0-only +# +# https://github.com/fish-shell/fish-shell/blob/b570c7f6a6a6b9c5c6638d5bc86943342f7d5b5a/share/functions/fish_prompt.fish + +function fish_prompt --description 'Write out the prompt' + set -l last_pipestatus $pipestatus + set -lx __fish_last_status $status # Export for __fish_print_pipestatus. + set -l normal (set_color normal) + set -q fish_color_status + or set -g fish_color_status red + + # Color the prompt differently when we're root + set -l color_cwd $fish_color_cwd + set -l suffix '>' + if functions -q fish_is_root_user; and fish_is_root_user + if set -q fish_color_cwd_root + set color_cwd $fish_color_cwd_root + end + set suffix '#' + end + + # Write pipestatus + # If the status was carried over (if no command is issued or if `set` leaves the status untouched), don't bold it. + set -l bold_flag --bold + set -q __fish_prompt_status_generation; or set -g __fish_prompt_status_generation $status_generation + if test $__fish_prompt_status_generation = $status_generation + set bold_flag + end + set __fish_prompt_status_generation $status_generation + set -l status_color (set_color $fish_color_status) + set -l statusb_color (set_color $bold_flag $fish_color_status) + set -l prompt_status (__fish_print_pipestatus "[" "]" "|" "$status_color" "$statusb_color" $last_pipestatus) + + set -l snowflake '❄️' + set -l nix_shell_info ( + if test -n "$IN_NIX_SHELL" + echo -n -s $snowflake" " + end + ) + + echo -n -s (prompt_login)' ' (set_color $color_cwd) (prompt_pwd) $normal (fish_vcs_prompt) $normal " " $nix_shell_info $prompt_status $suffix " " +end diff --git a/users/seth/programs/starship/default.nix b/users/seth/programs/starship/default.nix index fd455f0..edd35c7 100644 --- a/users/seth/programs/starship/default.nix +++ b/users/seth/programs/starship/default.nix @@ -18,6 +18,7 @@ in catppuccin.enable = false; enableBashIntegration = false; + enableFishIntegration = false; enableZshIntegration = false; settings = { |
