Como personalizar um segmento de powerline (para o layout Bash shell $ PS1, especificamente)?

1

De acordo com o documentário, powerline use ~/.config/powerline/config.json para configurações. Como não gosto muito do layout de $PS1 por padrão, fiz algumas alterações na palavra-chave cwd da seguinte forma. No entanto, a personalização não foi aplicada. Fiz algo de errado? Geralmente, como personalizar um segmento em powerline ?

{
    "powerline":{
        "segments":{
            "shell":{
                "cwd":{
                    "dir_shorten_len": 4,
                    "dir_limit_depth": 3
                }
            }
        }
    }
}
    
por Chong 08.09.2015 / 11:35

1 resposta

2

Você precisa modificar um dos arquivos de configuração do tema em config-directory/themes/ (presumivelmente ~/.config/powerline/themes/ em seu sistema)

Uma maneira de fazer isso é colocar algo assim em config-directory/themes/shell/__main__.json

{
    "segment_data": {
        "cwd": {
            "args": {
                "dir_shorten_len": 4,
                "dir_limit_depth": 3
            }
        }
    }
}

Isso define os argumentos padrão para a função cwd quando chamado da extensão shell , mas você ainda pode substituir um argumento diferente no arquivo de configuração do tema.

por exemplo, config-directory/themes/shell/default.json :

{
    "segments": {
        "left": [
            ...other-segments...
            {
                "function": "powerline.segments.shell.cwd",
                "priority": 10,
                "args": {
                    "dir_shorten_len": 1,
                    "dir_limit_depth": 5
                }
            }
        ],
        "right": [
            ...right-segments...
        ]
    }
}

Além disso, além de powerline.segments.shell.cwd , há também o mais geral powerline.segments.common.env.cwd . Para essa função, você poderia colocar argumentos padrão em config-directory/themes/powerline.json , o que afetaria não apenas a extensão shell , mas qualquer outra que usasse powerline.segments.common.env.cwd .

Observe que as chamadas para powerline.segments.shell.cwd ainda respeitam powerline.segments.common.env.cwd default args, a menos que sejam substituídas em algum lugar mais específico.

    
por 19.03.2016 / 17:00

Tags