# ------------------------------------------------------------------------------ # 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/kamen/.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=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 # 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 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 ) } # 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 ) } # ------------------------------------------------------------------------------ # Aliases # ------------------------------------------------------------------------------ alias ydl="youtube-dl" alias ydlba="youtube-dl --audio-format best -x" # dnf aliases alias sdi="sudo dnf install -y" alias sdr="sudo dnf remove -y" alias sda="sudo dnf autoremove -y" alias sdu="sudo dnf upgrade -y && bash -c 'sudo dnf remove -y dotnet*; sudo dnf install -y compat-openssl10; sudo dnf install -y dotnet-runtime-deps-5.0 dotnet-runtime-5.0 dotnet-sdk-5.0.x86_64 --repo packages-microsoft-com-prod' && 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 sds="sudo dnf search" 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 sdce="sudo dnf copr enable -y" alias sdcei='f() { sudo dnf copr enable -y $1 && sudo dnf install -y $2; unset -f f }; f' alias sdcs="sudo dnf copr search" # 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 && sudo youtube-dl --update && wget -O - https://raw.githubusercontent.com/laurent22/joplin/master/Joplin_install_and_update.sh | bash" 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 cdg="cd ~/Programming/GitHub-repos/" alias cdl="cd ~/Programming/GitLab-repos/" alias cds="cd ~/Programming/source/" bindkey '^H' backward-kill-word