diff --git a/.config/ghostty/config b/.config/ghostty/config index 5cc95b5..7fad78f 100644 --- a/.config/ghostty/config +++ b/.config/ghostty/config @@ -96,6 +96,8 @@ keybind = super+k=clear_screen keybind = super+physical:two=goto_tab:2 keybind = super+physical:six=goto_tab:6 keybind = super+v=paste_from_clipboard +keybind = alt+backspace=text:\x1b\x7f +keybind = shift+enter=text:\n window-padding-x = 2 window-padding-y = 2 window-padding-balance = false diff --git a/.config/ghostty/shaders/cursor_blaze.glsl b/.config/ghostty/shaders/cursor_blaze.glsl index 6da0090..5e46b8c 100644 --- a/.config/ghostty/shaders/cursor_blaze.glsl +++ b/.config/ghostty/shaders/cursor_blaze.glsl @@ -64,7 +64,7 @@ vec4 saturate(vec4 color, float factor) { float gray = dot(color, vec4(0.299, 0.587, 0.114, 0.)); // luminance return mix(vec4(gray), color, factor); } -const vec4 TRAIL_COLOR = vec4(1.0, 0.725, 0.161, 1.0); +const vec4 TRAIL_COLOR = vec4(0.161, 0.725, 1.0, 1.0); const vec4 TRAIL_COLOR_ACCENT = vec4(1.0, 0., 0., 1.0); const float DURATION = 0.3; //IN SECONDS diff --git a/.config/tmux/tmux.conf##template.j2 b/.config/tmux/tmux.conf##template.j2 index 690ffd9..c0f2eb6 100644 --- a/.config/tmux/tmux.conf##template.j2 +++ b/.config/tmux/tmux.conf##template.j2 @@ -61,6 +61,7 @@ set -g @plugin 'sainnhe/tmux-fzf' # prefix + F set -g @plugin 'tmux-plugins/tmux-urlview' # prefix + u set -g @plugin 'tmux-plugins/tmux-yank' # prefix + y set -g @plugin 'schasse/tmux-jump' # prefix + j +set -g @plugin 'loichyan/tmux-toggle-popup' {% if YADM_OS == "Darwin" %} run '/opt/homebrew/opt/tpm/share/tpm/tpm' @@ -81,3 +82,8 @@ bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel # Use F12 for pane sync bind-key e set-window-option synchronize-panes\; display-message "synchronize-panes is now #{?pane_synchronized,on,off}" + +bind-key p run "#{@popup-toggle} -w75% -h75% -Ed'##{pane_current_path}'" + +bind-key g split-window -h -p 40 -c "#{pane_current_path}" "sh -c 'if command -v mise >/dev/null 2>&1; then mise exec -- claude; else claude; fi'" +bind-key G split-window -h -p 40 -c "#{pane_current_path}" "sh -c 'if command -v mise >/dev/null 2>&1; then mise exec -- codex; else codex; fi'" diff --git a/.config/zsh/asdf.zsh b/.config/zsh/asdf.zsh deleted file mode 100644 index d950315..0000000 --- a/.config/zsh/asdf.zsh +++ /dev/null @@ -1,206 +0,0 @@ -export ASDF_NODEJS_LEGACY_FILE_DYNAMIC_STRATEGY=latest_installed -export ASDF_GOLANG_MOD_VERSION_ENABLED=true -export KERL_BUILD_DOCS="yes" -export KERL_CONFIGURE_OPTIONS="--without-javac --without-wx --without-odbc --enable-threads --enable-kernel-poll --enable-webview --enable-gettimeofday-as-os-system-time" - -asdf-up() { - plugin=$1 - cur_version=`asdf current ${plugin} | tr -s ' ' | cut -d ' ' -f 2` - echo Updating plugin: $plugin version: $cur_version - asdf uninstall ${plugin} ${cur_version} && asdf install ${plugin} ${cur_version} -} - - - -# asdf_clean_unused() { -# local plugin=$1 -# local dry_run=0 -# local search_dir=~/src -# local usage="Usage: asdf_clean_unused [--dry-run] [--dir=/path/to/search]" - -# if [[ -z "$plugin" ]]; then -# echo "$usage" -# return 1 -# fi - -# # Parse flags -# shift -# while [[ $# -gt 0 ]]; do -# case "$1" in -# --dry-run) -# dry_run=1 -# ;; -# --dir=*) -# search_dir="${1#--dir=}" -# ;; -# *) -# echo "Unknown option: $1" -# echo "$usage" -# return 1 -# ;; -# esac -# shift -# done - -# # Ensure `fd` is available -# if ! command -v fd &>/dev/null; then -# echo "Error: 'fd' is not installed or not in your PATH." -# echo "Install it with 'brew install fd' or 'apt install fd-find'" -# return 1 -# fi - -# # Use associative array to track in-use versions -# local -A seen_versions - -# # Parse all .tool-versions files in the specified directory -# while IFS= read -r file; do -# while IFS= read -r line || [[ -n "$line" ]]; do -# [[ -z "$line" || "$line" == \#* ]] && continue -# local tool_and_versions=(${(z)line}) # Zsh-specific word splitting -# local tool="${tool_and_versions[1]}" -# if [[ "$tool" == "$plugin" ]]; then -# for version in "${tool_and_versions[@]:1}"; do -# seen_versions["$version"]=1 -# done -# fi -# done < "$file" -# done < <(fd .tool-versions "$search_dir") - -# # Add active version(s) from `asdf list` -# local versions -# versions=$(asdf list "$plugin") - -# while IFS= read -r line; do -# [[ -z "$line" ]] && continue -# local cleaned="${line#"${line%%[![:space:]]*}"}" -# cleaned="${cleaned%"${cleaned##*[![:space:]]}"}" -# cleaned="${cleaned#"*"}" -# seen_versions["$cleaned"]=1 -# done <<< "$versions" - -# # Uninstall any version not marked as seen -# echo "$versions" | while IFS= read -r line; do -# [[ -z "$line" ]] && continue -# local version="${line#"${line%%[![:space:]]*}"}" -# version="${version%"${version##*[![:space:]]}"}" -# version="${version#"*"}" - -# if [[ -n "${seen_versions[$version]}" ]]; then -# echo "Skipping in-use version: $version" -# else -# if [[ "$dry_run" -eq 1 ]]; then -# echo "[Dry Run] Would uninstall $plugin version: $version" -# else -# echo "Uninstalling $plugin version: $version" -# asdf uninstall "$plugin" "$version" -# fi -# fi -# done -# } - -export KERL_CONFIGURE_OPTIONS="$KERL_CONFIGURE_OPTIONS --enable-darwin-64bit" - -# export CXXFLAGS="-ffat-lto-objects" -# export CFLAGS="-O2 -ffat-lto-objects" -export CFLAGS="" -export LDFLAGS="" - -if which brew > /dev/null; then - blah=`brew --prefix openssl > /dev/null` - if [ $? -eq 0 ]; then - export CFLAGS="$CFLAGS -I$(brew --prefix openssl)/include" - export LDFLAGS="$LDFLAGS -L$(brew --prefix openssl)/lib" - fi -fi - -# uv -export PATH="$HOME/.local/bin:$PATH" - -# Stuff for building erlang on Apple ARM -# if [ -d "/opt/homebrew/opt/openssl@1.1/lib" ]; then -# export LDFLAGS="-L/opt/homebrew/opt/openssl@1.1/lib" -# export CPPFLAGS="-I/opt/homebrew/opt/openssl@1.1/include" -# export KERL_CONFIGURE_OPTIONS="--disable-debug --disable-silent-rules --without-javac --enable-shared-zlib --enable-dynamic-ssl-lib --enable-threads --enable-kernel-poll --enable-wx --enable-webview --enable-darwin-64bit --enable-gettimeofday-as-os-system-time --with-ssl=$(brew --prefix openssl@1.1)" KERL_BUILD_DOCS="yes" -# fi - -# Remove unused asdf plugin versions, with optional --dry-run, --dir, and --verbose -asdf_clean_unused_versions() { - local plugin=$1 - local dry_run=0 - local verbose=0 - local search_dir=~/src - - # Parse flags - shift - while [[ $# -gt 0 ]]; do - case "$1" in - --dry-run) - dry_run=1 - ;; - --verbose) - verbose=1 - ;; - --dir=*) - search_dir="${1#--dir=}" - ;; - *) - echo "Unknown option: $1" - return 1 - ;; - esac - shift - done - - # Collect all in-use versions from .tool-versions files - local -A in_use_versions - local -A version_sources - if command -v fd &>/dev/null; then - while IFS= read -r file; do - while IFS= read -r line || [[ -n "$line" ]]; do - [[ -z "$line" || "$line" == \#* ]] && continue - local arr=(${(z)line}) - [[ "${arr[1]}" != "$plugin" ]] && continue - for v in "${arr[@]:1}"; do - # Normalize the version completely before using as key - local normalized_v="${v//[\"']/}" - normalized_v="${normalized_v#"${normalized_v%%[![:space:]]*}"}" - normalized_v="${normalized_v%"${normalized_v##*[![:space:]]}"}" - in_use_versions["$normalized_v"]=1 - version_sources["$normalized_v"]+="$file\n" - done - done < "$file" - done < <(fd .tool-versions "$search_dir") - fi - - if [[ $verbose -eq 1 ]]; then - echo "Versions found in .tool-versions files for $plugin:" - for v in ${(k)in_use_versions}; do - echo " $v" - local IFS=$'\n' - for src in ${(f)version_sources[$v]}; do - echo " found in: $src" - done - done - fi - - # Now process asdf list - asdf list "$plugin" | while read -r line; do - local trimmed="${line#"${line%%[![:space:]]*}"}" - trimmed="${trimmed%"${trimmed##*[![:space:]]}"}" - local version="${trimmed//\*/}" - version="${version//[\"']/}" - version="${version#"${version%%[![:space:]]*}"}" - version="${version%"${version##*[![:space:]]}"}" - if [[ "$trimmed" == *"*"* || -n "${in_use_versions[\"$version\"]}" ]]; then - echo "Skipping in-use version: $trimmed" - elif [[ -n "$trimmed" ]]; then - if [[ $dry_run -eq 1 ]]; then - echo "[Dry Run] Would uninstall $plugin $version" - else - echo "Uninstalling $plugin $version" - asdf uninstall "$plugin" "$version" - fi - fi - done -} - diff --git a/.config/zsh/gitlab.zsh b/.config/zsh/gitlab.zsh index b522222..e05831e 100644 --- a/.config/zsh/gitlab.zsh +++ b/.config/zsh/gitlab.zsh @@ -1,4 +1,5 @@ alias glvw="glab repo view --web" +alias glvmr="glab mr view --web" alias glmr="glab mr create --fill --squash-before-merge --remove-source-branch --allow-collaboration" #compdef gitlab-ci-local diff --git a/.gitconfig##template b/.gitconfig##template index 6c7cca3..2fc560e 100644 --- a/.gitconfig##template +++ b/.gitconfig##template @@ -13,6 +13,7 @@ [core] commentChar = @ pager = delta + excludesFile = ~/.gitignore [gpg] format = ssh @@ -23,6 +24,7 @@ {% else %} [core] pager = delta + excludesFile = ~/.gitignore {% endif %} [commit] @@ -58,7 +60,10 @@ diffFilter = delta --color-only [delta] - navigate = true + features = catppuccin-mocha + navigate = true # use n/N to jump between hunks + side-by-side = true + line-numbers = true dark = true [merge] @@ -66,3 +71,34 @@ [diff] colorMoved = default + +[delta "catppuccin-mocha"] + blame-palette = "#1e1e2e #181825 #11111b #313244 #45475a" + commit-decoration-style = "#6c7086" bold box ul + dark = true + file-decoration-style = "#6c7086" + file-style = "#cdd6f4" + hunk-header-decoration-style = "#6c7086" box ul + hunk-header-file-style = bold + hunk-header-line-number-style = bold "#a6adc8" + hunk-header-style = file line-number syntax + line-numbers-left-style = "#6c7086" + line-numbers-minus-style = bold "#f38ba8" + line-numbers-plus-style = bold "#a6e3a1" + line-numbers-right-style = "#6c7086" + line-numbers-zero-style = "#6c7086" + # 35% red 65% base + minus-emph-style = bold syntax "#694559" + # 20% red 80% base + minus-style = syntax "#493447" + # 35% green 65% base + plus-emph-style = bold syntax "#4e6356" + # 20% green 80% base + plus-style = syntax "#394545" + map-styles = \ + bold purple => syntax "#5b4e74", \ + bold blue => syntax "#445375", \ + bold cyan => syntax "#446170", \ + bold yellow => syntax "#6b635b" + # Should match the name of the bat theme + syntax-theme = Catppuccin Mocha diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7bc0cde --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.sidecar +.td +.DS_Store +.worktrees diff --git a/.p10k.zsh b/.p10k.zsh index a350b0e..647fe16 100644 --- a/.p10k.zsh +++ b/.p10k.zsh @@ -1,8 +1,8 @@ -# Generated by Powerlevel10k configuration wizard on 2025-07-03 at 08:19 EDT. -# Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh, checksum 49619. +# Generated by Powerlevel10k configuration wizard on 2026-02-12 at 09:10 EST. +# Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh, checksum 57633. # Wizard options: nerdfont-v3 + powerline, small icons, rainbow, unicode, 24h time, -# angled separators, flat heads, sharp tails, 2 lines, solid, full frame, -# light-ornaments, sparse, many icons, fluent, instant_prompt=quiet. +# slanted separators, sharp heads, flat tails, 2 lines, solid, no frame, dark-ornaments, +# sparse, many icons, concise, transient_prompt, instant_prompt=verbose. # Type `p10k configure` to generate another config. # # Config for Powerlevel10k with powerline prompt style with colorful background. @@ -37,7 +37,7 @@ vcs # git status # =========================[ Line #2 ]========================= newline # \n - # prompt_char # prompt symbol + prompt_char # prompt symbol ) # The list of segments shown on the right. Fill it with less important segments. @@ -96,7 +96,7 @@ midnight_commander # midnight commander shell (https://midnight-commander.org/) nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) chezmoi_shell # chezmoi shell (https://www.chezmoi.io/) - vi_mode # vi mode (you don't need this if you've enabled prompt_char) + # vi_mode # vi mode (you don't need this if you've enabled prompt_char) # vpn_ip # virtual private network indicator # load # CPU load # disk_usage # disk usage @@ -142,13 +142,13 @@ # Connect left prompt lines with these symbols. You'll probably want to use the same color # as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%242F╭─' - typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%242F├─' - typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%242F╰─' + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX= + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX= + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX= # Connect right prompt lines with these symbols. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='%242F─╮' - typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='%242F─┤' - typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%242F─╯' + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX= + typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX= + typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX= # Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or # '─'. The last two make it easier to see the alignment between left and right prompt and to @@ -160,7 +160,7 @@ if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then # The color of the filler. You'll probably want to match the color of POWERLEVEL9K_MULTILINE # ornaments defined above. - typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=242 + typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=240 # Start filler from the edge of the screen if there are no left segments on the first line. typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}' # End filler on the edge of the screen if there are no right segments on the first line. @@ -168,24 +168,24 @@ fi # Separator between same-color segments on the left. - typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='\uE0B1' + typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='\u2571' # Separator between same-color segments on the right. - typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='\uE0B3' + typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='\u2571' # Separator between different-color segments on the left. - typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0' + typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0BC' # Separator between different-color segments on the right. - typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0B2' + typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0BA' # To remove a separator between two segments, add "_joined" to the second segment name. # For example: POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(os_icon context_joined) # The right end of left prompt. - typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='' + typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B0' # The left end of right prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='' + typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\uE0B2' # The left end of left prompt. - typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\uE0B2' + typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL='' # The right end of right prompt. - typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B0' + typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL='' # Left prompt terminator for lines without any segments. typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL= @@ -503,7 +503,7 @@ # Custom icon. # typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION='⭐' # Custom prefix. - typeset -g POWERLEVEL9K_VCS_PREFIX='on ' + # typeset -g POWERLEVEL9K_VCS_PREFIX='on ' # Show status of repositories of these types. You can add svn and/or hg if you are # using them. If you do, your prompt may become slow even when your current directory @@ -517,7 +517,7 @@ # Status on success. No content, just an icon. No need to show it if prompt_char is enabled as # it will signify success by turning green. - typeset -g POWERLEVEL9K_STATUS_OK=true + typeset -g POWERLEVEL9K_STATUS_OK=false typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔' typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=2 typeset -g POWERLEVEL9K_STATUS_OK_BACKGROUND=0 @@ -531,7 +531,7 @@ # Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as # it will signify error by turning red. - typeset -g POWERLEVEL9K_STATUS_ERROR=true + typeset -g POWERLEVEL9K_STATUS_ERROR=false typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='✘' typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=3 typeset -g POWERLEVEL9K_STATUS_ERROR_BACKGROUND=1 @@ -564,7 +564,7 @@ # Custom icon. # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐' # Custom prefix. - typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='took ' + # typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='took ' #######################[ background_jobs: presence of background jobs ]####################### # Background jobs color. @@ -995,7 +995,7 @@ # Custom icon. # typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐' # Custom prefix. - typeset -g POWERLEVEL9K_CONTEXT_PREFIX='with ' + # typeset -g POWERLEVEL9K_CONTEXT_PREFIX='with ' ###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]### # Python virtual environment color. @@ -1371,9 +1371,6 @@ # Custom icon. # typeset -g POWERLEVEL9K_TERRAFORM_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐' - ################[ terraform_version: It shows active terraform version (https://www.terraform.io) ]################# - typeset -g POWERLEVEL9K_TERRAFORM_VERSION_SHOW_ON_COMMAND='terraform|tf' - #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]############# # Show kubecontext only when the command you are typing invokes one of these tools. # Tip: Remove the next line to always show kubecontext. @@ -1461,12 +1458,12 @@ POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}' # Custom prefix. - typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='at ' + # typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='at ' #[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]# # Show aws only when the command you are typing invokes one of these tools. # Tip: Remove the next line to always show aws. - typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|cdk|terraform|pulumi|terragrunt' + typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|cdk|terraform|tofu|pulumi|terragrunt' # POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element # in each pair defines a pattern against which the current AWS profile gets matched. @@ -1515,7 +1512,7 @@ ##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]########## # Show azure only when the command you are typing invokes one of these tools. # Tip: Remove the next line to always show azure. - typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt' + typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|tofu|pulumi|terragrunt' # POWERLEVEL9K_AZURE_CLASSES is an array with even number of elements. The first element # in each pair defines a pattern against which the current azure account name gets matched. @@ -1597,7 +1594,7 @@ #[ google_app_cred: google application credentials (https://cloud.google.com/docs/authentication/production) ]# # Show google_app_cred only when the command you are typing invokes one of these tools. # Tip: Remove the next line to always show google_app_cred. - typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_SHOW_ON_COMMAND='terraform|pulumi|terragrunt' + typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_SHOW_ON_COMMAND='terraform|tofu|pulumi|terragrunt' # Google application credentials classes for the purpose of using different colors, icons and # expansions with different credentials. @@ -1658,7 +1655,7 @@ # Custom icon. # typeset -g POWERLEVEL9K_TOOLBOX_VISUAL_IDENTIFIER_EXPANSION='⭐' # Custom prefix. - typeset -g POWERLEVEL9K_TOOLBOX_PREFIX='in ' + # typeset -g POWERLEVEL9K_TOOLBOX_PREFIX='in ' ###############################[ public_ip: public IP address ]############################### # Public IP color. @@ -1768,7 +1765,7 @@ # Custom icon. # typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐' # Custom prefix. - typeset -g POWERLEVEL9K_TIME_PREFIX='at ' + # typeset -g POWERLEVEL9K_TIME_PREFIX='at ' # Example of a user-defined prompt segment. Function prompt_example will be called on every # prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or @@ -1811,7 +1808,7 @@ # - always: Trim down prompt when accepting a command line. # - same-dir: Trim down prompt when accepting a command line unless this is the first command # typed after changing current working directory. - typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=off + typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always # Instant prompt mode. # diff --git a/.zshrc b/.zshrc index fa6e59e..999cc11 100644 --- a/.zshrc +++ b/.zshrc @@ -10,6 +10,9 @@ fi # 2. Load Zinit source "${HOME}/.local/share/zinit/zinit.git/zinit.zsh" +autoload -Uz compinit +zicompinit + export ZSH_CUSTOM=$HOME/.config/zsh # 3. Load Powerlevel10k — do NOT use ice wait or turbo on it @@ -19,11 +22,12 @@ zinit light romkatv/powerlevel10k # 4. Source your p10k config [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh + # 5. Initialize completions early (needed for proper tab completion) export CARAPACE_BRIDGES='zsh,fish,bash,inshellisense' # optional zinit ice as'program' id-as'carapace' from'gh-r' atload' \ - autoload -Uz compinit; \ - compinit; \ + # autoload -Uz compinit; \ + # compinit; \ source <(carapace _carapace);' zinit light carapace-sh/carapace-bin @@ -33,17 +37,29 @@ zinit light carapace-sh/carapace-bin zinit ice wait lucid atload'_zsh_autosuggest_start' zinit light zsh-users/zsh-autosuggestions -zinit ice wait lucid blockf +# zinit ice wait lucid blockf zinit light wintermi/zsh-brew -zinit ice wait lucid blockf -zinit snippet OMZP::asdf/asdf.plugin.zsh +# zinit ice wait lucid blockf +zinit as="command" lucid from="gh-r" for \ + id-as="usage" \ + atpull="%atclone" \ + jdx/usage + #atload='eval "$(mise activate zsh)"' \ + +zinit as="command" lucid from="gh-r" for \ + id-as="mise" mv="mise* -> mise" \ + atclone="./mise* completion zsh > _mise" \ + atpull="%atclone" \ + atload='eval "$(mise activate zsh)"' \ + jdx/mise # mmv renamer zinit ice lucid wait'0' as'program' id-as'mmv' from'gh-r' \ mv'mmv* -> mmv' pick'mmv/mmv' zinit light 'itchyny/mmv' +bindkey -e export ATUIN_NOBIND="true" zinit ice wait lucid blockf zinit light atuinsh/atuin @@ -67,7 +83,7 @@ if [[ "${TERM_PROGRAM}" == "tmux" ]]; then zstyle ':fzf-tab:*' query-string '' fi -# # direnv — from GitHub releases +# direnv — from GitHub releases zinit from"gh-r" as"program" mv"direnv* -> direnv" \ atclone'./direnv hook zsh > zhook.zsh' atpull'%atclone' \ pick"direnv" src="zhook.zsh" for \ @@ -77,12 +93,15 @@ zinit from"gh-r" as"program" mv"direnv* -> direnv" \ zinit ice wait lucid zinit light zdharma-continuum/fast-syntax-highlighting + # 8. Completions (keep blockf, no wait!) zi for \ blockf \ lucid \ zsh-users/zsh-completions +zicdreplay + # 9. Load all custom configs from $ZSH_CUSTOM for config_file ("$ZSH_CUSTOM"/*.zsh(N)); do source "$config_file" @@ -112,3 +131,9 @@ bindkey ^p _sgpt_zsh if [ -n "${ZSH_DEBUGRC+1}" ]; then zprof fi +export PATH=$PATH:~/.kube/plugins/jordanwilson230 + +# Codeman tmux session shortcut +alias sc='tmux-chooser' + +alias claude-mem='bun "/Users/tedkulp/.claude/plugins/cache/thedotmack/claude-mem/10.5.5/scripts/worker-service.cjs"'