From 9fdb1ba055ec45c49b33d74debbde35aa78a7657 Mon Sep 17 00:00:00 2001 From: Konano Date: Thu, 30 Nov 2023 12:06:25 +0800 Subject: [PATCH] experimental: custom zsh --- files/zsh/.zsh_init | 2 -- files/{ => zsh}/.zshrc | 0 files/zsh/10-theme.zsh | 7 +++++ files/zsh/20-alias.zsh | 32 ++++++++++++++++++++++ files/{.user_utils => zsh/50-function.zsh} | 22 ++++++++------- files/zsh/80-environment.zsh | 22 +++++++++++++++ files/zsh/90-other.zsh | 6 ++++ init_priv.sh | 11 ++++++-- init_user.sh | 2 ++ 9 files changed, 89 insertions(+), 15 deletions(-) rename files/{ => zsh}/.zshrc (100%) create mode 100644 files/zsh/10-theme.zsh create mode 100644 files/zsh/20-alias.zsh rename files/{.user_utils => zsh/50-function.zsh} (78%) create mode 100644 files/zsh/80-environment.zsh create mode 100644 files/zsh/90-other.zsh diff --git a/files/zsh/.zsh_init b/files/zsh/.zsh_init index 7095304..016f80b 100644 --- a/files/zsh/.zsh_init +++ b/files/zsh/.zsh_init @@ -1,5 +1,3 @@ -ZSH_THEME="ys-simple" - zstyle ':omz:update' mode reminder # just remind me to update when it's time zstyle ':omz:update' frequency 13 diff --git a/files/.zshrc b/files/zsh/.zshrc similarity index 100% rename from files/.zshrc rename to files/zsh/.zshrc diff --git a/files/zsh/10-theme.zsh b/files/zsh/10-theme.zsh new file mode 100644 index 0000000..967bd97 --- /dev/null +++ b/files/zsh/10-theme.zsh @@ -0,0 +1,7 @@ +ZSH_THEME="ys-simple" + +HOST="VM-ubuntu" + +HIST_STAMPS='yyyy-mm-dd' +DISABLE_AUTO_TITLE='true' +ZSH_THEME_TERM_TITLE_IDLE='%~' diff --git a/files/zsh/20-alias.zsh b/files/zsh/20-alias.zsh new file mode 100644 index 0000000..609013a --- /dev/null +++ b/files/zsh/20-alias.zsh @@ -0,0 +1,32 @@ +alias -s txt='nano' +alias -s xz='tar -xvf' +alias -s gz='tar -xzvf' +alias -s tgz='tar -xzvf' +alias -s zip='unzip' +alias -s bz2='tar -xjvf' + +alias cp='cp -i' +alias cl='clear' +alias ag='alias | grep' +alias hg='history | grep' + +alias ipl='sudo iptables -L -n' +if [ -f "/etc/network/if-pre-up.d/iptables-load" ]; then + alias ipe='sudo nano /etc/network/if-pre-up.d/iptables-load' + alias ips='sudo /etc/network/if-pre-up.d/iptables-load' +fi + +command_exists() { command -v "$@" >/dev/null 2>&1; } + +command_exists trash-put && alias rm='trash-put' +command_exists batcat && alias cat='batcat' +command_exists fdfind && alias fd='fdfind' + +if command_exists eza; then + alias e='eza -la' + alias eb='eza -lab' + alias et='eza -lT' + alias ef='eza -lTa -BhHigSmu' +fi + +command_exists docker && alias gost='docker run --rm -p 9443:9443 --cpus=0.2 --memory=256mb gogost/gost -L socks5://nano:QpuwAqcsP8Xp@:9443' diff --git a/files/.user_utils b/files/zsh/50-function.zsh similarity index 78% rename from files/.user_utils rename to files/zsh/50-function.zsh index c263bd4..2c04b52 100644 --- a/files/.user_utils +++ b/files/zsh/50-function.zsh @@ -1,6 +1,6 @@ #!/bin/zsh -__is_public_ipv4() { +__zsh_is_public_ipv4() { local ip=$1 if [[ $ip =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]]; then IFS='.' read -r -A ADDR <<< "$ip" @@ -18,20 +18,20 @@ __is_public_ipv4() { fi } -__get_ipv4() { +__zsh_get_ipv4() { local ipv4=$(ip route get 1.1.1.1 | head -1 | awk '{print $7}') - if __is_public_ipv4 $ipv4; then echo "$ipv4"; return 0; fi + if __zsh_is_public_ipv4 $ipv4; then echo "$ipv4"; return 0; fi ipv4=$(ip route get 1.1.1.1 | head -1 | awk '{print $NF}') - if __is_public_ipv4 $ipv4; then echo "$ipv4"; return 0; fi + if __zsh_is_public_ipv4 $ipv4; then echo "$ipv4"; return 0; fi ipv4=$(curl -4 -s ifconfig.me) - if __is_public_ipv4 $ipv4; then echo "$ipv4"; return 0; fi + if __zsh_is_public_ipv4 $ipv4; then echo "$ipv4"; return 0; fi ipv4=$(host -4 myip.opendns.com resolver1.opendns.com | grep "myip.opendns.com has" | awk '{print $4}') - if __is_public_ipv4 $ipv4; then echo "$ipv4"; return 0; fi + if __zsh_is_public_ipv4 $ipv4; then echo "$ipv4"; return 0; fi # echo "No public IPv4 address found" return 1 } -__get_ipv6() { +__zsh_get_ipv6() { if [[ "$(ip -6 route get 2001:4860:4860::8888 2>&1 | awk '{print $NF}')" == "unreachable" ]]; then echo "No IPv6 connectivity" return 1 @@ -46,7 +46,9 @@ __get_ipv6() { return 1 } -__get_ip() { - __get_ipv4 - __get_ipv6 +__zsh_get_ip() { + __zsh_get_ipv4 + __zsh_get_ipv6 } + +alias net='__zsh_get_ip' diff --git a/files/zsh/80-environment.zsh b/files/zsh/80-environment.zsh new file mode 100644 index 0000000..126cc31 --- /dev/null +++ b/files/zsh/80-environment.zsh @@ -0,0 +1,22 @@ +# pip3 +export PATH=$PATH:$HOME/.local/bin +command_exists trash-put && alias rm='trash-put' + +# Docker +# export DOCKER_HOST=unix:///run/user/500/docker.sock +# export DOCKER_HOST=unix:///run/user/1000/docker.sock + +# Yarn +# export PATH=$PATH:$HOME/.yarn/bin + +# Golang +# export PATH=$PATH:/usr/local/go/bin +# export PATH=$PATH:$HOME/.local/go/bin +# export GOPROXY=https://goproxy.cn,direct + +# Node.js, npm, nvm +# export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node +# export NVM_IOJS_ORG_MIRROR=https://npmmirror.com/mirrors/iojs + +# WSL Xming +# export DISPLAY=:0; diff --git a/files/zsh/90-other.zsh b/files/zsh/90-other.zsh new file mode 100644 index 0000000..2be6082 --- /dev/null +++ b/files/zsh/90-other.zsh @@ -0,0 +1,6 @@ +_systemctl_unit_state() { + typeset -gA _sys_unit_state + _sys_unit_state=( $(__systemctl list-unit-files '$PREFIX*' | awk '{print $1, $2}') ) +} + +alias lazy='~/.lazy/run.sh' diff --git a/init_priv.sh b/init_priv.sh index c87a1aa..97c3605 100755 --- a/init_priv.sh +++ b/init_priv.sh @@ -102,14 +102,19 @@ configure_zsh() { git_clone paulirish/git-open ~/.oh-my-zsh/custom/plugins/git-open --norecursive sudo apt install autojump -y - cp $scriptdir/files/zsh/ys-simple.zsh-theme ~/.oh-my-zsh/custom/themes/ys-simple.zsh-theme - if ! grep -Fxq "source ~/.zsh_init" ~/.zshrc; then local line_number=$(grep -n "source \$ZSH/oh-my-zsh.sh" .zshrc | cut -d : -f 1) sed -i "${line_number}i source ~/.zsh_init\n" .zshrc fi - cp $scriptdir/files/zsh/.zsh_init ~/.zsh_init + local zsh_scriptdir=$scriptdir/files/zsh + cp $scriptdir/files/zsh/.zsh_init ~/.zsh_init + cp $scriptdir/files/zsh/10-theme.zsh ~/.oh-my-zsh/custom/ + cp $scriptdir/files/zsh/20-alias.zsh ~/.oh-my-zsh/custom/ + cp $scriptdir/files/zsh/50-function.zsh ~/.oh-my-zsh/custom/ + cp $scriptdir/files/zsh/80-environment.zsh ~/.oh-my-zsh/custom/ + cp $scriptdir/files/zsh/90-other.zsh ~/.oh-my-zsh/custom/ + cp $scriptdir/files/zsh/ys-simple.zsh-theme ~/.oh-my-zsh/custom/themes/ fi } diff --git a/init_user.sh b/init_user.sh index 715a4a0..fbdaef1 100755 --- a/init_user.sh +++ b/init_user.sh @@ -79,6 +79,8 @@ configure_nodejs() { # ============================================================ update_file $scriptdir/files/zsh/ys-simple.zsh-theme ~/.oh-my-zsh/custom/themes/ys-simple.zsh-theme +update_file $scriptdir/files/zsh/.zsh_init ~/.zsh_init +update_file $scriptdir/files/zsh/.zsh_init ~/.zsh_init # update_file $scriptdir/files/.user_utils ~/.user_utils update_authorized_keys