# Path to your Oh My Zsh installation. export ZSH="$HOME/.oh-my-zsh" ZSH_THEME="robbyrussell" # 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 enable command auto-correction. # ENABLE_CORRECTION="true" plugins=(git archlinux colored-man-pages copybuffer docker docker-compose eza fancy-ctrl-z git gitignore gitfast golang python safe-paste ssh sudo tmux zsh-syntax-highlighting ) ZSH_DISABLE_COMPFIX=true source $ZSH/oh-my-zsh.sh # Preferred editor for local and remote sessions if [[ -n $SSH_CONNECTION ]]; then export EDITOR='vim' else export EDITOR='nvim' fi alias vi=nvim alias vim=nvim alias t=tmux alias se=sudoedit alias s=sudo alias dotfiles='/usr/bin/git --git-dir="$HOME/.dotfiles/" --work-tree="$HOME"' alias cz=chezmoi export PATH=$PATH:/home/yt/.cargo/bin export FZF_BASE=/usr/bin export FZF_DEFAULT_COMMAND=rg export FZF_DEFAULT_OPTS="--tmux" export FZF_DEFAULT_OPTS="$FZF_DEFAULT_OPTS \ --highlight-line \ --info=inline-right \ --ansi \ --layout=reverse \ --border=none --color=bg+:#283457 \ --color=bg:#16161e \ --color=border:#27a1b9 \ --color=fg:#c0caf5 \ --color=gutter:#16161e \ --color=header:#ff9e64 \ --color=hl+:#2ac3de \ --color=hl:#2ac3de \ --color=info:#545c7e \ --color=marker:#ff007c \ --color=pointer:#ff007c \ --color=prompt:#2ac3de \ --color=query:#c0caf5:regular \ --color=scrollbar:#27a1b9 \ --color=separator:#ff9e64 \ --color=spinner:#ff007c \ " export NVM_DIR="$HOME/.config/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 source <(fzf --zsh) ghcs() { FUNCNAME="$funcstack[1]" TARGET="shell" local GH_DEBUG="$GH_DEBUG" local GH_HOST="$GH_HOST" read -r -d '' __USAGE <<-EOF Wrapper around \`gh copilot suggest\` to suggest a command based on a natural language description of the desired output effort. Supports executing suggested commands if applicable. USAGE $FUNCNAME [flags] FLAGS -d, --debug Enable debugging -h, --help Display help usage --hostname The GitHub host to use for authentication -t, --target target Target for suggestion; must be shell, gh, git default: "$TARGET" EXAMPLES - Guided experience $ $FUNCNAME - Git use cases $ $FUNCNAME -t git "Undo the most recent local commits" $ $FUNCNAME -t git "Clean up local branches" $ $FUNCNAME -t git "Setup LFS for images" - Working with the GitHub CLI in the terminal $ $FUNCNAME -t gh "Create pull request" $ $FUNCNAME -t gh "List pull requests waiting for my review" $ $FUNCNAME -t gh "Summarize work I have done in issues and pull requests for promotion" - General use cases $ $FUNCNAME "Kill processes holding onto deleted files" $ $FUNCNAME "Test whether there are SSL/TLS issues with github.com" $ $FUNCNAME "Convert SVG to PNG and resize" $ $FUNCNAME "Convert MOV to animated PNG" EOF local OPT OPTARG OPTIND while getopts "dht:-:" OPT; do if [ "$OPT" = "-" ]; then # long option: reformulate OPT and OPTARG OPT="${OPTARG%%=*}" # extract long option name OPTARG="${OPTARG#"$OPT"}" # extract long option argument (may be empty) OPTARG="${OPTARG#=}" # if long option argument, remove assigning `=` fi case "$OPT" in debug | d) GH_DEBUG=api ;; help | h) echo "$__USAGE" return 0 ;; hostname) GH_HOST="$OPTARG" ;; target | t) TARGET="$OPTARG" ;; esac done # shift so that $@, $1, etc. refer to the non-option arguments shift "$((OPTIND-1))" TMPFILE="$(mktemp -t gh-copilotXXXXXX)" trap 'rm -f "$TMPFILE"' EXIT if GH_DEBUG="$GH_DEBUG" GH_HOST="$GH_HOST" gh copilot suggest -t "$TARGET" "$@" --shell-out "$TMPFILE"; then if [ -s "$TMPFILE" ]; then FIXED_CMD="$(cat $TMPFILE)" print -s "$FIXED_CMD" echo eval "$FIXED_CMD" fi else return 1 fi } ghce() { FUNCNAME="$funcstack[1]" local GH_DEBUG="$GH_DEBUG" local GH_HOST="$GH_HOST" read -r -d '' __USAGE <<-EOF Wrapper around \`gh copilot explain\` to explain a given input command in natural language. USAGE $FUNCNAME [flags] FLAGS -d, --debug Enable debugging -h, --help Display help usage --hostname The GitHub host to use for authentication EXAMPLES # View disk usage, sorted by size $ $FUNCNAME 'du -sh | sort -h' # View git repository history as text graphical representation $ $FUNCNAME 'git log --oneline --graph --decorate --all' # Remove binary objects larger than 50 megabytes from git history $ $FUNCNAME 'bfg --strip-blobs-bigger-than 50M' EOF local OPT OPTARG OPTIND while getopts "dh-:" OPT; do if [ "$OPT" = "-" ]; then # long option: reformulate OPT and OPTARG OPT="${OPTARG%%=*}" # extract long option name OPTARG="${OPTARG#"$OPT"}" # extract long option argument (may be empty) OPTARG="${OPTARG#=}" # if long option argument, remove assigning `=` fi case "$OPT" in debug | d) GH_DEBUG=api ;; help | h) echo "$__USAGE" return 0 ;; hostname) GH_HOST="$OPTARG" ;; esac done # shift so that $@, $1, etc. refer to the non-option arguments shift "$((OPTIND-1))" GH_DEBUG="$GH_DEBUG" GH_HOST="$GH_HOST" gh copilot explain "$@" }