Cygwin 自定义主题

CListery ARE YOU OK?

定制一个自己喜欢的主题,展示一些个性化的内容

步骤

  1. 官方自带的主题文件在 .oh-my-zsh/themes 目录下,可以通过 omz theme list 命令查看所有可用的主题

  2. 先通过 omz theme set {theme_name} 命令设置主题,找到一个最贴切自己喜好的主题

  3. 然后可以再查看 .oh-my-zsh/themes 下同名的主题文件,复制到 .oh-my-zsh/custom/themes 目录并改名即可

  4. 编辑刚才创建的文件内容,并修改其内部样式直至完美,通过 omz theme set {theme_name} 命令设置自定义主题即可

最后贴一份我自己的主题文件

  • 效果

    1
    2
    # clistery @ work in ~ on git:master x [ababa112] [10:09:31] C:0
    $
  • cyh.zsh-theme

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    # Clean, simple, compatible and meaningful.
    # Tested on Linux, Unix and Windows under ANSI colors.
    # It is recommended to use with a dark background.
    # Colors: black, red, green, yellow, *blue, magenta, cyan, and white.
    #
    # Nov 2022 CListery

    RED=$fg[red]
    YELLOW=$fg[yellow]
    GREEN=$fg[green]
    WHITE=$fg[white]
    BLUE=$fg[blue]
    RED_BOLD=$fg_bold[red]
    YELLOW_BOLD=$fg_bold[yellow]
    GREEN_BOLD=$fg_bold[green]
    WHITE_BOLD=$fg_bold[white]
    BLUE_BOLD=$fg_bold[blue]
    RESET_COLOR=$reset_color

    # VCS
    CL_VCS_PROMPT_PREFIX1=" %{$reset_color%}on%{$fg[blue]%} "
    CL_VCS_PROMPT_PREFIX2=":%{$fg[cyan]%}"
    CL_VCS_PROMPT_SUFFIX="%{$reset_color%}"
    CL_VCS_PROMPT_DIRTY=" %{$RED%}x"
    CL_VCS_PROMPT_CLEAN=" %{$GREEN%}o"

    # Git info
    local git_info='$(git_prompt_info)$(git_prompt_short_sha)'
    ZSH_THEME_GIT_PROMPT_PREFIX="${CL_VCS_PROMPT_PREFIX1}git${CL_VCS_PROMPT_PREFIX2}"
    ZSH_THEME_GIT_PROMPT_SUFFIX="$CL_VCS_PROMPT_SUFFIX"
    ZSH_THEME_GIT_PROMPT_DIRTY="$CL_VCS_PROMPT_DIRTY"
    ZSH_THEME_GIT_PROMPT_CLEAN="$CL_VCS_PROMPT_CLEAN"
    # Format for git_prompt_long_sha() and git_prompt_short_sha()
    ZSH_THEME_GIT_PROMPT_SHA_BEFORE=" %{$reset_color%}%{$fg[white]%}[%{$YELLOW%}"
    ZSH_THEME_GIT_PROMPT_SHA_AFTER="%{$fg[white]%}]"

    # SVN info
    local svn_info='$(svn_prompt_info)'
    ZSH_THEME_SVN_PROMPT_PREFIX="${CL_VCS_PROMPT_PREFIX1}svn${CL_VCS_PROMPT_PREFIX2}"
    ZSH_THEME_SVN_PROMPT_SUFFIX="$CL_VCS_PROMPT_SUFFIX"
    ZSH_THEME_SVN_PROMPT_DIRTY="$CL_VCS_PROMPT_DIRTY"
    ZSH_THEME_SVN_PROMPT_CLEAN="$CL_VCS_PROMPT_CLEAN"

    # HG info
    local hg_info='$(cl_hg_prompt_info)'
    cl_hg_prompt_info() {
    # make sure this is a hg dir
    if [ -d '.hg' ]; then
    echo -n "${CL_VCS_PROMPT_PREFIX1}hg${CL_VCS_PROMPT_PREFIX2}"
    echo -n $(hg branch 2>/dev/null)
    if [[ "$(hg config oh-my-zsh.hide-dirty 2>/dev/null)" != "1" ]]; then
    if [ -n "$(hg status 2>/dev/null)" ]; then
    echo -n "$CL_VCS_PROMPT_DIRTY"
    else
    echo -n "$CL_VCS_PROMPT_CLEAN"
    fi
    fi
    echo -n "$CL_VCS_PROMPT_SUFFIX"
    fi
    }

    # Virtualenv
    local venv_info='$(virtenv_prompt)'
    CL_THEME_VIRTUALENV_PROMPT_PREFIX=" %{$GREEN%}"
    CL_THEME_VIRTUALENV_PROMPT_SUFFIX=" %{$reset_color%}%"
    virtenv_prompt() {
    [[ -n "${VIRTUAL_ENV:-}" ]] || return
    echo "${CL_THEME_VIRTUALENV_PROMPT_PREFIX}${VIRTUAL_ENV:t}${CL_THEME_VIRTUALENV_PROMPT_SUFFIX}"
    }

    local exit_code="%(?,,C:%{$RED%}%?%{$reset_color%})"

    # Prompt format:
    #
    # PRIVILEGES USER @ MACHINE in DIRECTORY on git:BRANCH STATE [SHA] [TIME] C:LAST_EXIT_CODE
    # $ COMMAND
    #
    # For example:
    #
    # % clistery @ work in ~ on git:master x [ababa112] [10:09:31] C:0
    # $
    PROMPT="
    %{$terminfo[bold]$fg[blue]%}#%{$reset_color%} \
    %(#,%{$bg[yellow]%}%{$fg[black]%}%n%{$reset_color%},%{$fg[cyan]%}%n) \
    %{$reset_color%}@ \
    %{$GREEN%}%m \
    %{$reset_color%}in \
    %{$terminfo[bold]$YELLOW%}%~%{$reset_color%}\
    ${hg_info}\
    ${git_info}\
    ${svn_info}\
    ${venv_info}\
    \
    [%*] $exit_code
    %{$terminfo[bold]$RED%}$ %{$reset_color%}"
  • 标题: Cygwin 自定义主题
  • 作者: CListery
  • 创建于 : 2023-02-16 10:03:20
  • 更新于 : 2024-11-15 15:53:32
  • 链接: http://clistery.github.io/2023/02/16/cygwin/customize-theme-cygwin/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论