#eval "$(~/.local/bin/cursor-agent shell-integration zsh)" # zsh essentials #HISTFILE="~/.histfile" # Save 100000 lines of history HISTSIZE=100000 SAVEHIST=100000 setopt BANG_HIST # Treat the '!' character specially during expansion. setopt EXTENDED_HISTORY # Write the history file in the ":start:elapsed;command" format. setopt INC_APPEND_HISTORY # Write to the history file immediately, not when the shell exits. setopt SHARE_HISTORY # Share history between all sessions. setopt HIST_IGNORE_DUPS # Don't record an entry that was just recorded again. setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate. setopt HIST_IGNORE_SPACE # Don't record an entry starting with a space. # If you come from bash you might have to change your $PATH. export LANG="fr_FR.UTF-8" # export PATH=$HOME/bin:/usr/local/bin:$PATH # Path to your oh-my-zsh installation. export ZSH="$HOME/.oh-my-zsh" export PATH="$HOME/bin:/opt/homebrew/opt/bison/bin:$HOME/.local/bin:$PATH" #export PATH=$PATH:$(go env GOPATH)/bin export PATH=$PATH:/Users/raph/go/bin export PATH="/Applications/Sublime Text.app/Contents/SharedSupport/bin:$PATH" export PATH=$(brew --prefix libpq)/bin:$PATH export PATH="/opt/homebrew/opt/mysql-client/bin:$PATH" # 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" #agnoster apple awesomepanda clean jonathan ZSH_THEME="simple" # 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 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. # 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) # 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 ZSH_DISABLE_COMPFIX="true" # 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 tmux brew history zsh-navigation-tools zsh-autosuggestions zsh-syntax-highlighting zsh-completions fzf) 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='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" alias vi="nvim" # neovim alias arm="env /usr/bin/arch -arm64 /bin/zsh --login" alias intel="env /usr/bin/arch -x86_64 /bin/zsh --login" alias cat='bat --style=plain' alias skr='ssh-keygen -R $1' alias tf='tofu' alias terraform='tofu' alias ofd='open .' alias ffput='ffsend upload --host=https://send.xlnet.app $1' alias ffget='ffsend download $1' #alias ffput='ffsend up # Added by LM Studio CLI tool (lms) export PATH="$PATH:/Users/raph/.cache/lm-studio/bin" fdev() { local repo=$(find ~/dev -maxdepth 1 -mindepth 1 -type d -exec basename {} \; | fzf --height 40% --reverse --border --preview 'tree -C ~/dev/{} | head -200') if [[ -n ~/dev/$repo ]]; then cd ~/dev/$repo fi } #source /opt/homebrew/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh #source "/usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh" # A Colorful Prompt with OS Version #autoload -Uz colors #colors #bg1='#bdf'; bg2='#259'; bg3='236' #fg1='#259'; fg2='#bdf'; fg3='245' #os_version="FreeBSD $(freebsd-version | sed 's/-RELEASE-//')" #os_version="$(git_prompt_info)" #PROMPT_HOSTNAME="%K{$bg1}%F{$fg1} %m %K{$bg2}%F{$bg1}" #PROMPT_OS_AND_KERNEL="%K{$bg2}%F{$fg2}${os_version} %(!.%K{red}%F{$bg2}.%K{$bg3}%F{$bg2})" #PROMPT_DIRECTORY="%(!.%K{red}%F{white}.%K{$bg3}%F{$fg3})%3~ %(!.%k%F{red}.%k%F{$bg3}) " #PROMPT="${PROMPT_HOSTNAME} ${PROMPT_DIRECTORY}%f%k" #PROMPT="${PROMPT_HOSTNAME} ${PROMPT_OS_AND_KERNEL} ${PROMPT_DIRECTORY}%f%k" #PROMPT= "%(?:%{%}%1{➜%} :%{%}%1{➜%} ) %{%}%c%{%} $(git_prompt_info)" # Enable fzf #source /opt/homebrew/Cellar/fzf/0.61.3/shell/key-bindings.zsh #source /opt/homebrew/Cellar/fzf/0.61.3/shell/completion.zsh source <(fzf --zsh) # Preview file content using bat (https://github.com/sharkdp/bat) export FZF_CTRL_T_OPTS=" --walker-skip .git,node_modules,target --preview 'bat -n --color=always {}' --bind 'ctrl-/:change-preview-window(down|hidden|)'" export FZF_COMPLETION_DIR_COMMANDS="cd pushd rmdir tree" #alias ssh="ssh $1 -t tmux new-session -A -s raph zsh" source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" [ -f ~/.fzf.zsh ] && source ~/.fzf.zsh