add git thing
parent
28545fe7e5
commit
88161e5a85
40
.zshrc
40
.zshrc
|
@ -1,19 +1,28 @@
|
||||||
# wow proper history stuff
|
fpath=("$(dirname "$(realpath ~/.zshrc)")/zsh" $fpath);
|
||||||
HISTFILE=~/.histfile
|
|
||||||
HISTSIZE=1000
|
# completions
|
||||||
SAVEHIST=1000
|
autoload -Uz compinit
|
||||||
|
compinit;
|
||||||
|
|
||||||
|
# wow history stuff
|
||||||
|
HISTFILE=~/.histfile;
|
||||||
|
HISTSIZE=1000;
|
||||||
|
SAVEHIST=1000;
|
||||||
|
|
||||||
# what the fuck are any of these
|
# what the fuck are any of these
|
||||||
setopt extendedglob
|
setopt extendedglob;
|
||||||
setopt nomatch
|
setopt nomatch;
|
||||||
setopt notify
|
setopt notify;
|
||||||
|
|
||||||
# who the fuck would want either of these
|
# who the fuck would want either of these
|
||||||
unsetopt autocd
|
unsetopt autocd;
|
||||||
unsetopt beep
|
unsetopt beep;
|
||||||
|
|
||||||
# i dont even know what this does lmao
|
# add vim keybinds
|
||||||
bindkey -v
|
bindkey -v;
|
||||||
|
|
||||||
|
# add other keybinds
|
||||||
|
bindkey '^[[3~' delete-char;
|
||||||
|
|
||||||
# c++ compiler
|
# c++ compiler
|
||||||
export CXX=clang++;
|
export CXX=clang++;
|
||||||
|
@ -27,9 +36,14 @@ alias m="make";
|
||||||
alias gaa="git add -A";
|
alias gaa="git add -A";
|
||||||
alias gc="git commit -S -a";
|
alias gc="git commit -S -a";
|
||||||
alias gcm="git commit -S -a -m";
|
alias gcm="git commit -S -a -m";
|
||||||
|
alias gs="git status";
|
||||||
alias cls="clear"
|
alias cls="clear"
|
||||||
alias ls="exa"
|
alias ls="exa"
|
||||||
|
|
||||||
# line
|
# line
|
||||||
PS1=$'\u256d\u2500 %F{cyan}%n@%m%F{white} | %F{red}%/%f > \n\u2570%(!.#.$) ';
|
autoload -U promptinit;
|
||||||
PS2=$'%{\x1b[A\u2502 \x1b[B\x1b[G%0G%}\u2570%(!.#.$) ';
|
promptinit;
|
||||||
|
#prompt miniline;
|
||||||
|
|
||||||
|
#PS1=$'\u256d\u2500 %F{cyan}%n@%m%F{white} | %F{red}%/%f > \n\u2570%(!.#.$) ';
|
||||||
|
#PS2=$'%{\x1b[A\u2502 \x1b[B\x1b[G%0G%}\u2570%(!.#.$) ';
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
# vim: set filetype=zsh :
|
||||||
|
|
||||||
|
function () {
|
||||||
|
MINILINE_NERD_FONTS=true;
|
||||||
|
MINILINE_GLYPH_GIT="|\\";
|
||||||
|
MINILINE_GLYPH_BRANCH="|/";
|
||||||
|
MINILINE_GLYPH_COMMIT="@-";
|
||||||
|
|
||||||
|
MINILINE_INCLUDE_VCS=true;
|
||||||
|
|
||||||
|
MINILINE_COLOR_COMMIT="yellow"; #"#FFA500";
|
||||||
|
MINILINE_COLOR_BRANCH="cyan";
|
||||||
|
|
||||||
|
if $MINILINE_NERD_FONTS; then
|
||||||
|
MINILINE_GLYPH_GIT=$'\ue702';
|
||||||
|
MINILINE_GLYPH_BRANCH=$'\ue725';
|
||||||
|
MINILINE_GLYPH_COMMIT=$'\ue729';
|
||||||
|
fi
|
||||||
|
|
||||||
|
prompt_opts=(cr percent subst);
|
||||||
|
|
||||||
|
function ps_vcs() {
|
||||||
|
ps_vcs="";
|
||||||
|
|
||||||
|
! $MINILINE_INCLUDE_VCS && return;
|
||||||
|
|
||||||
|
# search for git dir
|
||||||
|
local found=false;
|
||||||
|
local dir="$(realpath "$(pwd)")";
|
||||||
|
while [[ "$dir" != "/" ]]; do
|
||||||
|
if [[ -d "$dir/.git" ]]; then
|
||||||
|
found=true;
|
||||||
|
break;
|
||||||
|
fi;
|
||||||
|
|
||||||
|
dir="$(realpath "$dir/..")";
|
||||||
|
done;
|
||||||
|
|
||||||
|
# handle git repo
|
||||||
|
if $found; then
|
||||||
|
local git_dir="$dir/.git";
|
||||||
|
|
||||||
|
# read current head
|
||||||
|
local head_type="commit";
|
||||||
|
local head="$(<"$git_dir/HEAD")";
|
||||||
|
local branch;
|
||||||
|
if [[ "$head" =~ 'ref: (.*)' ]]; then
|
||||||
|
head="${match[1]}";
|
||||||
|
head_type="branch";
|
||||||
|
|
||||||
|
[[ "$head" =~ 'refs/heads/(.*)' ]];
|
||||||
|
branch="${match[1]}";
|
||||||
|
fi;
|
||||||
|
|
||||||
|
if [[ "$head_type" == "commit" ]]; then
|
||||||
|
[[ "$head" =~ '(........).*' ]]; # this might not be a valid commit but whos going to use a repo with smth that large
|
||||||
|
ps_vcs=" | $MINILINE_GLYPH_COMMIT %F{$MINILINE_COLOR_COMMIT}${match[1]}%F{white}";
|
||||||
|
elif [[ "$head_type" == "branch" ]]; then
|
||||||
|
ps_vcs=" | $MINILINE_GLYPH_BRANCH %F{$MINILINE_COLOR_COMMIT}HEAD%F{$MINILINE_COLOR_BRANCH}@$branch%F{white}";
|
||||||
|
fi;
|
||||||
|
fi;
|
||||||
|
}
|
||||||
|
|
||||||
|
function precmd() {
|
||||||
|
ps_vcs;
|
||||||
|
}
|
||||||
|
|
||||||
|
PS1=$'\u256d\u2500 %F{cyan}%n@%m%F{white} | %F{red}%/%f${ps_vcs} > \n\u2570%(!.#.$)%F{white} ';
|
||||||
|
PS2=$'%{\x1b[A\u2502 \x1b[B\x1b[G%0G%}\u2570%(!.#.$)%F{white} ';
|
||||||
|
}
|
Loading…
Reference in New Issue