diff options
| author | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-02-18 18:52:07 +0200 |
|---|---|---|
| committer | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-02-18 18:52:07 +0200 |
| commit | d7497ea0f69c6599972c979a87c3f89186be06d2 (patch) | |
| tree | 00e84cda099c58185512bace2deb595bdf90dfea /.zshrc.server | |
| parent | 1f58943edae39bb3d23dce507448a33138c1eb33 (diff) | |
| download | dotfiles-d7497ea0f69c6599972c979a87c3f89186be06d2.tar dotfiles-d7497ea0f69c6599972c979a87c3f89186be06d2.tar.gz dotfiles-d7497ea0f69c6599972c979a87c3f89186be06d2.zip | |
Added zsh prompt config that I use on my server
Diffstat (limited to '.zshrc.server')
| -rw-r--r-- | .zshrc.server | 310 |
1 files changed, 310 insertions, 0 deletions
diff --git a/.zshrc.server b/.zshrc.server new file mode 100644 index 0000000..2a9cc56 --- /dev/null +++ b/.zshrc.server @@ -0,0 +1,310 @@ +# ------------------------------------------------------------------------------ +# You'll need to install oh-my-zsh and alien +# +# 1. oh-my-zsh +# +# sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" +# +# 2. alien +# +# git clone https://github.com/eendroroy/alien.git && cd alien && git submodule update --init --recursive +# ------------------------------------------------------------------------------ + +# If you come from bash you might have to change your $PATH. +# export PATH=$HOME/bin:/usr/local/bin:$PATH + +export ZSH="$HOME/.oh-my-zsh" + +# Set name of the theme to load --- if set to "random", it will +# load a random theme each time oh-my-zsh is loaded, in which case, +# to know which specific one was loaded, run: echo $RANDOM_THEME +# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes + +ZSH_THEME="gruvbox" +SOLARIZED_THEME="dark" + +# Uncomment the following line to use case-sensitive completion. +# CASE_SENSITIVE="true" + +# Uncomment the following line to use hyphen-insensitive completion. +# Case-sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +# Uncomment the following line to disable bi-weekly auto-update checks. +# DISABLE_AUTO_UPDATE="true" + +# Uncomment the following line to automatically update without prompting. +# DISABLE_UPDATE_PROMPT="true" + +# Uncomment the following line to change how often to auto-update (in days). +# export UPDATE_ZSH_DAYS=13 + +# Uncomment the following line if pasting URLs and other text is messed up. +# DISABLE_MAGIC_FUNCTIONS="true" + +# Uncomment the following line to disable colors in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status check for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# You can set one of the optional three formats: +# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# or set a custom format using the strftime function format specifications, +# see 'man strftime' for details. +# HIST_STAMPS="mm/dd/yyyy" + +# Would you like to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? +# Standard plugins can be found in $ZSH/plugins/ +# Custom plugins may be added to $ZSH_CUSTOM/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=(git) + +source $ZSH/oh-my-zsh.sh + +# User configuration + +# export MANPATH="/usr/local/man:$MANPATH" + +# You may need to manually set your language environment +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +if [[ -n $SSH_CONNECTION ]]; then + export EDITOR='vim' +else + export EDITOR='vim' +fi + +# Compilation flags +# export ARCHFLAGS="-arch x86_64" + +# Set personal aliases, overriding those provided by oh-my-zsh libs, +# plugins, and themes. Aliases can be placed here, though oh-my-zsh +# users are encouraged to define aliases within the ZSH_CUSTOM folder. + + +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion + +# Disables Software Flow Control +stty -F/dev/tty -ixon -ixoff + +# ------------------------------------------------------------------------------ +# Alien theme config +# ------------------------------------------------------------------------------ + +source ~/alien/alien.zsh + +# colors + +export ALIEN_THEME="gruvbox" +export ALIEN_SECTION_BATTERY_FG=0 +export ALIEN_SECTION_PATH_FG=178 +export ALIEN_SECTION_USER_FG=0 +export ALIEN_SECTION_USER_BG=67 +export ALIEN_SECTION_BATTERY_BG=67 +export ALIEN_GIT_TRACKED_COLOR=196 +export ALIEN_GIT_UN_TRACKED_COLOR=214 + +# custom symbols + +export ALIEN_PROMPT_SYM=" " +export ALIEN_GIT_SYM= +export ALIEN_BRANCH_SYM= +export ALIEN_GIT_ADD_SYM=ﰂ +export ALIEN_GIT_DEL_SYM=ﯰ +export ALIEN_GIT_MOD_SYM=﯂ +export ALIEN_GIT_NEW_SYM=? + +# sections + +export ALIEN_SECTION_TIME_FORMAT=%H:%M:%S + +export ALIEN_SECTIONS_LEFT=( + left_cap + user + path + git_branch:async + git_status:async + left_end_cap + newline + prompt +) + +export ALIEN_SECTIONS_RIGHT=( + exit + time + battery + ssh + right_end_cap +) + +# custom sections + +alien_prompt_section_left_cap() { + __section=( + content " %B%b" + foreground $ALIEN_SECTION_USER_BG + ) +} + +alien_prompt_section_right_end_cap() { + __section=( + content "%B%b" + foreground $ALIEN_SECTION_BATTERY_BG + ) +} + +alien_prompt_section_git_branch() { + local __branch_info= + if [[ $(alien_is_git) == 1 ]]; then + __branch_info=$(alien_git_branch) + else + return 1 + fi + __section=( + content " ${__branch_info}" + foreground $ALIEN_SECTION_VCS_BRANCH_BG + background $ALIEN_SECTION_EXIT_BG + ) +} + +alien_prompt_section_git_status() { + local __stash_info= + local __lr_info= + local __dirty_info= + if [[ $(alien_is_git) == 1 ]]; then + __stash_info=$(alien_git_stash) + __lr_info=$(alien_git_lr) + __dirty_info=$(alien_git_dirty) + else + return 1 + fi + __section=( + content " ${__stash_info}${__lr_info}${__dirty_info}" + foreground 214 + background $ALIEN_SECTION_EXIT_BG + separator 1 + ) +} + +# default section overrides (for stuff that can only be changed by changing the source) + +alien_prompt_section_exit() { + __section=( + content "%(?. . %? )" + foreground "%(?.$ALIEN_SECTION_VCS_BRANCH_BG.$ALIEN_SECTION_EXIT_FG)" + background "%(?.$ALIEN_SECTION_EXIT_BG.$ALIEN_SECTION_EXIT_BG_ERROR)" + separator 1 + ) +} + +alien_prompt_section_prompt() { + __section=( + content "%B${ALIEN_PROMPT_SYM}%b " + foreground "%(?.$ALIEN_PROMPT_FG.$ALIEN_SECTION_EXIT_BG_ERROR)" + ) +} + +alien_battery_stat(){ + __os=$(uname) + if [[ ${__os} = "Linux" ]]; then + if command -v upower > /dev/null 2>&1 ; then + __bat_power=$(upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep state | awk '{print $2}') + __bat_power_ind="" + if [[ ${__bat_power} = "charging" ]]; then __bat_power_ind="" + elif [[ ${__bat_power} = "discharging" ]]; then __bat_power_ind="" + elif [[ ${__bat_power} = "fully-charged" ]]; then __bat_power_ind="" + fi + __bat_per=$(upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep percentage | awk '{print $2}' | sed "s|%||g") + if [[ -n ${__bat_per} ]]; then + echo -n "${__bat_power_ind} ${__bat_per}%%" + fi + fi + fi + unset __os __bat_power __bat_power_ind __bat_per +} + +alien_prompt_section_battery() { + local __to_return=" " + if [ -n "$(upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep state)" ]; then + __to_return=" $(alien_battery_stat) " + fi + __section=( + content $__to_return + foreground $ALIEN_SECTION_BATTERY_FG + background $ALIEN_SECTION_BATTERY_BG + separator 1 + ) +} + +alien_ssh_client(){ + if [[ -n "${SSH_CLIENT}" ]]; then + echo "syndamia.com " + fi +} + +alien_prompt_section_ssh() { + local __ssh_info + __ssh_info=$(alien_ssh_client) + [[ -n $__ssh_info ]] || return 1 + __section=( + content "${__ssh_info}" + foreground $ALIEN_SECTION_USER_FG + background $ALIEN_SECTION_USER_BG + ) +} + +# ------------------------------------------------------------------------------ +# Aliases +# ------------------------------------------------------------------------------ + +alias ydl="youtube-dl" +alias ydlba="youtube-dl --audio-format best -x" + +# apt aliases + + alias sasy="sudo apt install -y" + alias sary="sudo apt remove -y" + alias saty="sudo apt autoremove -y" + alias sagt="sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y" + +if [[ -x "$(command -v exa)" ]]; then + alias ll="exa --icons --group-directories-first --git --time-style long-iso -labh" + alias lk="exa --icons --group-directories-first --git --time-style long-iso -labhTL" + alias l.="exa --icons --group-directories-first --git --time-style long-iso -labhTL 2" + alias l="exa --icons --group-directories-first --time-style long-iso -abh" +else + alias ll="la -alF" + alias la="ls -A" + alias l="ls -CF" +fi + +alias lg="lazygit" + +alias q="exit" +alias x="exit" + +if [[ -x "$(command -v vimx)" ]]; then alias vim='vimx'; fi +alias v="vim" + +alias cdp="cd ~/Programming/GitHub-repos/" |
