Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2aa689724c |
43
readme.md
43
readme.md
@@ -1,43 +0,0 @@
|
|||||||
# Installation of zsh (z-shell) with oh-my-zsh in Arch Linux
|
|
||||||
|
|
||||||
## Preparation
|
|
||||||
|
|
||||||
You would like to install the package manager `yay` instead of `pacman` first:
|
|
||||||
|
|
||||||
#### Yay installation
|
|
||||||
|
|
||||||
```
|
|
||||||
sudo pacman -S --needed git base-devel
|
|
||||||
git clone https://aur.archlinux.org/yay.git
|
|
||||||
cd yay
|
|
||||||
makepkg -si
|
|
||||||
```
|
|
||||||
You can find support at https://github.com/Jguer/yay
|
|
||||||
|
|
||||||
#### Installation
|
|
||||||
|
|
||||||
```
|
|
||||||
yay oh-my-zsh
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Configuration
|
|
||||||
|
|
||||||
Copy the file `smd.zsh-theme` of this repository to the `themes` directory, like
|
|
||||||
```
|
|
||||||
sudo wget -P /usr/share/oh-my-zsh/themes https://git.kuschel.at/public/smd.zsh-theme/releases/download/1.0/smd.zsh-theme
|
|
||||||
```
|
|
||||||
Then copy the zsh template `zshrc` to your home directory
|
|
||||||
```
|
|
||||||
cp /usr/share/oh-my-zsh/zshrc ~/.zshrc
|
|
||||||
```
|
|
||||||
Now you have to edit this file with e.g. `nano -cl ~/.zshrc`
|
|
||||||
an` replace the line with ZSH_THEME to:
|
|
||||||
```
|
|
||||||
ZSH_THEME="smd"
|
|
||||||
```
|
|
||||||
In addition, I like to replace the HIST_STAMPS to:
|
|
||||||
```
|
|
||||||
HIST_STAMPS="yyyy-mm-dd"
|
|
||||||
```
|
|
||||||
|
|
||||||
-- eof --
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
# smd.zsh-theme, based on smt.zsh-theme, based on dogenpunk by Matthew Nelson.
|
# smd.zsh-theme by Thomas Kuschel, based on smt.zsh-theme, based on dogenpunk by Matthew Nelson.
|
||||||
REPORTTIME=3
|
|
||||||
MODE_INDICATOR="%{$fg_bold[red]%}❮%{$reset_color%}%{$fg[red]%}❮❮%{$reset_color%}"
|
MODE_INDICATOR="%{$fg_bold[red]%}❮%{$reset_color%}%{$fg[red]%}❮❮%{$reset_color%}"
|
||||||
local return_status="%{$fg[red]%}%(?..%?⏎)%{$reset_color%} "
|
local return_status="%{$fg[red]%}%(?..%?⏎)%{$reset_color%} "
|
||||||
|
|
||||||
@@ -21,7 +21,7 @@ ZSH_THEME_GIT_PROMPT_SHA_BEFORE="➤ %{$fg_bold[yellow]%}"
|
|||||||
ZSH_THEME_GIT_PROMPT_SHA_AFTER="%{$reset_color%}"
|
ZSH_THEME_GIT_PROMPT_SHA_AFTER="%{$reset_color%}"
|
||||||
|
|
||||||
function prompt_char() {
|
function prompt_char() {
|
||||||
command git branch &>/dev/null && echo "%{$fg[green]%}±%{$reset_color%}" || echo "%{$fg[cyan]%}◯%{$reset_color%}"
|
command git branch &>/dev/null && echo "%{$fg[green]%}±%{$reset_color%}" || echo "%{$fg[cyan]%}◯%{$reset_color%}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Colors vary depending on time lapsed.
|
# Colors vary depending on time lapsed.
|
||||||
@@ -33,48 +33,48 @@ ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL="%{$fg[cyan]%}"
|
|||||||
# Determine the time since last commit. If branch is clean,
|
# Determine the time since last commit. If branch is clean,
|
||||||
# use a neutral color, otherwise colors will vary according to time.
|
# use a neutral color, otherwise colors will vary according to time.
|
||||||
function git_time_since_commit() {
|
function git_time_since_commit() {
|
||||||
local COLOR MINUTES HOURS DAYS SUB_HOURS SUB_MINUTES
|
local COLOR MINUTES HOURS DAYS SUB_HOURS SUB_MINUTES
|
||||||
local last_commit seconds_since_last_commit
|
local last_commit now seconds_since_last_commit
|
||||||
|
|
||||||
# Only proceed if there is actually a commit
|
# Only proceed if there is actually a commit
|
||||||
if ! last_commit=$(command git -c log.showSignature=false log --pretty=format:'%at' -1 2>/dev/null); then
|
if ! last_commit=$(command git -c log.showSignature=false log --pretty=format:'%at' -1 2>/dev/null); then
|
||||||
echo "[$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL~%{$reset_color%}]"
|
echo "[$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL~%{$reset_color%}]"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Totals
|
# Totals
|
||||||
seconds_since_last_commit=$(( $(date +%s) - last_commit ))
|
now=$(date +%s)
|
||||||
MINUTES=$(( seconds_since_last_commit / 60 ))
|
seconds_since_last_commit=$(( now - last_commit ))
|
||||||
HOURS=$(( MINUTES / 60 ))
|
MINUTES=$(( seconds_since_last_commit / 60 ))
|
||||||
|
HOURS=$(( MINUTES / 60 ))
|
||||||
|
|
||||||
# Sub-hours and sub-minutes
|
# Sub-hours and sub-minutes
|
||||||
DAYS=$(( HOURS / 24 ))
|
DAYS=$(( HOURS / 24 ))
|
||||||
SUB_HOURS=$(( HOURS % 24 ))
|
SUB_HOURS=$(( HOURS % 24 ))
|
||||||
SUB_MINUTES=$(( MINUTES % 60 ))
|
SUB_MINUTES=$(( MINUTES % 60 ))
|
||||||
|
|
||||||
if [[ -z "$(command git status -s 2>/dev/null)" ]]; then
|
if [[ -z "$(command git status -s 2>/dev/null)" ]]; then
|
||||||
COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL"
|
COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL"
|
||||||
else
|
else
|
||||||
if [[ "$MINUTES" -gt 30 ]]; then
|
if [[ "$MINUTES" -gt 30 ]]; then
|
||||||
COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG"
|
COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG"
|
||||||
elif [[ "$MINUTES" -gt 10 ]]; then
|
elif [[ "$MINUTES" -gt 10 ]]; then
|
||||||
COLOR="$ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM"
|
COLOR="$ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM"
|
||||||
else
|
else
|
||||||
COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_SHORT"
|
COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_SHORT"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$HOURS" -gt 24 ]]; then
|
if [[ "$HOURS" -gt 24 ]]; then
|
||||||
echo "[${COLOR}${DAYS}d${SUB_HOURS}h${SUB_MINUTES}m%{$reset_color%}]"
|
echo "[${COLOR}${DAYS}d${SUB_HOURS}h${SUB_MINUTES}m%{$reset_color%}]"
|
||||||
elif [[ "$MINUTES" -gt 60 ]]; then
|
elif [[ "$MINUTES" -gt 60 ]]; then
|
||||||
echo "[${COLOR}${HOURS}h${SUB_MINUTES}m%{$reset_color%}]"
|
echo "[${COLOR}${HOURS}h${SUB_MINUTES}m%{$reset_color%}]"
|
||||||
else
|
else
|
||||||
echo "[${COLOR}${MINUTES}m%{$reset_color%}]"
|
echo "[${COLOR}${MINUTES}m%{$reset_color%}]"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
PROMPT='
|
PROMPT='
|
||||||
%{$fg[cyan]%}%m%{$reset_color%} 福 %{$fg[cyan]%}%~ %{$reset_color%}$(git_prompt_short_sha)$(git_prompt_info)
|
%{$fg[cyan]%}%m%{$reset_color%} 福 %{$fg[cyan]%}%~ %{$reset_color%}$(git_prompt_short_sha)$(git_prompt_info)
|
||||||
%{$fg[red]%}%!%{$reset_color%} $(prompt_char) ❯ '
|
%{$fg[red]%}%!%{$reset_color%} $(prompt_char) ❯ '
|
||||||
|
|
||||||
RPROMPT='${return_status}$(git_time_since_commit)$(git_prompt_status)%{$reset_color%}'
|
RPROMPT='${return_status}$(git_time_since_commit)$(git_prompt_status)%{$reset_color%}'
|
||||||
|
|||||||
Reference in New Issue
Block a user