zshrc.d/20-prompt.zrc
author Mikael Berthe <mikael@lilotux.net>
Sun, 02 May 2021 13:01:15 +0200
changeset 49 06af8cc97cc1
parent 44 157f894ef9f7
child 53 4767c5a8b1f9
permissions -rw-r--r--
Enable Vim mode for rxvt*, xterm*, screen* and tmux*
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     1
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     2
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
     3
13
e1da4a7a9e92 More modularization
Mikael Berthe <mikael@lilotux.net>
parents: 11
diff changeset
     4
# Enable my Vim-like mode for supported terms
49
06af8cc97cc1 Enable Vim mode for rxvt*, xterm*, screen* and tmux*
Mikael Berthe <mikael@lilotux.net>
parents: 44
diff changeset
     5
if [[ "$TERM" == rxvt* ||
06af8cc97cc1 Enable Vim mode for rxvt*, xterm*, screen* and tmux*
Mikael Berthe <mikael@lilotux.net>
parents: 44
diff changeset
     6
      "$TERM" == xterm* ||
06af8cc97cc1 Enable Vim mode for rxvt*, xterm*, screen* and tmux*
Mikael Berthe <mikael@lilotux.net>
parents: 44
diff changeset
     7
      "$TERM" == screen* ||
06af8cc97cc1 Enable Vim mode for rxvt*, xterm*, screen* and tmux*
Mikael Berthe <mikael@lilotux.net>
parents: 44
diff changeset
     8
      "$TERM" == tmux* ]]
13
e1da4a7a9e92 More modularization
Mikael Berthe <mikael@lilotux.net>
parents: 11
diff changeset
     9
then
e1da4a7a9e92 More modularization
Mikael Berthe <mikael@lilotux.net>
parents: 11
diff changeset
    10
    export SHOWMODE="on"
e1da4a7a9e92 More modularization
Mikael Berthe <mikael@lilotux.net>
parents: 11
diff changeset
    11
fi
e1da4a7a9e92 More modularization
Mikael Berthe <mikael@lilotux.net>
parents: 11
diff changeset
    12
e1da4a7a9e92 More modularization
Mikael Berthe <mikael@lilotux.net>
parents: 11
diff changeset
    13
