diff --git a/.subbash/aliases b/.subbash/aliases index 94ad110..0b10271 100644 --- a/.subbash/aliases +++ b/.subbash/aliases @@ -30,6 +30,8 @@ alias .3='cd ../../..' alias path='echo -e ${PATH//:/\\n}' +alias history='history 0' + # shorts alias c='clear' alias q='exit' diff --git a/.subzsh/completion b/.subzsh/completion new file mode 100644 index 0000000..45d791a --- /dev/null +++ b/.subzsh/completion @@ -0,0 +1,17 @@ + +# enable completion features +autoload -Uz compinit +compinit -d ~/.cache/zcompdump +zstyle ':completion:*:*:*:*:*' menu select +zstyle ':completion:*' auto-description 'specify: %d' +zstyle ':completion:*' completer _expand _complete _correct _approximate +zstyle ':completion:*' format 'Completing %d' +zstyle ':completion:*' group-name '' +zstyle ':completion:*' list-colors '' +zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s +zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' +zstyle ':completion:*' rehash true +zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s +zstyle ':completion:*' use-compctl false +zstyle ':completion:*' verbose true +zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd' diff --git a/.subzsh/export b/.subzsh/export new file mode 100644 index 0000000..952652e --- /dev/null +++ b/.subzsh/export @@ -0,0 +1,26 @@ + +export HISTFILE=~/.zsh_history +export HISTSIZE=1000 +export SAVEHIST=2000 +setopt hist_expire_dups_first # delete duplicates first when HISTFILE size exceeds HISTSIZE +setopt hist_ignore_dups # ignore duplicated commands history list +setopt hist_ignore_space # ignore commands that start with space +setopt hist_verify # show command with history expansion to user before running it +export EDITOR=vim + +# enable color support of ls, less and man, and also add handy aliases +if [ -x /usr/bin/dircolors ]; then + test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" + + export LESS_TERMCAP_mb=$'\E[1;31m' # begin blink + export LESS_TERMCAP_md=$'\E[1;36m' # begin bold + export LESS_TERMCAP_me=$'\E[0m' # reset bold/blink + export LESS_TERMCAP_so=$'\E[01;33m' # begin reverse video + export LESS_TERMCAP_se=$'\E[0m' # reset reverse video + export LESS_TERMCAP_us=$'\E[1;32m' # begin underline + export LESS_TERMCAP_ue=$'\E[0m' # reset underline + + # Take advantage of $LS_COLORS for completion as well + zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" + zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31' +fi diff --git a/.subzsh/options b/.subzsh/options new file mode 100644 index 0000000..5a37363 --- /dev/null +++ b/.subzsh/options @@ -0,0 +1,37 @@ + +setopt autocd # change directory just by typing its name +#setopt correct # auto correct mistakes +setopt interactivecomments # allow comments in interactive mode +setopt magicequalsubst # enable filename expansion for arguments of the form ‘anything=expression’ +setopt nonomatch # hide error message if there is no match for the pattern +setopt notify # report the status of background jobs immediately +setopt numericglobsort # sort filenames numerically when it makes sense +setopt promptsubst # enable command substitution in prompt + +WORDCHARS=${WORDCHARS//\/} # Don't consider certain characters part of the word + +# hide EOL sign ('%') +PROMPT_EOL_MARK="" + +# configure key keybindings +bindkey -e # emacs key bindings +bindkey ' ' magic-space # do history expansion on space +bindkey '^[[3;5~' kill-word # ctrl + Supr +bindkey '^[[3~' delete-char # delete +bindkey '^[[1;5C' forward-word # ctrl + -> +bindkey '^[[1;5D' backward-word # ctrl + <- +bindkey '^[[5~' beginning-of-buffer-or-history # page up +bindkey '^[[6~' end-of-buffer-or-history # page down +bindkey '^[[H' beginning-of-line # home +bindkey '^[[F' end-of-line # end +bindkey '^[[Z' undo # shift + tab undo last action + +# configure `time` format +TIMEFMT=$'\nreal\t%E\nuser\t%U\nsys\t%S\ncpu\t%P' + +# enable auto-suggestions based on the history +if [ -f /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh ]; then + . /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh + # change suggestion color + ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=#999' +fi diff --git a/.subzsh/prompt b/.subzsh/prompt new file mode 100644 index 0000000..7da185d --- /dev/null +++ b/.subzsh/prompt @@ -0,0 +1,170 @@ + +# set variable identifying the chroot you work in (used in the prompt below) +if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then + debian_chroot=$(cat /etc/debian_chroot) +fi + +# set a fancy prompt (non-color, unless we know we "want" color) +case "$TERM" in + xterm-color|*-256color) color_prompt=yes;; +esac + +# uncomment for a colored prompt, if the terminal has the capability; turned +# off by default to not distract the user: the focus in a terminal window +# should be on the output of commands, not on the prompt +force_color_prompt=yes + +if [ -n "$force_color_prompt" ]; then + if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then + # We have color support; assume it's compliant with Ecma-48 + # (ISO/IEC-6429). (Lack of such support is extremely rare, and such + # a case would tend to support setf rather than setaf.) + color_prompt=yes + else + color_prompt= + fi +fi + + +setopt prompt_subst +autoload -Uz vcs_info +precmd() { vcs_info } +zstyle ':vcs_info:*' actionformats \ + '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f ' +zstyle ':vcs_info:*' formats \ + '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{5}]%f ' +zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r' + +zstyle ':vcs_info:*' enable git cvs svn + + +# or use pre_cmd, see man zshcontrib +vcs_info_wrapper() { + vcs_info + if [ -n "$vcs_info_msg_0_" ]; then + echo "%{$fg[grey]%}${vcs_info_msg_0_}%{$reset_color%}$del" + fi +} + + +configure_prompt() { + prompt_symbol=㉿ + + [ "$EUID" -eq 0 ] && prompt_symbol=💀 + [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]] && prompt_symbol='📡' + + + case "$PROMPT_ALTERNATIVE" in + twoline) + PROMPT=$'%F{%(#.blue.green)}┌──${debian_chroot:+($debian_chroot)─}${VIRTUAL_ENV:+($(basename $VIRTUAL_ENV))─}(%B%F{%(#.red.blue)}%n$prompt_symbol%m%b%F{%(#.blue.green)})-[%B%F{reset}%(6~.%-1~/…/%4~.%5~)%b%F{%(#.blue.green)}] $(vcs_info_wrapper)%b%F{%(#.blue.green)}\n└─%B%(#.%F{red}#.%F{blue}$)%b%F{reset} ' + RPROMPT=$'%(?.. %? %F{red}%B⨯%b%F{reset})%(1j. %j %F{yellow}%B⚙%b%F{reset}.)' + ;; + oneline) + PROMPT=$'${debian_chroot:+($debian_chroot)}${VIRTUAL_ENV:+($(basename $VIRTUAL_ENV))}%B%F{%(#.red.blue)}%n@%m%b%F{reset}:%B%F{%(#.blue.green)}%~%b%F{reset}%(#.#.$) ' + RPROMPT= + ;; + backtrack) + PROMPT=$'${debian_chroot:+($debian_chroot)}${VIRTUAL_ENV:+($(basename $VIRTUAL_ENV))}%B%F{red}%n@%m%b%F{reset}:%B%F{blue}%~%b%F{reset}%(#.#.$) ' + RPROMPT= + ;; + esac +} + +# The following block is surrounded by two delimiters. +# These delimiters must not be modified. Thanks. +# START KALI CONFIG VARIABLES +PROMPT_ALTERNATIVE=twoline +NEWLINE_BEFORE_PROMPT=yes +# STOP KALI CONFIG VARIABLES + +if [ "$color_prompt" = yes ]; then + # override default virtualenv indicator in prompt + VIRTUAL_ENV_DISABLE_PROMPT=1 + + configure_prompt + + # enable syntax-highlighting + if [ -f /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ] && [ "$color_prompt" = yes ]; then + . /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh + ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern) + ZSH_HIGHLIGHT_STYLES[default]=none + ZSH_HIGHLIGHT_STYLES[unknown-token]=fg=red,bold + ZSH_HIGHLIGHT_STYLES[reserved-word]=fg=cyan,bold + ZSH_HIGHLIGHT_STYLES[suffix-alias]=fg=green,underline + ZSH_HIGHLIGHT_STYLES[global-alias]=fg=magenta + ZSH_HIGHLIGHT_STYLES[precommand]=fg=green,underline + ZSH_HIGHLIGHT_STYLES[commandseparator]=fg=blue,bold + ZSH_HIGHLIGHT_STYLES[autodirectory]=fg=green,underline + ZSH_HIGHLIGHT_STYLES[path]=underline + ZSH_HIGHLIGHT_STYLES[path_pathseparator]= + ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]= + ZSH_HIGHLIGHT_STYLES[globbing]=fg=blue,bold + ZSH_HIGHLIGHT_STYLES[history-expansion]=fg=blue,bold + ZSH_HIGHLIGHT_STYLES[command-substitution]=none + ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter]=fg=magenta + ZSH_HIGHLIGHT_STYLES[process-substitution]=none + ZSH_HIGHLIGHT_STYLES[process-substitution-delimiter]=fg=magenta + ZSH_HIGHLIGHT_STYLES[single-hyphen-option]=fg=magenta + ZSH_HIGHLIGHT_STYLES[double-hyphen-option]=fg=magenta + ZSH_HIGHLIGHT_STYLES[back-quoted-argument]=none + ZSH_HIGHLIGHT_STYLES[back-quoted-argument-delimiter]=fg=blue,bold + ZSH_HIGHLIGHT_STYLES[single-quoted-argument]=fg=yellow + ZSH_HIGHLIGHT_STYLES[double-quoted-argument]=fg=yellow + ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]=fg=yellow + ZSH_HIGHLIGHT_STYLES[rc-quote]=fg=magenta + ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]=fg=magenta + ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]=fg=magenta + ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]=fg=magenta + ZSH_HIGHLIGHT_STYLES[assign]=none + ZSH_HIGHLIGHT_STYLES[redirection]=fg=blue,bold + ZSH_HIGHLIGHT_STYLES[comment]=fg=black,bold + ZSH_HIGHLIGHT_STYLES[named-fd]=none + ZSH_HIGHLIGHT_STYLES[numeric-fd]=none + ZSH_HIGHLIGHT_STYLES[arg0]=fg=green + ZSH_HIGHLIGHT_STYLES[bracket-error]=fg=red,bold + ZSH_HIGHLIGHT_STYLES[bracket-level-1]=fg=blue,bold + ZSH_HIGHLIGHT_STYLES[bracket-level-2]=fg=green,bold + ZSH_HIGHLIGHT_STYLES[bracket-level-3]=fg=magenta,bold + ZSH_HIGHLIGHT_STYLES[bracket-level-4]=fg=yellow,bold + ZSH_HIGHLIGHT_STYLES[bracket-level-5]=fg=cyan,bold + ZSH_HIGHLIGHT_STYLES[cursor-matchingbracket]=standout + fi +else + PROMPT='${debian_chroot:+($debian_chroot)}%n@%m:%~%# ' +fi +unset color_prompt force_color_prompt + +toggle_oneline_prompt(){ + if [ "$PROMPT_ALTERNATIVE" = oneline ]; then + PROMPT_ALTERNATIVE=twoline + else + PROMPT_ALTERNATIVE=oneline + fi + configure_prompt + zle reset-prompt +} +zle -N toggle_oneline_prompt +bindkey ^P toggle_oneline_prompt + +# If this is an xterm set the title to user@host:dir +case "$TERM" in +xterm*|rxvt*|Eterm|aterm|kterm|gnome*|alacritty) + TERM_TITLE=$'\e]0;${debian_chroot:+($debian_chroot)}${VIRTUAL_ENV:+($(basename $VIRTUAL_ENV))}%n@%m: %~\a' + ;; +*) + ;; +esac + +precmd() { + # Print the previously configured title + print -Pnr -- "$TERM_TITLE" + + # Print a new line before the prompt, but only if it is not the first line + if [ "$NEWLINE_BEFORE_PROMPT" = yes ]; then + if [ -z "$_NEW_LINE_BEFORE_PROMPT" ]; then + _NEW_LINE_BEFORE_PROMPT=1 + else + print "" + fi + fi +} diff --git a/.subzsh/sourcer b/.subzsh/sourcer new file mode 100644 index 0000000..c336a0c --- /dev/null +++ b/.subzsh/sourcer @@ -0,0 +1,13 @@ + +so () { + [ -f "$1" ] && source "$1" +} + +so /etc/zsh_command_not_found +so "$HOME"/.subbash/aliases +so "$HOME"/.subbash/functions +so "$HOME"/.subzsh/export +so "$HOME"/.subzsh/options +so "$HOME"/.subzsh/completion +so "$HOME"/.subzsh/prompt +so "$HOME"/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh diff --git a/.zshrc b/.zshrc index 1122cd7..93ab464 100644 --- a/.zshrc +++ b/.zshrc @@ -1,272 +1,3 @@ -# ~/.zshrc file for zsh interactive shells. -# see /usr/share/doc/zsh/examples/zshrc for examples - -setopt autocd # change directory just by typing its name -#setopt correct # auto correct mistakes -setopt interactivecomments # allow comments in interactive mode -setopt magicequalsubst # enable filename expansion for arguments of the form ‘anything=expression’ -setopt nonomatch # hide error message if there is no match for the pattern -setopt notify # report the status of background jobs immediately -setopt numericglobsort # sort filenames numerically when it makes sense -setopt promptsubst # enable command substitution in prompt - -WORDCHARS=${WORDCHARS//\/} # Don't consider certain characters part of the word - -# hide EOL sign ('%') -PROMPT_EOL_MARK="" - -# configure key keybindings -bindkey -e # emacs key bindings -bindkey ' ' magic-space # do history expansion on space -bindkey '^[[3;5~' kill-word # ctrl + Supr -bindkey '^[[3~' delete-char # delete -bindkey '^[[1;5C' forward-word # ctrl + -> -bindkey '^[[1;5D' backward-word # ctrl + <- -bindkey '^[[5~' beginning-of-buffer-or-history # page up -bindkey '^[[6~' end-of-buffer-or-history # page down -bindkey '^[[H' beginning-of-line # home -bindkey '^[[F' end-of-line # end -bindkey '^[[Z' undo # shift + tab undo last action - -# enable completion features -autoload -Uz compinit -compinit -d ~/.cache/zcompdump -zstyle ':completion:*:*:*:*:*' menu select -zstyle ':completion:*' auto-description 'specify: %d' -zstyle ':completion:*' completer _expand _complete _correct _approximate -zstyle ':completion:*' format 'Completing %d' -zstyle ':completion:*' group-name '' -zstyle ':completion:*' list-colors '' -zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s -zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' -zstyle ':completion:*' rehash true -zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s -zstyle ':completion:*' use-compctl false -zstyle ':completion:*' verbose true -zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd' - - -# History configurations -export HISTFILE=~/.zsh_history -export HISTSIZE=1000 -export SAVEHIST=2000 -setopt hist_expire_dups_first # delete duplicates first when HISTFILE size exceeds HISTSIZE -setopt hist_ignore_dups # ignore duplicated commands history list -setopt hist_ignore_space # ignore commands that start with space -setopt hist_verify # show command with history expansion to user before running it -#setopt share_history # share command history data - - -# force zsh to show the complete history -alias history="history 0" - -# configure `time` format -TIMEFMT=$'\nreal\t%E\nuser\t%U\nsys\t%S\ncpu\t%P' - -# make less more friendly for non-text input files, see lesspipe(1) -#[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" - -# set variable identifying the chroot you work in (used in the prompt below) -if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then - debian_chroot=$(cat /etc/debian_chroot) +if [ -f $HOME/.subzsh/sourcer ]; then + source $HOME/.subzsh/sourcer fi - -# set a fancy prompt (non-color, unless we know we "want" color) -case "$TERM" in - xterm-color|*-256color) color_prompt=yes;; -esac - -# uncomment for a colored prompt, if the terminal has the capability; turned -# off by default to not distract the user: the focus in a terminal window -# should be on the output of commands, not on the prompt -force_color_prompt=yes - -if [ -n "$force_color_prompt" ]; then - if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then - # We have color support; assume it's compliant with Ecma-48 - # (ISO/IEC-6429). (Lack of such support is extremely rare, and such - # a case would tend to support setf rather than setaf.) - color_prompt=yes - else - color_prompt= - fi -fi - - -setopt prompt_subst -autoload -Uz vcs_info -precmd() { vcs_info } -zstyle ':vcs_info:*' actionformats \ - '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f ' -zstyle ':vcs_info:*' formats \ - '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{5}]%f ' -zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r' - -zstyle ':vcs_info:*' enable git cvs svn - - -# or use pre_cmd, see man zshcontrib -vcs_info_wrapper() { - vcs_info - if [ -n "$vcs_info_msg_0_" ]; then - echo "%{$fg[grey]%}${vcs_info_msg_0_}%{$reset_color%}$del" - fi -} - - -configure_prompt() { - prompt_symbol=㉿ - - [ "$EUID" -eq 0 ] && prompt_symbol=💀 - [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]] && prompt_symbol='📡' - - - case "$PROMPT_ALTERNATIVE" in - twoline) - PROMPT=$'%F{%(#.blue.green)}┌──${debian_chroot:+($debian_chroot)─}${VIRTUAL_ENV:+($(basename $VIRTUAL_ENV))─}(%B%F{%(#.red.blue)}%n$prompt_symbol%m%b%F{%(#.blue.green)})-[%B%F{reset}%(6~.%-1~/…/%4~.%5~)%b%F{%(#.blue.green)}] $(vcs_info_wrapper)%b%F{%(#.blue.green)}\n└─%B%(#.%F{red}#.%F{blue}$)%b%F{reset} ' - RPROMPT=$'%(?.. %? %F{red}%B⨯%b%F{reset})%(1j. %j %F{yellow}%B⚙%b%F{reset}.)' - ;; - oneline) - PROMPT=$'${debian_chroot:+($debian_chroot)}${VIRTUAL_ENV:+($(basename $VIRTUAL_ENV))}%B%F{%(#.red.blue)}%n@%m%b%F{reset}:%B%F{%(#.blue.green)}%~%b%F{reset}%(#.#.$) ' - RPROMPT= - ;; - backtrack) - PROMPT=$'${debian_chroot:+($debian_chroot)}${VIRTUAL_ENV:+($(basename $VIRTUAL_ENV))}%B%F{red}%n@%m%b%F{reset}:%B%F{blue}%~%b%F{reset}%(#.#.$) ' - RPROMPT= - ;; - esac -} - -# The following block is surrounded by two delimiters. -# These delimiters must not be modified. Thanks. -# START KALI CONFIG VARIABLES -PROMPT_ALTERNATIVE=twoline -NEWLINE_BEFORE_PROMPT=yes -# STOP KALI CONFIG VARIABLES - -if [ "$color_prompt" = yes ]; then - # override default virtualenv indicator in prompt - VIRTUAL_ENV_DISABLE_PROMPT=1 - - configure_prompt - - # enable syntax-highlighting - if [ -f /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ] && [ "$color_prompt" = yes ]; then - . /usr/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh - ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern) - ZSH_HIGHLIGHT_STYLES[default]=none - ZSH_HIGHLIGHT_STYLES[unknown-token]=fg=red,bold - ZSH_HIGHLIGHT_STYLES[reserved-word]=fg=cyan,bold - ZSH_HIGHLIGHT_STYLES[suffix-alias]=fg=green,underline - ZSH_HIGHLIGHT_STYLES[global-alias]=fg=magenta - ZSH_HIGHLIGHT_STYLES[precommand]=fg=green,underline - ZSH_HIGHLIGHT_STYLES[commandseparator]=fg=blue,bold - ZSH_HIGHLIGHT_STYLES[autodirectory]=fg=green,underline - ZSH_HIGHLIGHT_STYLES[path]=underline - ZSH_HIGHLIGHT_STYLES[path_pathseparator]= - ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]= - ZSH_HIGHLIGHT_STYLES[globbing]=fg=blue,bold - ZSH_HIGHLIGHT_STYLES[history-expansion]=fg=blue,bold - ZSH_HIGHLIGHT_STYLES[command-substitution]=none - ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter]=fg=magenta - ZSH_HIGHLIGHT_STYLES[process-substitution]=none - ZSH_HIGHLIGHT_STYLES[process-substitution-delimiter]=fg=magenta - ZSH_HIGHLIGHT_STYLES[single-hyphen-option]=fg=magenta - ZSH_HIGHLIGHT_STYLES[double-hyphen-option]=fg=magenta - ZSH_HIGHLIGHT_STYLES[back-quoted-argument]=none - ZSH_HIGHLIGHT_STYLES[back-quoted-argument-delimiter]=fg=blue,bold - ZSH_HIGHLIGHT_STYLES[single-quoted-argument]=fg=yellow - ZSH_HIGHLIGHT_STYLES[double-quoted-argument]=fg=yellow - ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]=fg=yellow - ZSH_HIGHLIGHT_STYLES[rc-quote]=fg=magenta - ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]=fg=magenta - ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]=fg=magenta - ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]=fg=magenta - ZSH_HIGHLIGHT_STYLES[assign]=none - ZSH_HIGHLIGHT_STYLES[redirection]=fg=blue,bold - ZSH_HIGHLIGHT_STYLES[comment]=fg=black,bold - ZSH_HIGHLIGHT_STYLES[named-fd]=none - ZSH_HIGHLIGHT_STYLES[numeric-fd]=none - ZSH_HIGHLIGHT_STYLES[arg0]=fg=green - ZSH_HIGHLIGHT_STYLES[bracket-error]=fg=red,bold - ZSH_HIGHLIGHT_STYLES[bracket-level-1]=fg=blue,bold - ZSH_HIGHLIGHT_STYLES[bracket-level-2]=fg=green,bold - ZSH_HIGHLIGHT_STYLES[bracket-level-3]=fg=magenta,bold - ZSH_HIGHLIGHT_STYLES[bracket-level-4]=fg=yellow,bold - ZSH_HIGHLIGHT_STYLES[bracket-level-5]=fg=cyan,bold - ZSH_HIGHLIGHT_STYLES[cursor-matchingbracket]=standout - fi -else - PROMPT='${debian_chroot:+($debian_chroot)}%n@%m:%~%# ' -fi -unset color_prompt force_color_prompt - -toggle_oneline_prompt(){ - if [ "$PROMPT_ALTERNATIVE" = oneline ]; then - PROMPT_ALTERNATIVE=twoline - else - PROMPT_ALTERNATIVE=oneline - fi - configure_prompt - zle reset-prompt -} -zle -N toggle_oneline_prompt -bindkey ^P toggle_oneline_prompt - -# If this is an xterm set the title to user@host:dir -case "$TERM" in -xterm*|rxvt*|Eterm|aterm|kterm|gnome*|alacritty) - TERM_TITLE=$'\e]0;${debian_chroot:+($debian_chroot)}${VIRTUAL_ENV:+($(basename $VIRTUAL_ENV))}%n@%m: %~\a' - ;; -*) - ;; -esac - -precmd() { - # Print the previously configured title - print -Pnr -- "$TERM_TITLE" - - # Print a new line before the prompt, but only if it is not the first line - if [ "$NEWLINE_BEFORE_PROMPT" = yes ]; then - if [ -z "$_NEW_LINE_BEFORE_PROMPT" ]; then - _NEW_LINE_BEFORE_PROMPT=1 - else - print "" - fi - fi -} - -# enable color support of ls, less and man, and also add handy aliases -if [ -x /usr/bin/dircolors ]; then - test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" - - export LESS_TERMCAP_mb=$'\E[1;31m' # begin blink - export LESS_TERMCAP_md=$'\E[1;36m' # begin bold - export LESS_TERMCAP_me=$'\E[0m' # reset bold/blink - export LESS_TERMCAP_so=$'\E[01;33m' # begin reverse video - export LESS_TERMCAP_se=$'\E[0m' # reset reverse video - export LESS_TERMCAP_us=$'\E[1;32m' # begin underline - export LESS_TERMCAP_ue=$'\E[0m' # reset underline - - # Take advantage of $LS_COLORS for completion as well - zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" - zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31' -fi - - -# enable auto-suggestions based on the history -if [ -f /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh ]; then - . /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh - # change suggestion color - ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=#999' -fi - -so () { - [ -f "$1" ] && source "$1" -} - -export EDITOR=vim -so /etc/zsh_command_not_found -so "$HOME"/.subbash/aliases -so "$HOME"/.subbash/functions -so "$HOME"/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh diff --git a/Makefile b/Makefile index 7c85b6d..09a1df7 100644 --- a/Makefile +++ b/Makefile @@ -7,12 +7,14 @@ backup: mv ~/.vimrc ~/.vimrc.bak || true mv ~/.vim ~/.vim.bak || true mv ~/.subbash ~/.subbash.bak || true + mv ~/.subzsh ~/.subzsh.bak || true mv ~/.tmux.conf ~/.tmux.conf.bak || true mv ~/.gitconfig ~/.gitconfig.bak || true mv ~/.gitignore ~/.gitignore.bak || true install: ln -s $(PWD)/.subbash ~ || true + ln -s $(PWD)/.subzsh ~ || true ln -s $(PWD)/.bashrc ~ || true ln -s $(PWD)/.zshrc ~ || true ln -s $(PWD)/.tmux.conf ~ || true