diff --git a/config/fish/functions/fish_prompt.fish b/config/fish/functions/fish_prompt.fish new file mode 100644 index 0000000..13a97b1 --- /dev/null +++ b/config/fish/functions/fish_prompt.fish @@ -0,0 +1,32 @@ +set -l last_pipestatus $pipestatus +set -lx __fish_last_status $status # Export for __fish_print_pipestatus. +set -l normal (set_color normal) + +# 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 + +# If we're running via SSH, change the host color. +set -l color_host $fish_color_host +#if set -q SSH_TTY +# set color_host $fish_color_host_remote +#end + +# Write pipestatus +# If the status was carried over (e.g. after `set`), 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 prompt_status (__fish_print_pipestatus "[" "]" "|" (set_color $fish_color_status) (set_color $bold_flag $fish_color_status) $last_pipestatus) + +echo -n -s (set_color $fish_color_user) "$USER" $normal (set_color $fish_color_separator) @ $normal (set_color $color_host) (prompt_hostname) $normal ' ' (set_color $color_cwd) (prompt_pwd) $normal (fish_vcs_prompt) $normal " "$prompt_status $suffix " " +#echo -n -s (set_color --bold red) "$USER" $normal (set_color --bold yellow) @ $normal (set_color cyan) (prompt_hostname) $normal ' ' (set_color yellow) (prompt_pwd) $normal (fish_vcs_prompt) $normal " "$prompt_status $suffix " " diff --git a/home-manager.nix b/home-manager.nix index 56fc36b..81a6299 100644 --- a/home-manager.nix +++ b/home-manager.nix @@ -26,33 +26,7 @@ set fish_greeting "Good Morning! Nice day for fishing ain't it! Hu ha!" wget = "wget -c"; }; functions = { - fish_prompt = - '' - # Defined in /home/marc/.config/fish/functions/fish_prompt.fish @ line 2 - # slightly modified from defaults - set -l last_pipestatus $pipestatus - set -lx __fish_last_status $status # Export for __fish_print_pipestatus. - set -l normal (set_color normal) - - # Color the prompt differently when we're root - set -l color_cwd $fish_color_cwd - set -l suffix '>' - - # If we're running via SSH, change the host color. - set -l color_host $fish_color_host - - # Write pipestatus - # If the status was carried over (e.g. after `set`), 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 prompt_status (__fish_print_pipestatus "[" "]" "|" (set_color $fish_color_status) (set_color $bold_flag $fish_color_status) $last_pipestatus) - - echo -n -s (set_color $fish_color_user) "$USER" $normal (set_color $fish_color_separator) @ $normal (set_color $color_host) (prompt_hostname) $normal ' ' (set_color $color_cwd) (prompt_pwd) $normal (fish_vcs_prompt) $normal " "$prompt_status $suffix " " - ''; + fish_prompt = (builtins.readFile ./config/fish/functions/fish_prompt.fish); }; }; };