15
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    14
# __hg_fast_root()
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    15
# My shell implementation of fast_hg_root.
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    16
# Please let me now if it can be improved.
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    17
# Mikael
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    18
function __hg_fast_root() {
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    19
    local checkdir=$PWD
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    20
    local hgdir=".hg"
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    21
    while [[ ${checkdir} != '/' ]]; do
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    22
        [[ -r ${checkdir} ]] || return 1
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    23
        [[ -d ${checkdir}/${hgdir} ]] && return 0
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    24
        checkdir=${checkdir}/..
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    25
        checkdir="${checkdir:A}"
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    26
    done
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    27
    #[[ ${checkdir} == '/' ]] && return 1
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    28
    return 1
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    29
}
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    30
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    31
# You can use fast_hg_root from https://bitbucket.org/yaniv_aknin/fast_hg_root
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    32
# or maybe use the command false if you don't use Mercurial at all.
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    33
# You can also use the actual hg command: HG_ROOT_CMD=("hg" "root")
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    34
# ... but it will be slow
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    35
# (Override in $ZDOTLOCALDIR/zshrc)
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    36
HG_ROOT_CMD=(__hg_fast_root)
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    37
export HG_ROOT_CMD
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    38
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    39
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    40
### Extended prompts
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    41
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    42
function __prompt_path_color {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    43
  local path_color
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    44
  if [[ -O "$PWD" ]]; then
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    45
    path_color="${fg_no_bold[magenta]}"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    46
  elif [[ -w "$PWD" ]]; then
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    47
    path_color="${fg_no_bold[blue]}"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    48
  else
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    49
    path_color="${fg_bold[red]}"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    50
  fi
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    51
  print "%{$path_color%}"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    52
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    53
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    54
# From http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    55
function __prompt_char {
15
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    56
    $HG_ROOT_CMD >/dev/null 2>/dev/null && echo '☿' && return
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    57
    __gitdir >/dev/null 2>/dev/null && echo '±' && return
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    58
    echo '○'
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    59
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    60
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    61
function __hg_prompt_info {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    62
    $HG_ROOT_CMD >/dev/null 2>/dev/null && 
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    63
    hg prompt --angle-brackets "
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    64
<HG patches: <patches|join(  )|pre_applied(%{$fg[yellow]%})|post_applied(%{$reset_color%})|pre_unapplied(%{$fg[cyan]%})|post_unapplied(%{$reset_color%})>
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    65
>%BHG%b<(%{$fg[green]%}<status|modified|unknown>%{$reset_color%})><%{$fg[green]%}<update>%{$reset_color%}>\
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    66
< on %{$fg[magenta]%}<branch|quiet>%{$reset_color%}>\
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    67
< at %{$fg[yellow]%}<tags|%{$reset_color%}, %{$fg[yellow]%}>%{$reset_color%}>" 2>/dev/null
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    68
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    69
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    70
source $ZDOTDIR/tools/git-prompt.sh > /dev/null 2>&1
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    71
function __git_prompt_info {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    72
  r=$(__git_ps1)
11
ee97df34536f Fix git prompt when showuntrackedfiles is set
Mikael Berthe <mikael@lilotux.net>
parents: 7
diff changeset
    73
  # If GIT_PS1_SHOWUNTRACKEDFILES is used, we need to escape the %
ee97df34536f Fix git prompt when showuntrackedfiles is set
Mikael Berthe <mikael@lilotux.net>
parents: 7
diff changeset
    74
  r=${r//\%/%%}
44
157f894ef9f7 Add some quotes and double brackets...
Mikael Berthe <mikael@lilotux.net>
parents: 40
diff changeset
    75
  if [[ ! -z $r ]]; then echo -e "\n%Bgit%b$r"; fi
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    76
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    77
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    78
function __prompt_set_dev {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    79
    # Prompt complet sur 2 lignes, couleurs, avec un indicateur de dépôt git/hg
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    80
    local -a lines pline
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    81
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    82
    local red="%{$fg[red]%}"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    83
    local cyan="%{$fg[cyan]%}"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    84
    local reset="%{$reset_color%}"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    85
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    86
    # 1re ligne
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    87
    pline+=( "%D{%m%d} " )              # Date
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    88
    pline+=( "$cyan%D{%H:%M}$reset " )  # Time
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    89
    pline+=( $(__prompt_path_color) )   # Couleur du chemin dynamique
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    90
    pline+=( "%~$reset" )               # Chemin (cwd)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    91
    lines+=( ${(j::)pline} )
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    92
    pline=()
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    93
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    94
    # 2e ligne
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    95
    pline+=( "[%B%n%b] " )              # Nom d'utilisateur
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    96
    pline+=( "$red%m$reset" )           # Nom de machine
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    97
    pline+=( $(__prompt_char) )         # Indicateur de dépôt (hg/git)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    98
    pline+=( "%# " )                    # Invite de commande
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    99
    lines+=( ${(j::)pline} )
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   100
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   101
    export PS1=${(F)lines}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   102
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   103
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   104
function __prompt_set_dev-mikael {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   105
    # Prompt complet sur 2 ou 3 lignes, avec informations sur les dépôts git/hg
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   106
    local -a lines pline
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   107
24
a26580f0890a prompt: Update dev-mikael
Mikael Berthe <mikael@lilotux.net>
parents: 18
diff changeset
   108
    local bred="%{${fg_bold[red]}%}"
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   109
    local red="%{$fg[red]%}"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   110
    local cyan="%{$fg[cyan]%}"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   111
    local reset="%{$reset_color%}"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   112
24
a26580f0890a prompt: Update dev-mikael
Mikael Berthe <mikael@lilotux.net>
parents: 18
diff changeset
   113
    local return_code="%(?..$cyan!$bred%?$cyan! $reset)"
a26580f0890a prompt: Update dev-mikael
Mikael Berthe <mikael@lilotux.net>
parents: 18
diff changeset
   114
    local sign="%(!.%{$bred%}.$cyan)%#$reset "
a26580f0890a prompt: Update dev-mikael
Mikael Berthe <mikael@lilotux.net>
parents: 18
diff changeset
   115
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   116
    # 1re ligne
24
a26580f0890a prompt: Update dev-mikael
Mikael Berthe <mikael@lilotux.net>
parents: 18
diff changeset
   117
    pline+=( $return_code )             # Code erreur
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   118
    pline+=( "%D{%m%d} " )              # Date
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   119
    pline+=( "$cyan%D{%H:%M}$reset " )  # Time
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   120
    pline+=( $(__prompt_path_color) )   # Couleur du chemin dynamique
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   121
    pline+=( "%~$reset" )               # Chemin (cwd)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   122
    lines+=( ${(j::)pline} )
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   123
    pline=()
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   124
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   125
    # 2e ligne
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   126
    pline+=( "[%B%n%b] " )              # Nom d'utilisateur
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   127
    pline+=( "$red%m$reset" )           # Nom de machine
18
7095298e6f7d dev-mikael: Check for hg-prompt extension presence
Mikael Berthe <mikael@lilotux.net>
parents: 15
diff changeset
   128
    [[ -z $_PROMPT__NO_HG_PROMPT ]] &&
7095298e6f7d dev-mikael: Check for hg-prompt extension presence
Mikael Berthe <mikael@lilotux.net>
parents: 15
diff changeset
   129
      pline+=( "$(__hg_prompt_info)" )  # Informations de dépôt Mercurial
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   130
    pline+=( "$(__git_prompt_info)" )   # Informations de dépôt git
24
a26580f0890a prompt: Update dev-mikael
Mikael Berthe <mikael@lilotux.net>
parents: 18
diff changeset
   131
    pline+=( $sign )                    # Invite de commande
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   132
    lines+=( ${(j::)pline} )
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   133
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   134
    export PS1=${(F)lines}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   135
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   136
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   137
function precmd {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   138
    case $_PROMPT_DEFINED in
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   139
        dev)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   140
            __prompt_set_dev
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   141
            ;;
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   142
        dev-mikael)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   143
            __prompt_set_dev-mikael
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   144
            ;;
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   145
        dev-vcsinfo)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   146
            __precmd_vcsinfo
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   147
            ;;
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   148
        esac
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   149
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   150
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   151
function prompt_set_dev-vcsinfo {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   152
    _PROMPT_DEFINED="dev-vcsinfo"
7
c032d39eafcf Move zshrc_vcsinfo to a new directory
Mikael Berthe <mikael@lilotux.net>
parents: 0
diff changeset
   153
    source $ZDOTDIR/misc/zshrc_vcsinfo
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   154
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   155
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   156
function __prompt_unset_dev-vcsinfo {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   157
    if [[ $_PROMPT_DEFINED == "dev-vcsinfo" ]]; then
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   158
        zstyle ':vcs_info:*' enable NONE
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   159
        unset RPS1
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   160
    fi
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   161
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   162
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   163
function prompt_set_blackwhite {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   164
    # Prompt complet sur 2 lignes, N&B
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   165
    __prompt_unset_dev-vcsinfo
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   166
    unsetopt prompt_subst
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   167
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   168
    export PS1="%D{%m%d %H:%M} %B%~%b
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   169
[%B%n%b:%l] %S%m%s%# "
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   170
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   171
    export _PROMPT_DEFINED="blackwhite"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   172
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   173
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   174
function prompt_set_color {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   175
    # Prompt complet sur 2 lignes, couleurs
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   176
    __prompt_unset_dev-vcsinfo
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   177
    unsetopt prompt_subst
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   178
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   179
    PS1="%D{%m%d} %{$fg[cyan]%}%D{%H:%M}%{$reset_color%} "
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   180
    PS1=$PS1"%{$fg[magenta]%}%~%{$reset_color%}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   181
[%B%n%b:%l] %{$fg[red]%}%m%{$reset_color%}%# "
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   182
    export PS1
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   183
44
157f894ef9f7 Add some quotes and double brackets...
Mikael Berthe <mikael@lilotux.net>
parents: 40
diff changeset
   184
    export _PROMPT_DEFINED="color"
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   185
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   186
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   187
function prompt_set_dev {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   188
    __prompt_unset_dev-vcsinfo
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   189
    export _PROMPT_DEFINED="dev"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   190
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   191
function prompt_set_dev-mikael {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   192
    __prompt_unset_dev-vcsinfo
18
7095298e6f7d dev-mikael: Check for hg-prompt extension presence
Mikael Berthe <mikael@lilotux.net>
parents: 15
diff changeset
   193
    unset _PROMPT__NO_HG_PROMPT
7095298e6f7d dev-mikael: Check for hg-prompt extension presence
Mikael Berthe <mikael@lilotux.net>
parents: 15
diff changeset
   194
    # Let's check we have the hg-prompt extension
7095298e6f7d dev-mikael: Check for hg-prompt extension presence
Mikael Berthe <mikael@lilotux.net>
parents: 15
diff changeset
   195
    hg showconfig extensions 2> /dev/null | grep -q "^extensions.prompt=" || {
7095298e6f7d dev-mikael: Check for hg-prompt extension presence
Mikael Berthe <mikael@lilotux.net>
parents: 15
diff changeset
   196
        print "You need the hg-prompt extension from Steve Losh." >&2
7095298e6f7d dev-mikael: Check for hg-prompt extension presence
Mikael Berthe <mikael@lilotux.net>
parents: 15
diff changeset
   197
        print "Check http://bitbucket.org/sjl/hg-prompt/" >&2
7095298e6f7d dev-mikael: Check for hg-prompt extension presence
Mikael Berthe <mikael@lilotux.net>
parents: 15
diff changeset
   198
        _PROMPT__NO_HG_PROMPT=1
7095298e6f7d dev-mikael: Check for hg-prompt extension presence
Mikael Berthe <mikael@lilotux.net>
parents: 15
diff changeset
   199
    }
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   200
    export _PROMPT_DEFINED="dev-mikael"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   201
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   202
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   203
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   204
# Invite de commande par défaut
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   205
prompt_set_color