From 81b476bcf4b51c1eca2aa28fd9b6641e53998759 Mon Sep 17 00:00:00 2001 From: Danielle McLean Date: Mon, 20 Nov 2023 12:57:31 +1100 Subject: [PATCH 1/5] Move background-jobs indicator to more prominent spot --- dot-config/zsh/p10k.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dot-config/zsh/p10k.zsh b/dot-config/zsh/p10k.zsh index 32389a3..4ba9348 100644 --- a/dot-config/zsh/p10k.zsh +++ b/dot-config/zsh/p10k.zsh @@ -37,6 +37,7 @@ vcs # git status # =========================[ Line #2 ]========================= newline # \n + background_jobs # presence of background jobs prompt_char # prompt symbol ) @@ -48,7 +49,6 @@ # =========================[ Line #1 ]========================= status # exit code of the last command command_execution_time # duration of the last command - background_jobs # presence of background jobs direnv # direnv status (https://direnv.net/) asdf # asdf version manager (https://github.com/asdf-vm/asdf) virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html) From ddb6433bb9dca8fb5e9d6d27c6ff123887fe02c0 Mon Sep 17 00:00:00 2001 From: Danielle McLean Date: Mon, 20 Nov 2023 12:57:54 +1100 Subject: [PATCH 2/5] Autoload zcalc for quick arithmetic --- dot-config/zsh/all/functions | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dot-config/zsh/all/functions b/dot-config/zsh/all/functions index 5c86f8c..38d8133 100644 --- a/dot-config/zsh/all/functions +++ b/dot-config/zsh/all/functions @@ -4,4 +4,4 @@ # to call one in a script so non-interactive shells need them. autoload count autoload enphp -autoload -Uz zargs zmv +autoload -Uz zargs zcalc zmv From fcb897de807ad7ca7db23458ce74510caa83f9ce Mon Sep 17 00:00:00 2001 From: Danielle McLean Date: Mon, 20 Nov 2023 13:41:08 +1100 Subject: [PATCH 3/5] Swap from zinit to Zim: much simpler and just as fast --- dot-config/zsh/all/0-zinit-module | 10 ------- dot-config/zsh/plugins.zsh | 44 +++++++++++++------------------ dot-config/zsh/zimrc.zsh | 29 ++++++++++++++++++++ 3 files changed, 47 insertions(+), 36 deletions(-) delete mode 100644 dot-config/zsh/all/0-zinit-module create mode 100644 dot-config/zsh/zimrc.zsh diff --git a/dot-config/zsh/all/0-zinit-module b/dot-config/zsh/all/0-zinit-module deleted file mode 100644 index e207df0..0000000 --- a/dot-config/zsh/all/0-zinit-module +++ /dev/null @@ -1,10 +0,0 @@ -#! zsh -typeset -A ZINIT -ZINIT[HOME_DIR]=${XDG_CACHE_HOME:-~/.cache}/zinit -ZINIT[BIN_DIR]=${ZINIT[HOME_DIR]}/zinit.git -ZINIT[ZCOMPDUMP_PATH]=${XDG_CACHE_HOME:-~/.cache}/zsh/zcompdump.zsh - -if [[ -e ${ZINIT[HOME_DIR]}/module/Src/zdharma_continuum/zinit.so ]]; then - module_path+=( ${ZINIT[HOME_DIR]}/module/Src ) - zmodload zdharma_continuum/zinit -fi diff --git a/dot-config/zsh/plugins.zsh b/dot-config/zsh/plugins.zsh index 90a648e..3256b9f 100644 --- a/dot-config/zsh/plugins.zsh +++ b/dot-config/zsh/plugins.zsh @@ -1,30 +1,22 @@ #! zsh +: ${ZIM_HOME:=$XDG_CACHE_HOME/zim} +: ${ZIM_CONFIG_FILE:=$XDG_CONFIG_HOME/zsh/zimrc.zsh} +zstyle :zim:completion dumpfile ${XDG_CACHE_HOME:-~/.cache}/zsh/zcompdump.zsh -[[ ! -d $ZINIT[HOME_DIR] ]] && mkdir -p $ZINIT[HOME_DIR] -if [[ ! -d $ZINIT[BIN_DIR]/.git ]]; then - git clone https://github.com/zdharma-continuum/zinit.git $ZINIT[BIN_DIR] - zcompile $ZINIT[BIN_DIR]/zinit.zsh +# Sure, I typically run MacOS, which uses a case-insensitive filesystem, but +# that doesn't mean I have to like it. ;) +zstyle ':zim:*' case-sensitivity sensitive + +zstyle :zim:termtitle hooks preexec precmd +zstyle :zim:termtitle:preexec format '${${(A)=1}[1]}' +zstyle :zim:termtitle:precmd format '%1~' + +if [[ ! -e $ZIM_HOME/zimfw.zsh ]]; then + curl -fsSL --create-dirs -o $ZIM_HOME/zimfw.zsh https://github.com/zimfw/zimfw/releases/latest/download/zimfw.zsh + zcompile $ZIM_HOME/zimfw.zsh +fi +if [[ ! $ZIM_HOME/init.zsh -nt $ZIM_CONFIG_FILE ]]; then + source $ZIM_HOME/zimfw.zsh init -q fi -source $ZINIT[BIN_DIR]/zinit.zsh -load=light -zinit $load willghatch/zsh-saneopt - -zinit $load mafredri/zsh-async - -zinit ice depth'1' -zinit $load romkatv/powerlevel10k - -vivid_theme=molokai -(( $+commands[vivid] )) && zinit ice atclone'./build.sh' atpull'%atclone' run-atpull -zinit $load ryanccn/vivid-zsh - -zinit wait lucid light-mode for \ - hlissner/zsh-autopair \ - mollifier/cd-gitroot \ - atinit"dot-zsh-compinit" \ - zdharma-continuum/fast-syntax-highlighting \ - atload"_zsh_autosuggest_start" \ - zsh-users/zsh-autosuggestions \ - blockf atpull'zinit creinstall -q .' \ - zsh-users/zsh-completions +source $ZIM_HOME/init.zsh diff --git a/dot-config/zsh/zimrc.zsh b/dot-config/zsh/zimrc.zsh new file mode 100644 index 0000000..6cf6b27 --- /dev/null +++ b/dot-config/zsh/zimrc.zsh @@ -0,0 +1,29 @@ +zmodule willghatch/zsh-saneopt --source saneopt.plugin.zsh +zmodule environment + +zmodule mafredri/zsh-async --source async.zsh + +zmodule input +zmodule run-help +zmodule magic-enter +zmodule termtitle +zmodule utility + +zmodule romkatv/powerlevel10k --use degit +zmodule ryanccn/vivid-zsh --cmd 'vivid_theme=molokai source {}/vivid-zsh.plugin.zsh' --on-pull '(( ${+commands[vivid]} )) && ./build.sh' + +zmodule hlissner/zsh-autopair +zmodule mollifier/cd-gitroot --fpath . --autoload cd-gitroot +zmodule kiesman99/zim-zoxide +zmodule zsh-users/zsh-autosuggestions + +(( ${+commands[brew]} )) && zmodule homebrew + +# Additional completion definitions for Zsh. +zmodule zsh-users/zsh-completions --fpath src +# Enables and configures smart and extensive tab completion. +# completion *must* be sourced after all modules that add completion definitions. +zmodule completion + +# Fish-style syntax highlighting as you type, making the Zsh experience much more friendly! +zmodule zdharma-continuum/fast-syntax-highlighting From 6515d9b2572b3725a92079eb802f8a2855d0bf16 Mon Sep 17 00:00:00 2001 From: Danielle McLean Date: Mon, 20 Nov 2023 13:41:29 +1100 Subject: [PATCH 4/5] Simplify and update bindkeys --- dot-config/zsh/interactive/bindings | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/dot-config/zsh/interactive/bindings b/dot-config/zsh/interactive/bindings index 9b22c08..9e555dd 100644 --- a/dot-config/zsh/interactive/bindings +++ b/dot-config/zsh/interactive/bindings @@ -1,34 +1,17 @@ #! zsh -_zsh_highlight() {} -zle-line-init() {} -zle -N zle-line-init - -autoload -Uz select-word-style -select-word-style shell - -# Allow S-Tab to backtrack through the completion menu. -bindkey $terminfo[kcbt] reverse-menu-complete # Tweaks to vi mode: -bindkey '^?' backward-delete-char # backspace over the start of Insert mode bindkey 'jj' vi-cmd-mode # inoremap jj +bindkey -M vicmd K run-help # 'keywordprg' # Backward-kill long paths one directory at a time. -bindkey '^W' backward-kill-word -zstyle ':zle:backward-kill-word' word-style unspecified -zstyle ':zle:backward-kill-word' word-chars ' /' +autoload -U backward-kill-word-match +zle -N backward-kill-word-match +bindkey '^W' backward-kill-word-match +zstyle ':zle:backward-kill-word-match' word-style unspecified +zstyle ':zle:backward-kill-word-match' word-chars ' /' # Make ^Z resume your suspended job if there is one. autoload fancy-ctrl-z zle -N fancy-ctrl-z bindkey '^Z' fancy-ctrl-z - -__fzf-z() { - z -l | tac | cut -c 12- | fzf --preview 'tree -FCL 2 {}' -} -fzf-z() { - LBUFFER+="$(__fzf-z)" - zle redisplay -} -zle -N fzf-z -bindkey '^G' fzf-z From d2e6e2f3aa6f29ba0c7f2551c53bfe59b7a657a6 Mon Sep 17 00:00:00 2001 From: Danielle McLean Date: Mon, 20 Nov 2023 13:43:02 +1100 Subject: [PATCH 5/5] Turn on p10k segments useful to me personally --- dot-config/zsh/p10k.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dot-config/zsh/p10k.zsh b/dot-config/zsh/p10k.zsh index 4ba9348..b4c0101 100644 --- a/dot-config/zsh/p10k.zsh +++ b/dot-config/zsh/p10k.zsh @@ -58,14 +58,14 @@ # nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv) # nvm # node.js version from nvm (https://github.com/nvm-sh/nvm) # nodeenv # node.js environment (https://github.com/ekalinin/nodeenv) - # node_version # node.js version + node_version # node.js version # go_version # go version (https://golang.org) # rust_version # rustc version (https://www.rust-lang.org) # dotnet_version # .NET version (https://dotnet.microsoft.com) - # php_version # php version (https://www.php.net/) + php_version # php version (https://www.php.net/) # laravel_version # laravel php framework version (https://laravel.com/) # java_version # java version (https://www.java.com/) - # package # name@version from package.json (https://docs.npmjs.com/files/package.json) + package # name@version from package.json (https://docs.npmjs.com/files/package.json) # rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv) # rvm # ruby version from rvm (https://rvm.io) # fvm # flutter version management (https://github.com/leoafarias/fvm) @@ -111,7 +111,7 @@ # ip # ip address and bandwidth usage for a specified network interface # public_ip # public IP address # proxy # system-wide http/https/ftp proxy - # battery # internal battery + battery # internal battery # wifi # wifi speed # example # example user-defined segment (see prompt_example function below) )