zshrc.d/20-prompt.zrc
author Mikael Berthe <mikael@lilotux.net>
Wed, 10 Nov 2021 10:45:00 +0100
changeset 53 4767c5a8b1f9
parent 49 06af8cc97cc1
child 59 ab7da88f8fd8
permissions -rw-r--r--
Add stterm key codes
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* ||
53
4767c5a8b1f9 Add stterm key codes
Mikael Berthe <mikael@lilotux.net>
parents: 49
diff changeset
     7
      "$TERM" == st-* ||
49
06af8cc97cc1 Enable Vim mode for rxvt*, xterm*, screen* and tmux*
Mikael Berthe <mikael@lilotux.net>
parents: 44
diff changeset
     8
      "$TERM" == screen* ||
06af8cc97cc1 Enable Vim mode for rxvt*, xterm*, screen* and tmux*
Mikael Berthe <mikael@lilotux.net>
parents: 44
diff changeset
     9
      "$TERM" == tmux* ]]
13
e1da4a7a9e92 More modularization
Mikael Berthe <mikael@lilotux.net>
parents: 11
diff changeset
    10
then
e1da4a7a9e92 More modularization
Mikael Berthe <mikael@lilotux.net>
parents: 11
diff changeset
    11
    export SHOWMODE="on"
e1da4a7a9e92 More modularization
Mikael Berthe <mikael@lilotux.net>
parents: 11
diff changeset
    12
fi
e1da4a7a9e92 More modularization
Mikael Berthe <mikael@lilotux.net>
parents: 11
diff changeset
    13
e1da4a7a9e92 More modularization
Mikael Berthe <mikael@lilotux.net>
parents: 11
diff changeset
    14
15
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    15
# __hg_fast_root()
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    16
# 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
    17
# 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
    18
