-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
281 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,268 @@ | ||
#!/usr/bin/env zsh | ||
|
||
# is MacOS | ||
PATH="$PATH:/opt/homebrew/bin/" | ||
export HOMEBREW_NO_ANALYTICS=1 | ||
|
||
export TMUX_TMPDIR=/tmp | ||
export TMUX_TMPDIR=/tmp | ||
|
||
# is KaliLinux | ||
|
||
# ~/.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 '^U' backward-kill-line # ctrl + U | ||
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 | ||
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 | ||
HISTFILE=~/.zsh_history | ||
HISTSIZE=1000 | ||
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) | ||
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 | ||
|
||
configure_prompt() { | ||
prompt_symbol=㉿ | ||
# Skull emoji for root terminal | ||
#[ "$EUID" -eq 0 ] && 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)}]\n└─%B%(#.%F{red}#.%F{blue}$)%b%F{reset} ' | ||
# Right-side prompt with exit codes and background processes | ||
#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 | ||
unset prompt_symbol | ||
} | ||
|
||
# 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 ]; 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]=underline | ||
ZSH_HIGHLIGHT_STYLES[reserved-word]=fg=cyan,bold | ||
ZSH_HIGHLIGHT_STYLES[suffix-alias]=fg=green,underline | ||
ZSH_HIGHLIGHT_STYLES[global-alias]=fg=green,bold | ||
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]=bold | ||
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,bold | ||
ZSH_HIGHLIGHT_STYLES[process-substitution]=none | ||
ZSH_HIGHLIGHT_STYLES[process-substitution-delimiter]=fg=magenta,bold | ||
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]=fg=green | ||
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]=fg=green | ||
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,bold | ||
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]=fg=magenta,bold | ||
ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]=fg=magenta,bold | ||
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=cyan | ||
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 LS_COLORS="$LS_COLORS:ow=30;44:" # fix ls color for folders with 777 permissions | ||
|
||
alias ls='ls --color=auto' | ||
#alias dir='dir --color=auto' | ||
#alias vdir='vdir --color=auto' | ||
|
||
alias grep='grep --color=auto' | ||
alias fgrep='fgrep --color=auto' | ||
alias egrep='egrep --color=auto' | ||
alias diff='diff --color=auto' | ||
alias ip='ip --color=auto' | ||
|
||
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 | ||
|
||
# some more ls aliases | ||
alias ll='ls -l' | ||
alias la='ls -A' | ||
alias l='ls -CF' | ||
|
||
# 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 | ||
|
||
# enable command-not-found if installed | ||
if [ -f /etc/zsh_command_not_found ]; then | ||
. /etc/zsh_command_not_found | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,15 @@ | ||
#!/usr/bin/env zsh | ||
|
||
BASE_DIR=$(cd "$(dirname "$0")" && cd .. && pwd) | ||
BASE_DIR=$(pwd) | ||
|
||
# CI 例外処理用 | ||
set -e | ||
|
||
echo "### Create symlinks for dotfiles" | ||
ln -sf "$BASE_DIR"/.zshrc ~/.zshrc | ||
ln -sf "$BASE_DIR"/.tmux.conf ~/.tmux.conf | ||
ln -sf "$BASE_DIR"/.vimrc ~/.vimrc | ||
ln -sf "$BASE_DIR"/.gitconfig ~/.gitconfig | ||
ln -sf "$BASE_DIR"/../.zshrc ~/.zshrc | ||
ln -sf "$BASE_DIR"/../.tmux.conf ~/.tmux.conf | ||
ln -sf "$BASE_DIR"/../.vimrc ~/.vimrc | ||
ln -sf "$BASE_DIR"/../.gitconfig ~/.gitconfig | ||
ln -sf "$BASE_DIR"/ss /usr/bin/ss | ||
|
||
echo -e "\n[Finish]" | ||
echo -e "\n[Finish]" |