Fix terminal rendering and improve performance by default
parent
d9d83b51ec
commit
cb957d3b74
|
@ -33,10 +33,12 @@ ENV \
|
|||
# install common
|
||||
|
||||
RUN apk add --no-cache --update \
|
||||
sudo \
|
||||
sudo tzdataa \
|
||||
unzip zip tar gzip xz upx \
|
||||
\
|
||||
zsh \
|
||||
zsh zsh-vcs ncurses \
|
||||
zsh-autosuggestions \
|
||||
zsh-syntax-highlighting \
|
||||
exa jq \
|
||||
neovim \
|
||||
\
|
||||
|
|
|
@ -62,8 +62,8 @@ _canonicalize_file_path() {
|
|||
}
|
||||
|
||||
|
||||
CONTAINER_IMAGE="registry.makerforce.io/ambrose/env"
|
||||
CONTAINER_IMAGE_PWN="registry.makerforce.io/ambrose/pwn"
|
||||
CONTAINER_IMAGE="serverwentdown/env"
|
||||
CONTAINER_IMAGE_PWN="serverwentdown/pwn"
|
||||
CONTAINER_HOME="/home/ambrose"
|
||||
|
||||
OPTIND=1
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
x
|
|
@ -0,0 +1,5 @@
|
|||
|
||||
all: x/xterm-kitty x/xterm-iterm
|
||||
|
||||
x/%: %.info
|
||||
tic -xo ~/.terminfo $?
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,3 @@
|
|||
xterm-iterm|xterm with 256 colors for iTerm2,
|
||||
sitm=\E[3m, ritm=\E[23m,
|
||||
use=xterm-256color,
|
|
@ -0,0 +1,239 @@
|
|||
xterm-kitty|KovIdTTY,
|
||||
Su,
|
||||
Tc,
|
||||
am,
|
||||
ccc,
|
||||
fullkbd,
|
||||
hs,
|
||||
km,
|
||||
mc5i,
|
||||
mir,
|
||||
msgr,
|
||||
npc,
|
||||
xenl,
|
||||
colors#256,
|
||||
cols#80,
|
||||
it#8,
|
||||
lines#24,
|
||||
pairs#32767,
|
||||
acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
|
||||
bel=^G,
|
||||
bold=\E[1m,
|
||||
cbt=\E[Z,
|
||||
civis=\E[?25l,
|
||||
clear=\E[H\E[2J,
|
||||
cnorm=\E[?12l\E[?25h,
|
||||
cr=^M,
|
||||
csr=\E[%i%p1%d;%p2%dr,
|
||||
cub=\E[%p1%dD,
|
||||
cub1=^H,
|
||||
cud=\E[%p1%dB,
|
||||
cud1=^J,
|
||||
cuf=\E[%p1%dC,
|
||||
cuf1=\E[C,
|
||||
cup=\E[%i%p1%d;%p2%dH,
|
||||
cuu=\E[%p1%dA,
|
||||
cuu1=\E[A,
|
||||
cvvis=\E[?12;25h,
|
||||
dch=\E[%p1%dP,
|
||||
dch1=\E[P,
|
||||
dim=\E[2m,
|
||||
dl=\E[%p1%dM,
|
||||
dl1=\E[M,
|
||||
dsl=\E]2;\007,
|
||||
ech=\E[%p1%dX,
|
||||
ed=\E[J,
|
||||
el=\E[K,
|
||||
el1=\E[1K,
|
||||
flash=\E[?5h$<100/>\E[?5l,
|
||||
fsl=^G,
|
||||
home=\E[H,
|
||||
hpa=\E[%i%p1%dG,
|
||||
ht=^I,
|
||||
hts=\EH,
|
||||
ich=\E[%p1%d@,
|
||||
il=\E[%p1%dL,
|
||||
il1=\E[L,
|
||||
ind=^J,
|
||||
indn=\E[%p1%dS,
|
||||
initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
|
||||
kDC=\E[3;2~,
|
||||
kDC3=\E[3;3~,
|
||||
kDC4=\E[3;4~,
|
||||
kDC5=\E[3;5~,
|
||||
kDC6=\E[3;6~,
|
||||
kDC7=\E[3;7~,
|
||||
kDN=\E[1;2B,
|
||||
kDN3=\E[1;3B,
|
||||
kDN4=\E[1;4B,
|
||||
kDN5=\E[1;5B,
|
||||
kDN6=\E[1;6B,
|
||||
kDN7=\E[1;7B,
|
||||
kEND=\E[1;2F,
|
||||
kEND3=\E[1;3F,
|
||||
kEND4=\E[1;4F,
|
||||
kEND5=\E[1;5F,
|
||||
kEND6=\E[1;6F,
|
||||
kEND7=\E[1;7F,
|
||||
kHOM=\E[1;2H,
|
||||
kHOM3=\E[1;3H,
|
||||
kHOM4=\E[1;4H,
|
||||
kHOM5=\E[1;5H,
|
||||
kHOM6=\E[1;6H,
|
||||
kHOM7=\E[1;7H,
|
||||
kIC=\E[2;2~,
|
||||
kIC3=\E[2;3~,
|
||||
kIC4=\E[2;4~,
|
||||
kIC5=\E[2;5~,
|
||||
kIC6=\E[2;6~,
|
||||
kIC7=\E[2;7~,
|
||||
kLFT=\E[1;2D,
|
||||
kLFT3=\E[1;3D,
|
||||
kLFT4=\E[1;4D,
|
||||
kLFT5=\E[1;5D,
|
||||
kLFT6=\E[1;6D,
|
||||
kLFT7=\E[1;7D,
|
||||
kNXT=\E[6;2~,
|
||||
kNXT3=\E[6;3~,
|
||||
kNXT4=\E[6;4~,
|
||||
kNXT5=\E[6;5~,
|
||||
kNXT6=\E[6;6~,
|
||||
kNXT7=\E[6;7~,
|
||||
kPRV=\E[5;2~,
|
||||
kPRV3=\E[5;3~,
|
||||
kPRV4=\E[5;4~,
|
||||
kPRV5=\E[5;5~,
|
||||
kPRV6=\E[5;6~,
|
||||
kPRV7=\E[5;7~,
|
||||
kRIT=\E[1;2C,
|
||||
kRIT3=\E[1;3C,
|
||||
kRIT4=\E[1;4C,
|
||||
kRIT5=\E[1;5C,
|
||||
kRIT6=\E[1;6C,
|
||||
kRIT7=\E[1;7C,
|
||||
kUP=\E[1;2A,
|
||||
kUP3=\E[1;3A,
|
||||
kUP4=\E[1;4A,
|
||||
kUP5=\E[1;5A,
|
||||
kUP6=\E[1;6A,
|
||||
kUP7=\E[1;7A,
|
||||
ka1=,
|
||||
ka3=,
|
||||
kbs=\177,
|
||||
kc1=,
|
||||
kc3=,
|
||||
kcbt=\E[Z,
|
||||
kcub1=\EOD,
|
||||
kcud1=\EOB,
|
||||
kcuf1=\EOC,
|
||||
kcuu1=\EOA,
|
||||
kdch1=\E[3~,
|
||||
kend=\EOF,
|
||||
kf1=\EOP,
|
||||
kf10=\E[21~,
|
||||
kf11=\E[23~,
|
||||
kf12=\E[24~,
|
||||
kf13=\E[1;2P,
|
||||
kf14=\E[1;2Q,
|
||||
kf15=\E[1;2R,
|
||||
kf16=\E[1;2S,
|
||||
kf17=\E[15;2~,
|
||||
kf18=\E[17;2~,
|
||||
kf19=\E[18;2~,
|
||||
kf2=\EOQ,
|
||||
kf20=\E[19;2~,
|
||||
kf21=\E[20;2~,
|
||||
kf22=\E[21;2~,
|
||||
kf23=\E[23;2~,
|
||||
kf24=\E[24;2~,
|
||||
kf25=\E[1;5P,
|
||||
kf26=\E[1;5Q,
|
||||
kf27=\E[1;5R,
|
||||
kf28=\E[1;5S,
|
||||
kf29=\E[15;5~,
|
||||
kf3=\EOR,
|
||||
kf30=\E[17;5~,
|
||||
kf31=\E[18;5~,
|
||||
kf32=\E[19;5~,
|
||||
kf33=\E[20;5~,
|
||||
kf34=\E[21;5~,
|
||||
kf35=\E[23;5~,
|
||||
kf36=\E[24;5~,
|
||||
kf37=\E[1;6P,
|
||||
kf38=\E[1;6Q,
|
||||
kf39=\E[1;6R,
|
||||
kf4=\EOS,
|
||||
kf40=\E[1;6S,
|
||||
kf41=\E[15;6~,
|
||||
kf42=\E[17;6~,
|
||||
kf43=\E[18;6~,
|
||||
kf44=\E[19;6~,
|
||||
kf45=\E[20;6~,
|
||||
kf46=\E[21;6~,
|
||||
kf47=\E[23;6~,
|
||||
kf48=\E[24;6~,
|
||||
kf49=\E[1;3P,
|
||||
kf5=\E[15~,
|
||||
kf50=\E[1;3Q,
|
||||
kf51=\E[1;3R,
|
||||
kf52=\E[1;3S,
|
||||
kf53=\E[15;3~,
|
||||
kf54=\E[17;3~,
|
||||
kf55=\E[18;3~,
|
||||
kf56=\E[19;3~,
|
||||
kf57=\E[20;3~,
|
||||
kf58=\E[21;3~,
|
||||
kf59=\E[23;3~,
|
||||
kf6=\E[17~,
|
||||
kf60=\E[24;3~,
|
||||
kf61=\E[1;4P,
|
||||
kf62=\E[1;4Q,
|
||||
kf63=\E[1;4R,
|
||||
kf7=\E[18~,
|
||||
kf8=\E[19~,
|
||||
kf9=\E[20~,
|
||||
khlp=,
|
||||
khome=\EOH,
|
||||
kich1=\E[2~,
|
||||
kind=\E[1;2B,
|
||||
kmous=\E[M,
|
||||
knp=\E[6~,
|
||||
kpp=\E[5~,
|
||||
kri=\E[1;2A,
|
||||
kund=,
|
||||
oc=\E]104\007,
|
||||
op=\E[39;49m,
|
||||
rc=\E8,
|
||||
rep=%p1%c\E[%p2%{1}%-%db,
|
||||
rev=\E[7m,
|
||||
ri=\EM,
|
||||
rin=\E[%p1%dT,
|
||||
ritm=\E[23m,
|
||||
rmacs=\E(B,
|
||||
rmam=\E[?7l,
|
||||
rmcup=\E[?1049l,
|
||||
rmir=\E[4l,
|
||||
rmkx=\E[?1l,
|
||||
rmso=\E[27m,
|
||||
rmul=\E[24m,
|
||||
rmxx=\E[29m,
|
||||
rs1=\E]\E\\\Ec,
|
||||
sc=\E7,
|
||||
setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m,
|
||||
setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m,
|
||||
setrgbb=\E[48:2:%p1%d:%p2%d:%p3%dm,
|
||||
setrgbf=\E[38:2:%p1%d:%p2%d:%p3%dm,
|
||||
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
|
||||
sgr0=\E(B\E[m,
|
||||
sitm=\E[3m,
|
||||
smacs=\E(0,
|
||||
smam=\E[?7h,
|
||||
smcup=\E[?1049h,
|
||||
smir=\E[4h,
|
||||
smkx=\E[?1h,
|
||||
smso=\E[7m,
|
||||
smul=\E[4m,
|
||||
smxx=\E[9m,
|
||||
tbc=\E[3g,
|
||||
tsl=\E]2;,
|
||||
vpa=\E[%i%p1%dd,
|
129
.zshrc
129
.zshrc
|
@ -1,7 +1,8 @@
|
|||
|
||||
# basic settings
|
||||
|
||||
HISTSIZE=10000
|
||||
SAVEHIST=10000
|
||||
SAVEHIST=50000
|
||||
HISTFILE=~/.zsh_history
|
||||
setopt append_history
|
||||
setopt extended_history
|
||||
|
@ -42,15 +43,20 @@ fi
|
|||
|
||||
# completion
|
||||
|
||||
autoload -U compinit; compinit
|
||||
autoload -U +X bashcompinit && bashcompinit
|
||||
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
|
||||
setup_completion() {
|
||||
autoload -U compinit; compinit
|
||||
autoload -U +X bashcompinit && bashcompinit
|
||||
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
|
||||
|
||||
if [[ -f "$(which mc 2>/dev/null)" ]]; then
|
||||
complete -o nospace -C mc mc
|
||||
fi
|
||||
if [[ -f "$(which kubectl 2>/dev/null)" ]]; then
|
||||
source <(kubectl completion zsh)
|
||||
if [[ -f "$(which mc 2>/dev/null)" ]]; then
|
||||
complete -o nospace -C mc mc
|
||||
fi
|
||||
if [[ -f "$(which kubectl 2>/dev/null)" ]]; then
|
||||
source <(kubectl completion zsh)
|
||||
fi
|
||||
}
|
||||
if [[ $SLOW == true ]]; then
|
||||
setup_completion
|
||||
fi
|
||||
|
||||
# platform specific
|
||||
|
@ -63,16 +69,23 @@ esac
|
|||
if [[ $PLATFORM == macos ]]; then
|
||||
export PATH="$HOME/Library/Python/3.8/bin:$PATH"
|
||||
fi
|
||||
|
||||
setup_term_integration() {}
|
||||
if [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
|
||||
if [[ -f "$HOME/.iterm2_shell_integration.zsh" ]]; then
|
||||
source "$HOME/.iterm2_shell_integration.zsh"
|
||||
fi
|
||||
setup_term_integration() {
|
||||
if [[ -f "$HOME/.iterm2_shell_integration.zsh" ]]; then
|
||||
source "$HOME/.iterm2_shell_integration.zsh"
|
||||
fi
|
||||
}
|
||||
alias icat="imgcat"
|
||||
fi
|
||||
if [[ "$TERM" == "xterm-kitty" ]]; then
|
||||
alias icat="kitty +kitten icat"
|
||||
alias ssh="kitty +kitten ssh"
|
||||
fi
|
||||
if [[ $FAST != true ]]; then
|
||||
setup_term_integration
|
||||
fi
|
||||
|
||||
# directory listings
|
||||
|
||||
|
@ -86,14 +99,24 @@ alias ll="ls -l"
|
|||
|
||||
# prompt
|
||||
|
||||
# prompt: vcs
|
||||
autoload -Uz vcs_info
|
||||
precmd_vcs_info() { vcs_info }
|
||||
setopt prompt_subst
|
||||
zstyle ':vcs_info:git:*' formats $' %b %u%c'
|
||||
zstyle ':vcs_info:git:*' actionformats $'%(u..%B)%(c..%B) %u%c %b (%a) '
|
||||
zstyle ':vcs_info:*' enable git
|
||||
zstyle ':vcs_info:*' check-for-changes true
|
||||
# prompt: vcs
|
||||
setup_prompt_vcs() {
|
||||
autoload -Uz vcs_info
|
||||
zstyle ':vcs_info:git:*' formats $' %b %u%c'
|
||||
zstyle ':vcs_info:git:*' actionformats $'%(u..%B)%(c..%B) %b (%a) %u%c'
|
||||
zstyle ':vcs_info:*' enable git
|
||||
zstyle ':vcs_info:*' check-for-changes true
|
||||
prompt_vcs_enabled=false
|
||||
precmd_vcs_info() {
|
||||
if [[ $prompt_vcs_enabled == true ]]; then
|
||||
vcs_info
|
||||
elif [[ -d ".git" ]]; then
|
||||
prompt_vcs_enabled=true
|
||||
vcs_info
|
||||
fi
|
||||
}
|
||||
}
|
||||
format_vcs_info() {
|
||||
text="$1"
|
||||
dirty=false
|
||||
|
@ -107,6 +130,9 @@ format_vcs_info() {
|
|||
echo "$text"
|
||||
fi
|
||||
}
|
||||
if [[ $FAST != "true" ]]; then
|
||||
setup_prompt_vcs
|
||||
fi
|
||||
# prompt: return code
|
||||
format_return_code() {
|
||||
return_code_=$1
|
||||
|
@ -127,13 +153,16 @@ format_return_code_prev() {
|
|||
text=" $(format_return_code $1) "
|
||||
text_length=${#text}
|
||||
width=$(tput cols)
|
||||
start=$(( $width - $text_length ))
|
||||
start=$(( $width - $text_length - 1 ))
|
||||
|
||||
echo -n $'\e[F\e['
|
||||
echo -n $start
|
||||
echo -n $'G\e[37m\e[41m'
|
||||
tput sc
|
||||
tput cuu1
|
||||
tput hpa $start
|
||||
tput setab $PROMPT_COLOR_RED
|
||||
tput setaf $PROMPT_COLOR_BASE3
|
||||
echo -n "$text"
|
||||
echo -n $'\e[0m\e[E'
|
||||
tput sgr0
|
||||
tput rc
|
||||
}
|
||||
precmd_return_code() {
|
||||
format_return_code_prev $?
|
||||
|
@ -161,6 +190,14 @@ setup_prompt_colors() {
|
|||
PROMPT_COLOR_BASE1=14
|
||||
PROMPT_COLOR_BASE2=7
|
||||
PROMPT_COLOR_BASE3=15
|
||||
PROMPT_COLOR_YELLOW=3
|
||||
PROMPT_COLOR_ORANGE=9
|
||||
PROMPT_COLOR_RED=1
|
||||
PROMPT_COLOR_MAGENTA=5
|
||||
PROMPT_COLOR_VIOLET=13
|
||||
PROMPT_COLOR_BLUE=4
|
||||
PROMPT_COLOR_CYAN=6
|
||||
PROMPT_COLOR_GREEN=2
|
||||
if [[ "$LIGHT" == "true" ]]; then
|
||||
PROMPT_COLOR_TEMP03=$PROMPT_COLOR_TEMP03
|
||||
PROMPT_COLOR_TEMP02=$PROMPT_COLOR_TEMP02
|
||||
|
@ -182,13 +219,15 @@ setup_prompt() {
|
|||
if [[ ! -z "$SSH_CLIENT" ]]; then
|
||||
PROMPT_USER_MACHINE=$'@%m'
|
||||
fi
|
||||
PROMPT_USER=$'%F{15}%{\e[3m%}%(!.%K{9}.%K{4}) %n'"$PROMPT_USER_MACHINE"$' %k%{\e[0m%}%f'
|
||||
PROMPT_HISTORY=$'%F{10}%{\e[3m%} %h %{\e[0m%}%f'
|
||||
PROMPT_ERROR=$'%F{15}%{\e[3m%}%(?.%K{2}.%K{1} $(format_return_code $?) )%k%{\e[0m%}%f'
|
||||
PROMPT_FMT_ITALIC=$(tput sitm)
|
||||
PROMPT_FMT_RESET=$(tput sgr 0)
|
||||
|
||||
PROMPT_USER=$'%{'"$PROMPT_FMT_ITALIC"$'%}%F{'"$PROMPT_COLOR_BASE3"$'}%(!.%K{'"$PROMPT_COLOR_ORANGE"$'}.%K{'"$PROMPT_COLOR_BLUE"$'}) %n'"$PROMPT_USER_MACHINE"$' %k%f%{'"$PROMPT_FMT_RESET"$'%}'
|
||||
PROMPT_HISTORY=$'%F{'"$PROMPT_COLOR_BASE01"$'}%{'"$PROMPT_FMT_ITALIC"$'%} %h %{'"$PROMPT_FMT_RESET"$'%}%f'
|
||||
PROMPT_ERROR_PREV=$'$(format_return_code_prev $?)'
|
||||
PROMPT_VCS=$'%K{'$PROMPT_COLOR_BASE03$'}$(format_vcs_info $vcs_info_msg_0_)%k'
|
||||
PROMPT_DIRECTORY=$'%K{'$PROMPT_COLOR_BASE02$'} %2~ %k'
|
||||
PROMPT_VI=$'%F{15}%{\e[3m%}$zle_vi_mode_%{\e[0m%}%f'
|
||||
PROMPT_VI=$'%F{'"$PROMPT_COLOR_BASE3"$'}%{'"$PROMPT_FMT_ITALIC"$'%}$zle_vi_mode_%{'"$PROMPT_FMT_RESET"$'%}%f'
|
||||
RPROMPT="$PROMPT_HISTORY$PROMPT_USER"
|
||||
PROMPT="$PROMPT_VI$PROMPT_VCS$PROMPT_DIRECTORY "
|
||||
}
|
||||
|
@ -200,18 +239,30 @@ export ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=10'
|
|||
export ZSH_AUTOSUGGEST_USE_ASYNC=true
|
||||
bindkey '^e' autosuggest-execute
|
||||
|
||||
zsh_plugins+=( autosuggestions syntax-highlighting )
|
||||
for zsh_plugin in $zsh_plugins; do
|
||||
zsh_plugin_path="zsh-$zsh_plugin/zsh-$zsh_plugin.zsh"
|
||||
if [[ -f "/usr/local/share/$zsh_plugin_path" ]]; then
|
||||
zsh_plugin_path="/usr/local/share/$zsh_plugin_path"
|
||||
elif [[ -f "/usr/share/$zsh_plugin_path" ]]; then
|
||||
zsh_plugin_path="/usr/share/$zsh_plugin_path"
|
||||
setup_assistance() {
|
||||
zsh_plugins+=( autosuggestions syntax-highlighting )
|
||||
for zsh_plugin in $zsh_plugins; do
|
||||
zsh_plugin_path="zsh-$zsh_plugin/zsh-$zsh_plugin.zsh"
|
||||
if [[ -f "/usr/local/share/$zsh_plugin_path" ]]; then
|
||||
zsh_plugin_path="/usr/local/share/$zsh_plugin_path"
|
||||
elif [[ -f "/usr/share/zsh/plugins/$zsh_plugin_path" ]]; then
|
||||
zsh_plugin_path="/usr/share/zsh/plugins/$zsh_plugin_path"
|
||||
else
|
||||
continue
|
||||
fi
|
||||
source "$zsh_plugin_path"
|
||||
done
|
||||
}
|
||||
if [[ $FAST != true ]]; then
|
||||
setup_assistance
|
||||
fi
|
||||
setup_nope() {
|
||||
if [[ -f "$(which thefuck 2>/dev/null)" ]]; then
|
||||
eval $(thefuck --alias nope)
|
||||
fi
|
||||
source "$zsh_plugin_path"
|
||||
done
|
||||
if [[ -f "$(which thefuck 2>/dev/null)" ]]; then
|
||||
eval $(thefuck --alias nope)
|
||||
}
|
||||
if [[ $SLOW == true ]]; then
|
||||
setup_nope
|
||||
fi
|
||||
|
||||
# helper scripts
|
||||
|
|
Loading…
Reference in New Issue