Alterar cor do nome do host no prompt do shell Peixe

1

Estou migrando para um novo Mac e estou tendo problemas para configurar meu shell para corresponder ao antigo.

Antigo:

Novo:

Observe que a cor do host é diferente? Copiei toda a pasta .config/fish para o computador, mas ainda não está funcionando. A única diferença que posso pensar é a versão - 2.1.2, vs. 2.5.0. Aqui está o meu fish_prompt.fish :

function fish_prompt --description 'Write out the prompt'

    set -l last_status $status

    # Just calculate these once, to save a few cycles when displaying the prompt
    if not set -q __fish_prompt_hostname
        set -g __fish_prompt_hostname (hostname|cut -d . -f 1)
    end

    if not set -q __fish_prompt_normal
        set -g __fish_prompt_normal (set_color normal)
    end

    if not set -q -g __fish_classic_git_functions_defined
        set -g __fish_classic_git_functions_defined

        function __fish_repaint_user --on-variable fish_color_user --description "Event handler, repaint when fish_color_user changes"
            if status --is-interactive
                set -e __fish_prompt_user
                commandline -f repaint ^/dev/null
            end
        end

        function __fish_repaint_host --on-variable fish_color_host --description "Event handler, repaint when fish_color_host changes"
            if status --is-interactive
                set -e __fish_prompt_host
                commandline -f repaint ^/dev/null
            end
        end

        function __fish_repaint_status --on-variable fish_color_status --description "Event handler; repaint when fish_color_status changes"
            if status --is-interactive
                set -e __fish_prompt_status
                commandline -f repaint ^/dev/null
            end
        end
    end

    set -l delim '>'

    switch $USER

    case root

        if not set -q __fish_prompt_cwd
            if set -q fish_color_cwd_root
                set -g __fish_prompt_cwd (set_color $fish_color_cwd_root)
            else
                set -g __fish_prompt_cwd (set_color $fish_color_cwd)
            end
        end

    case '*'

        if not set -q __fish_prompt_cwd
            set -g __fish_prompt_cwd (set_color $fish_color_cwd)
        end

    end

    set -l prompt_status
    if test $last_status -ne 0
        if not set -q __fish_prompt_status
            set -g __fish_prompt_status (set_color $fish_color_status)
        end
        set prompt_status "$__fish_prompt_status [$last_status]$__fish_prompt_normal"
    end

    if not set -q __fish_prompt_user
        set -g __fish_prompt_user (set_color $fish_color_user)
    end
    if not set -q __fish_prompt_host
        set -g __fish_prompt_host (set_color $fish_color_host)
    end

    echo -n -s "$__fish_prompt_user" "$USER" "$__fish_prompt_normal" @ "$__fish_prompt_host" "$__fish_prompt_hostname" "$__fish_prompt_normal" ' ' "$__fish_prompt_cwd" (prompt_pwd) (__fish_git_prompt) "$__fish_prompt_normal" "$prompt_status" "$delim" ' '
end
    
por brandonscript 20.02.2017 / 07:31

1 resposta

2

Esta é uma consequência das configurações de cor dos peixes serem armazenadas como variáveis universais que são específicas da máquina. Se você olhar no seu diretório ~ / .config / fish você verá um ou mais arquivos chamados fishd. * Onde o caractere curinga corresponde ao endereço mac da interface de rede principal do seu computador. Isso é algo que muitos de nós argumentaram que deveria ser mudado. Veja esta edição . A solução é simplesmente copiar as entradas fish_color_ * do arquivo fishd do seu sistema antigo para o novo.

    
por 21.02.2017 / 06:27

Tags