summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSyndamia <kamen.d.mladenov@protonmail.com>2021-02-18 18:52:07 +0200
committerSyndamia <kamen.d.mladenov@protonmail.com>2021-02-18 18:52:07 +0200
commitd7497ea0f69c6599972c979a87c3f89186be06d2 (patch)
tree00e84cda099c58185512bace2deb595bdf90dfea
parent1f58943edae39bb3d23dce507448a33138c1eb33 (diff)
downloaddotfiles-d7497ea0f69c6599972c979a87c3f89186be06d2.tar
dotfiles-d7497ea0f69c6599972c979a87c3f89186be06d2.tar.gz
dotfiles-d7497ea0f69c6599972c979a87c3f89186be06d2.zip
Added zsh prompt config that I use on my server
-rw-r--r--.zshrc.server310
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/"