# Notes on Installing {{{ # 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 # }}} # General {{{ # Exports {{{ export PATH=$HOME/bin:/usr/local/bin:$PATH # Adds ~/bin and /usr/local/bin paths to PATH export PATH="$PATH:$HOME/.npm-global/bin" # Adds ~/.npm-global/bin path to PATH # export LANG=en_US.UTF-8 # You may need to manually set your language environment if [[ -n $SSH_CONNECTION ]]; then # Preferred editor for local export EDITOR='vim' else # and remote export EDITOR='vim' fi # }}} # Theme {{{ ZSH_THEME="gruvbox" SOLARIZED_THEME="dark" # }}} # Completion {{{ # CASE_SENSITIVE="true" # case-sensitive completion # HYPHEN_INSENSITIVE="true" # hyphen-insensitive completion (case_sensitive must be false) # }}} # Updates {{{ # DISABLE_AUTO_UPDATE="true" # disable bi-weekly auto-update checks # DISABLE_UPDATE_PROMPT="true" # update without prompting # export UPDATE_ZSH_DAYS=13 # how often to auto-update (in days) # DISABLE_MAGIC_FUNCTIONS="true" # uncomment if pasting URLs and other text is messed up # ENABLE_CORRECTION="true" # command auto-correction # COMPLETION_WAITING_DOTS="true" # display red dots while waiting for completion # DISABLE_UNTRACKED_FILES_DIRTY="true" # disable marking untracked files under VCS as dirty; improves status check for large repos # }}} # Other {{{ stty -F/dev/tty -ixon -ixoff # Disables Software Flow Control setopt long_list_jobs # Changing/making/removing directory setopt auto_pushd setopt pushd_ignore_dups setopt pushdminus # recognize comments setopt interactivecomments # }}} # }}} # Alien {{{ source ~/alien/alien.zsh # Visuals {{{ export ALIEN_THEME="gruvbox" export ALIEN_SECTION_BATTERY_FG=223 export ALIEN_SECTION_PATH_FG=178 export ALIEN_SECTION_USER_FG=223 export ALIEN_SECTION_USER_BG=66 export ALIEN_GIT_TRACKED_COLOR=196 export ALIEN_GIT_UN_TRACKED_COLOR=214 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 configuration {{{ export ALIEN_SECTION_TIME_FORMAT=%H:%M:%S export ALIEN_SECTIONS_LEFT=( left_cap ssh user path git_branch:async git_status:async left_end_cap newline prompt ) export ALIEN_SECTIONS_RIGHT=( exit time battery 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 ) } # }}} # Section overrides {{{ 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 # If there are batteries in the machine __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 ) } # }}} # }}} # Plugins {{{ # omz plugins {{{ source ~/.zsh/omz/history.zsh source ~/.zsh/omz/termsupport.zsh source ~/.zsh/omz/key-bindings.zsh source ~/.zsh/omz/compfix.zsh # }}} # zsh-syntax-highlighting {{{ source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh # }}} # }}} # Aliases {{{ # dnf {{{ alias sdi="sudo dnf install -y" alias sdr="sudo dnf remove -y" alias sda="sudo dnf autoremove -y" # If you're using dotnet from the "packages-microsoft-com-prod" repo, make sure to # add "exclude=dotnet* aspnetcore* netstandard*" inside the /etc/yum.repos.d/fedora.repo, /etc/yum.repos.d/fedora-updates.repo and potentially /etc/yum.repos.d/fedora33.repo alias sdu="sudo dnf upgrade -y && sudo dnf autoremove -y && sudo youtube-dl --update && wget -O - https://raw.githubusercontent.com/laurent22/joplin/master/Joplin_install_and_update.sh | bash && needs-restarting -r" alias ds="dnf search" alias dcs="dnf copr search" alias dp="dnf provides" alias di="dnf info" alias sdce="sudo dnf copr enable -y" alias sdcei='f() { sudo dnf copr enable -y $1 && sudo dnf install -y $2; unset -f f }; f' # }}} # apt {{{ # 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 && sudo youtube-dl --update && wget -O - https://raw.githubusercontent.com/laurent22/joplin/master/Joplin_install_and_update.sh | bash" # }}} # General commands {{{ 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 q="exit" alias x="exit" # }}} # Application specific {{{ alias combinepdf="gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=temp.pdf" alias lg="lazygit" alias v="vim" alias ydl="youtube-dl -o '%(title)s.%(ext)s'" alias ydlba="youtube-dl -o '%(title)s.%(ext)s' --audio-format best -x" alias gr="grit" alias gra="grit add --" alias grc="grit check" alias grls="grit tree" alias sdudiscord="wget -O discord.tar.gz \"https://discord.com/api/download?platform=linux&format=tar.gz\" && tar -xzf discord.tar.gz && sudo rm -rf /opt/Discord && sudo mv Discord /opt" alias cdg="cd ~/Programming/GitHub-repos/ && mcd" alias cdl="cd ~/Programming/GitLab-repos/ && mcd" alias cds="cd ~/Programming/source/ && mcd" # }}} # }}} # Binds {{{ bindkey '^H' backward-kill-word # }}} # Functions {{{ if [[ -x "$(command -v vimx)" ]]; then # Open vim with .vim-session file, if it exists and the vim command doesn't have any parameters vim () { if [ -f ".vim-session" ] && [ -z "$1" ]; then vimx -S .vim-session else vimx $@ fi } fi if [[ -x "$(command -v grit)" ]]; then # Add to grit parent, where first value is parent number and everything else is node value grap () { parent="$1" shift grit add -p $parent -- $@ } fi if [[ -x "$(command -v nemo)" ]]; then onemo() { bgr "nemo ./" } fi # Execute multiple commands mexec () { for cmd in "${@[@]}"; do if ! [ -z "$cmd" ]; then $cmd fi done } # CD multiple times into subdirectories mcd () { for dir in "${@[@]}"; do if ! [ -z "$dir" ]; then cd $dir fi done } # Run in the background bgr () { nohup sh -c "$@" 2>&1 & disown } # Kill process and run in the background res () { pkill $@ bgr $@ } # Launch .desktop application (either full path or just name) dela () { name=$1 if [[ ${name:0:1} != "/" ]]; then name="/usr/share/applications/${name}" fi if [[ ! $name =~ .desktop$ ]]; then name+=".desktop" fi comm=($(awk -F= '$1=="Exec"{$1=""; print}' "$name")) bgr "$comm" } # }}} # Execute on startup {{{ (grit) #}}} # Added by scripts: export PATH="/home/kamen/bin/Sencha/Cmd:$PATH"