# If you come from bash you might have to change your $PATH. # export PATH=$HOME/bin:/usr/local/bin:$PATH # Path to your oh-my-zsh installation. 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="robbyrussell" # Set list of themes to pick from when loading at random # Setting this variable when ZSH_THEME=random will cause zsh to load # a theme from this variable instead of looking in $ZSH/themes/ # If set to an empty array, this variable will have no effect. # ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) # 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 one of the following lines to change the auto-update behavior # zstyle ':omz:update' mode disabled # disable automatic updates # zstyle ':omz:update' mode auto # update automatically without asking zstyle ':omz:update' mode reminder # just remind me to update when it's time # Uncomment the following line to change how often to auto-update (in days). zstyle ':omz:update' frequency 7 # 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. # You can also set it to another string to have that shown instead of the default red dots. # e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f" # Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765) export 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=( cp #dep:rsync command-not-found #dep:pkgfile #dotenv ssh-agent sudo zsh-autosuggestions zsh-completions zsh-syntax-highlighting ) # pkgfile:cron: 0 */6 * * * pkgfile --update autoload -U compinit && compinit zstyle :omz:plugins:ssh-agent identities id_ed25519 id_rsa zstyle :omz:plugins:ssh-agent agent-forwarding yes zstyle :omz:plugins:ssh-agent quiet yes zstyle :omz:plugins:ssh-agent lazy yes source $ZSH/oh-my-zsh.sh if [[ ! -z "${_ZSH_RUN_GUARD}" ]]; then return 0 fi # 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='mvim' # 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. # For a full list of active aliases, run `alias`. # # Example aliases # alias zshconfig="mate ~/.zshrc" # alias ohmyzsh="mate ~/.oh-my-zsh" export ZSH_THEME_GIT_PROMPT_PREFIX=" git:(" export ZSH_THEME_GIT_PROMPT_SUFFIX=")" export PROMPT='%{$fg[green]%}%n%{$reset_color%}@%{$FG[033]%}%M%{$reset_color%}:%{$fg[green]%}%~%{$reset_color%}$(git_prompt_info)%(!.#.$) ' export EDITOR=nano ## path fixes # cargo (rust) if [[ -d "$HOME/.cargo" ]]; then export PATH="$HOME/.cargo/bin:$PATH" export CARGO_REGISTRIES_CRATES_IO_PROTOCOL="sparse" export CARGO_TARGET_DIR="$HOME/.cargo/targets" fi # acme.sh if [[ -f "$HOME/acme.sh/acme.sh.env" ]]; then source "$HOME/.acme.sh/acme.sh.env" fi # pipx if [[ -d "$HOME/.local/bin" ]]; then export PATH="$HOME/.local/bin:$PATH" fi # asdf-vm #if [[ -d "/opt/asdf-vm/" ]]; then # source "/opt/asdf-vm/asdf.sh" #fi # esp32-rs #if [[ -d "$HOME/.espressif" ]]; then # export LIBCLANG_PATH="/home/chef/.espressif/tools/xtensa-esp32-elf-clang/esp-14.0.0-20220415-x86_64-unknown-linux-gnu/lib/" # export PATH="/home/chef/.espressif/tools/xtensa-esp32-elf-gcc/8_4_0-esp-2021r2-patch3-x86_64-unknown-linux-gnu/bin/:/home/chef/.espressif/tools/xtensa-esp32s2-elf-gcc/8_4_0-esp-2021r2-patch3-x86_64-unknown-linux-gnu/bin/:/home/chef/.espressif/tools/xtensa-esp32s3-elf-gcc/8_4_0-esp-2021r2-patch3-x86_64-unknown-linux-gnu/bin/:$PATH" # export PIP_USER="no" #fi if [[ -d "$HOME/.bin" ]]; then export PATH="$HOME/.bin:$PATH" fi if [[ -z "$SSH_AUTH_SOCK" ]]; then eval `ssh-agent` >/dev/null 2>&1 fi if [[ -d "$HOME/.deta" ]]; then export PATH="$HOME/.deta/bin:$PATH" fi export RG_PATH="${RG_PATH:-$(which rg)}" function rg() { if [[ -t 1 ]]; then $RG_PATH -p "$@" | less --RAW-CONTROL-CHARS --quit-if-one-screen --no-init else $RG_PATH "$@" fi } if [[ -d "$HOME/.local/share/pnpm" ]]; then export PNPM_HOME="$HOME/.local/share/pnpm" export PATH="$PNPM_HOME:$PATH" fi func bottom() { cat /dev/urandom | env LC_CTYPE=C tr -dc "asdfghjkl;" | fold -w 20 | head -n 1 } function bats() { _concat=0 for _battery in "/sys/class/power_supply/BAT"*; do _capacity="$(< "${_battery}/capacity")" _status="$(< "${_battery}/status")" _health="$(($(cat ${_battery}/energy_full) * 100 / $(cat ${_battery}/energy_full_design)))" if [[ "${_concat}" -eq "1" ]]; then echo -n ", " fi echo -n "$(basename ${_battery}): ${_capacity}% (${_status})" _concat=1 done echo } function pyvenv() { if [[ -d "./venv" ]]; then source "./venv/bin/activate" elif [[ -d "./env" ]]; then source "./env/bin/activate" else python -m venv venv source "./venv/bin/activate" fi } alias gdiff="git diff --no-index" export _ZSHRC_RUN_GUARD=1