# Mikael
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    19
function __hg_fast_root() {
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    20
    local checkdir=$PWD
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    21
    local hgdir=".hg"
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    22
    while [[ ${checkdir} != '/' ]]; do
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    23
        [[ -r ${checkdir} ]] || return 1
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    24
        [[ -d ${checkdir}/${hgdir} ]] && return 0
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    25
        checkdir=${checkdir}/..
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    26
        checkdir="${checkdir:A}"
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    27
    done
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    28
    #[[ ${checkdir} == '/' ]] && return 1
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    29
    return 1
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
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    32
# 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
    33
# 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
    34
# 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
    35
# ... but it will be slow
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    36
# (Override in $ZDOTLOCALDIR/zshrc)
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    37
HG_ROOT_CMD=(__hg_fast_root)
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    38
export HG_ROOT_CMD
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    39
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    40
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    41
### Extended prompts
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    42
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    43
function __prompt_path_color {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    44
  local path_color
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    45
  if [[ -O "$PWD" ]]; then
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    46
    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
    47
  elif [[ -w "$PWD" ]]; then
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    48
    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
    49
  else
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    50
    path_color="${fg_bold[red]}"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    51
  fi
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    52
  print "%{$path_color%}"
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
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    55
# 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
    56
function __prompt_char {
15
5f43e2cd8ebe Add hg root shell implementation (__hg_fast_root)
Mikael Berthe <mikael@lilotux.net>
parents: 13
diff changeset
    57
    $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
    58
    __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
    59
    echo '○'
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
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    62
function __hg_prompt_info {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    63
    $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
    64
    hg prompt --angle-brackets "
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    65
<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
    66
>%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
    67
< 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
    68
< 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
    69
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    70
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    71
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
    72
function __git_prompt_info {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    73
  r=$(__git_ps1)
11
ee97df34536f Fix git prompt when showuntrackedfiles is set
Mikael Berthe <mikael@lilotux.net>
parents: 7
diff changeset
    74
  # 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
    75
  r=${r//\%/%%}
44
157f894ef9f7 Add some quotes and double brackets...
Mikael Berthe <mikael@lilotux.net>
parents: 40
diff changeset
    76
  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
    77
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    78
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    79
function __prompt_set_dev {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    80
    # 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
    81
    local -a lines pline
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    82
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    83
    local red="%{$fg[red]%}"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    84
    local cyan="%{$fg[cyan]%}"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    85
    local reset="%{$reset_color%}"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    86
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    87
    # 1re ligne
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    88
    pline+=( "%D{%m%d} " )              # Date
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    89
    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
    90
    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
    91
    pline+=( "%~$reset" )               # Chemin (cwd)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    92
    lines+=( ${(j::)pline} )
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    93
    pline=()
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    94
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    95
    # 2e ligne
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
    96
    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
    97
    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
    98
    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
    99
    pline+=( "%# " )                    # Invite de commande
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   100
    lines+=( ${(j::)pline} )
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   101
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   102
    export PS1=${(F)lines}
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
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   105
function __prompt_set_dev-mikael {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   106
    # 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
   107
    local -a lines pline
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   108
24
a26580f0890a prompt: Update dev-mikael
Mikael Berthe <mikael@lilotux.net>
parents: 18
diff changeset
   109
    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
   110
    local red="%{$fg[red]%}"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   111
    local cyan="%{$fg[cyan]%}"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   112
    local reset="%{$reset_color%}"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   113
24
a26580f0890a prompt: Update dev-mikael
Mikael Berthe <mikael@lilotux.net>
parents: 18
diff changeset
   114
    local return_code="%(?..$cyan!$bred%?$cyan! $reset)"
a26580f0890a prompt: Update dev-mikael
Mikael Berthe <mikael@lilotux.net>
parents: 18
diff changeset
   115
    local sign="%(!.%{$bred%}.$cyan)%#$reset "
a26580f0890a prompt: Update dev-mikael
Mikael Berthe <mikael@lilotux.net>
parents: 18
diff changeset
   116
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   117
    # 1re ligne
24
a26580f0890a prompt: Update dev-mikael
Mikael Berthe <mikael@lilotux.net>
parents: 18
diff changeset
   118
    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
   119
    pline+=( "%D{%m%d} " )              # Date
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   120
    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
   121
    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
   122
    pline+=( "%~$reset" )               # Chemin (cwd)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   123
    lines+=( ${(j::)pline} )
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   124
    pline=()
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   125
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   126
    # 2e ligne
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   127
    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
   128
    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
   129
    [[ -z $_PROMPT__NO_HG_PROMPT ]] &&
7095298e6f7d dev-mikael: Check for hg-prompt extension presence
Mikael Berthe <mikael@lilotux.net>
parents: 15
diff changeset
   130
      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
   131
    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
   132
    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
   133
    lines+=( ${(j::)pline} )
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   134
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   135
    export PS1=${(F)lines}
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
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   138
function precmd {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   139
    case $_PROMPT_DEFINED in
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   140
        dev)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   141
            __prompt_set_dev
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   142
            ;;
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   143
        dev-mikael)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   144
            __prompt_set_dev-mikael
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   145
            ;;
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   146
        dev-vcsinfo)
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   147
            __precmd_vcsinfo
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   148
            ;;
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   149
        esac
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
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   152
function prompt_set_dev-vcsinfo {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   153
    _PROMPT_DEFINED="dev-vcsinfo"
7
c032d39eafcf Move zshrc_vcsinfo to a new directory
Mikael Berthe <mikael@lilotux.net>
parents: 0
diff changeset
   154
    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
   155
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   156
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   157
function __prompt_unset_dev-vcsinfo {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   158
    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
   159
        zstyle ':vcs_info:*' enable NONE
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   160
        unset RPS1
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   161
    fi
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
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   164
function prompt_set_blackwhite {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   165
    # 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
   166
    __prompt_unset_dev-vcsinfo
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   167
    unsetopt prompt_subst
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   168
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   169
    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
   170
[%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
   171
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   172
    export _PROMPT_DEFINED="blackwhite"
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
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   175
function prompt_set_color {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   176
    # 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
   177
    __prompt_unset_dev-vcsinfo
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   178
    unsetopt prompt_subst
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   179
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   180
    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
   181
    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
   182
[%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
   183
    export PS1
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   184
44
157f894ef9f7 Add some quotes and double brackets...
Mikael Berthe <mikael@lilotux.net>
parents: 40
diff changeset
   185
    export _PROMPT_DEFINED="color"
0
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
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   188
function prompt_set_dev {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   189
    __prompt_unset_dev-vcsinfo
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   190
    export _PROMPT_DEFINED="dev"
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   191
}
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   192
function prompt_set_dev-mikael {
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   193
    __prompt_unset_dev-vcsinfo
18
7095298e6f7d dev-mikael: Check for hg-prompt extension presence
Mikael Berthe <mikael@lilotux.net>
parents: 15
diff changeset
   194
    unset _PROMPT__NO_HG_PROMPT
7095298e6f7d dev-mikael: Check for hg-prompt extension presence
Mikael Berthe <mikael@lilotux.net>
parents: 15
diff changeset
   195
    # 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
   196
    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
   197
        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
   198
        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
   199
        _PROMPT__NO_HG_PROMPT=1
7095298e6f7d dev-mikael: Check for hg-prompt extension presence
Mikael Berthe <mikael@lilotux.net>
parents: 15
diff changeset
   200
    }
0
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   201
    export _PROMPT_DEFINED="dev-mikael"
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
7215ca490221 Re-import repository after cleanup from personal stuff (see description)
Mikael Berthe <mikael@lilotux.net>
parents:
diff changeset
   205
# 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
   206
prompt_set_color