diff --git a/nvim/.config/nvim/lazy-lock.json b/nvim/.config/nvim/lazy-lock.json index f55a81a..588fa04 100644 --- a/nvim/.config/nvim/lazy-lock.json +++ b/nvim/.config/nvim/lazy-lock.json @@ -2,6 +2,7 @@ "Arduino.nvim": { "branch": "main", "commit": "774b841ef0306f88318a97d5a3527baa62241f15" }, "FixCursorHold.nvim": { "branch": "master", "commit": "1900f89dc17c603eec29960f57c00bd9ae696495" }, "Navigator.nvim": { "branch": "master", "commit": "91d86506ac2a039504d5205d32a1d4bc7aa57072" }, + "VectorCode": { "branch": "main", "commit": "171361ea0410e739f9bf2a04c75113cd80d3c0d0" }, "bats.vim": { "branch": "master", "commit": "6a5d2ef22b0ede503d867770afd02ebb1f97b709" }, "blink-copilot": { "branch": "main", "commit": "41e91a659bd9b8cba9ba2ea68a69b52ba5a9ebd8" }, "blink.cmp": { "branch": "main", "commit": "9bcb14b43852a6f2bfd5ac9ef29cb5cf09b1b39b" }, diff --git a/nvim/.config/nvim/lua/core/languages.lua b/nvim/.config/nvim/lua/core/languages.lua index 9cac9f2..ae76d07 100644 --- a/nvim/.config/nvim/lua/core/languages.lua +++ b/nvim/.config/nvim/lua/core/languages.lua @@ -72,7 +72,7 @@ local languages = { dap = { "delve" }, }, graphql = { format = { graphql = { "prettier" } } }, - html = { lsp = { htmx = {} }, format = { html = { "prettier", "rustywind" } } }, + html = { lsp = { superhtml = {} }, format = { shtml = { "superhtml" }, html = { "superhtml", "rustywind" } } }, julia = { lsp = { julials = {} }, ts = { "julia" } }, json = { lsp = { jsonls = {} }, diff --git a/nvim/.config/nvim/lua/modules/llm.lua b/nvim/.config/nvim/lua/modules/llm.lua index 0b7dc30..0097fc1 100644 --- a/nvim/.config/nvim/lua/modules/llm.lua +++ b/nvim/.config/nvim/lua/modules/llm.lua @@ -89,6 +89,16 @@ return { { "ibhagwan/fzf-lua", optional = true }, "ravitemer/codecompanion-history.nvim", "jinzhongjia/codecompanion-gitcommit.nvim", + { + "Davidyz/VectorCode", + cond = vim.fn.executable("uv") == 1, + version = "*", + build = 'uv tool install -U "vectorcode[mcp,lsp]"', + dependencies = { "nvim-lua/plenary.nvim" }, + opts = { + async_backend = "lsp", -- requires cli install as `uv tool install vectorcode[lsp]` + }, + }, { -- enable mcp server agent extensions "ravitemer/mcphub.nvim", @@ -175,10 +185,12 @@ return { extensions = { history = { enabled = true, - auto_save = false, - expiration_days = 7, - picker = "fzf-lua", - delete_on_clearing_chat = true, + opts = { + auto_save = true, + expiration_days = 14, + picker = "fzf-lua", + delete_on_clearing_chat = true, + }, }, gitcommit = { enabled = true, @@ -203,6 +215,7 @@ return { show_result_in_chat = true, -- Show tool results directly in chat buffer }, }, + vectorcode = {}, }, prompt_library = { ["DevOps strategy"] = { diff --git a/nvim/.config/nvim/lua/modules/prose.lua b/nvim/.config/nvim/lua/modules/prose.lua index 44f659c..0d277f3 100644 --- a/nvim/.config/nvim/lua/modules/prose.lua +++ b/nvim/.config/nvim/lua/modules/prose.lua @@ -75,9 +75,11 @@ local prose_plugs = { "andrewferrier/wrapping.nvim", opts = { create_keymaps = false, + create_commands = false, notify_on_switch = false, auto_set_mode_filetype_allowlist = prose_ft, softener = { quarto = 2.0, markdown = 2.0, djot = 2.0 }, + log_path = "/dev/null", -- disable logging for normal operations }, ft = prose_ft, keys = { diff --git a/nvim/.config/nvim/lua/modules/terminal.lua b/nvim/.config/nvim/lua/modules/terminal.lua index 54f5726..1f1dac2 100644 --- a/nvim/.config/nvim/lua/modules/terminal.lua +++ b/nvim/.config/nvim/lua/modules/terminal.lua @@ -72,7 +72,8 @@ return { -- simple programmable terminal toggling for nvim end, cmd = { "ToggleTerm", "TermExec", "Lazygit", "Pythonterm", "Euporieterm" }, keys = { - { "tt", ":ToggleTerm", desc = "terminal" }, + { "tt", ":ToggleTerm", desc = "terminal buffer" }, + { "tT", ":ToggleTerm direction='float'", desc = "terminal floating" }, { "tg", ":Lazygit", desc = "git floating" }, { "tG", ":Lazygit!", desc = "git buffer" }, { "tp", ":Pythonterm", desc = "python floating" }, diff --git a/qutebrowser/config/config.py b/qutebrowser/config/config.py index 2dba208..7d6c9aa 100644 --- a/qutebrowser/config/config.py +++ b/qutebrowser/config/config.py @@ -98,4 +98,5 @@ colorscheme = f"{state_dir}/qutebrowser/colorscheme.py" if os.path.isfile(colorscheme): config.source(colorscheme) -c.url.start_pages = "https://html.duckduckgo.com/lite" +c.url.start_pages = ["https://html.duckduckgo.com/lite"] +c.url.default_page = "https://html.duckduckgo.com/lite" diff --git a/qutebrowser/config/searchengines.py b/qutebrowser/config/searchengines.py index 67cbe61..ead0cd6 100644 --- a/qutebrowser/config/searchengines.py +++ b/qutebrowser/config/searchengines.py @@ -30,5 +30,3 @@ c.url.searchengines = { "w": "https://en.wikipedia.org/w/index.php?search={}", "yt": "https://yewtu.be/search?q={}", } -c.url.default_page = "https://start.duckduckgo.com" -c.url.start_pages = ["https://start.duckduckgo.com"] diff --git a/terminal/.config/zsh/zshrc b/terminal/.config/zsh/zshrc index 40561b5..cbd33b5 100644 --- a/terminal/.config/zsh/zshrc +++ b/terminal/.config/zsh/zshrc @@ -29,6 +29,7 @@ if command -v zr >/dev/null 2>&1; then zdharma-continuum/fast-syntax-highlighting \ zsh-users/zsh-autosuggestions \ zsh-users/zsh-completions \ + olets/zsh-transient-prompt \ ) else # or manually @@ -43,9 +44,13 @@ else # or manually [ -e $PLUG_FOLDER/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ] && source $PLUG_FOLDER/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh [ -e $PLUG_FOLDER/alias-tips/alias-tips.plugin.zsh ] && source $PLUG_FOLDER/alias-tips/alias-tips.plugin.zsh [ -e $PLUG_FOLDER/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh ] && source $PLUG_FOLDER/zsh-autosuggestions/zsh-autosuggestions.plugin.zsh + [ -e $PLUG_FOLDER/zsh-transient-prompt/transient-prompt.plugin.zsh ] && source $PLUG_FOLDER/zsh-transient-prompt/transient-prompt.plugin.zsh fi unset PLUG_FOLDER +ZSH_AUTOSUGGEST_STRATEGY=(history completion) +ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=20 + # simple fzf-tab settings zstyle ":fzf-tab:*" fzf-flags "--ansi" "--expect='$continuous_trigger,$print_query'" "--color=hl:$(($#headers == 0 ? 108 : 255))" "--nth=2,3" "--layout=reverse" "--height=${FZF_TMUX_HEIGHT:-75%}" "--tiebreak=begin" "-m" "--bind=tab:down,btab:up,change:top,ctrl-space:toggle" "--cycle" "--query=$query" "--header-lines=$#headers" "--print-query" @@ -91,8 +96,11 @@ zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath' # show systemd unit status zstyle ':fzf-tab:complete:systemctl-*:*' fzf-preview 'SYSTEMD_COLORS=1 systemctl status $word' # env var contents -zstyle ':fzf-tab:complete:(-command-|-parameter-|-brace-parameter-|export|unset|expand):*' \ +zstyle ':fzf-tab:complete:(-parameter-|-brace-parameter-|export|unset|expand):*' \ fzf-preview 'echo ${(P)word}' +# give MAN pages for cmds or show their expanded path +zstyle ':fzf-tab:complete:-command-:*' fzf-preview \ + '(out=$(tldr --color always "$word") 2>/dev/null && echo $out) || (out=$(MANWIDTH=$FZF_PREVIEW_COLUMNS man "$word") 2>/dev/null && echo $out) || (out=$(which "$word") && echo $out) || echo "${(P)word}"' # show hostname if we are in a distrobox environment if [ -n "$DISTROBOX_ENTER_PATH" ] && [ -f /run/.containerenv ]; then @@ -127,6 +135,9 @@ ENABLE_CORRECTION="true" setopt autocd eval "$(starship init zsh)" +TRANSIENT_PROMPT_PROMPT='$(starship prompt --terminal-width="$COLUMNS" --keymap="${KEYMAP:-}" --status="$STARSHIP_CMD_STATUS" --pipestatus="${STARSHIP_PIPE_STATUS[*]}" --cmd-duration="${STARSHIP_DURATION:-}" --jobs="$STARSHIP_JOBS_COUNT")' +TRANSIENT_PROMPT_RPROMPT='$(starship prompt --right --terminal-width="$COLUMNS" --keymap="${KEYMAP:-}" --status="$STARSHIP_CMD_STATUS" --pipestatus="${STARSHIP_PIPE_STATUS[*]}" --cmd-duration="${STARSHIP_DURATION:-}" --jobs="$STARSHIP_JOBS_COUNT")' +TRANSIENT_PROMPT_TRANSIENT_PROMPT='$(starship module character)' eval "$(zoxide init zsh)" eval "$(atuin init zsh)" export CARAPACE_BRIDGES='zsh,fish,bash,inshellisense' # optional @@ -158,7 +169,7 @@ setopt pushd_ignore_dups export HISTSIZE=1000000 export SAVEHIST=1000000 export HISTFILE="$XDG_DATA_HOME/zsh_history" -export HISTORY_IGNORE="(jrnl *|l *|ls *|z *|cd *|cd -|pwd|pwd *|exit|date)" +export HISTORY_IGNORE="(jrnl *|pass *|l *|ls *|z *|cd *|cd -|pwd|pwd *|exit|date)" ## Set ZSH History aliases # Show the top 5 commands used in recent history @@ -171,16 +182,17 @@ alias history="fc -l -d -D" ### Glob Alias expansion # Expand aliases inline - see http://blog.patshead.com/2012/11/automatically-expaning-zsh-global-aliases---simplified.html globalias() { - if [[ $LBUFFER =~ [A-Z0-9]+$ ]]; then - zle _expand_alias - zle expand-word - fi - zle self-insert + zle _expand_alias + zle expand-word + zle magic-space } zle -N globalias -bindkey " " globalias -bindkey "^ " magic-space # control-space to bypass completion -bindkey -M isearch " " magic-space # normal space during searches +bindkey -M emacs "^ " globalias # expand anything when hitting +bindkey -M viins "^ " globalias # only expand when in insert mode for vi +bindkey -M emacs " " self-insert +bindkey -M viins " " self-insert +bindkey -M vicmd " " self-insert # space puts a space, even in cmd mode +bindkey -M isearch " " self-insert # normal space during searches # allow inserting previous arguments in the current zle input # see https://stackoverflow.com/a/34861762 @@ -234,8 +246,6 @@ bindkey -M vicmd 'C' _run-cdi # insert-mode keybind is above, using regular fzf sourcing bindkey -M vicmd 'T' fzf-file-widget -# space puts a space, even in cmd mode -bindkey -a ' ' magic-space # always allow backspace/delete to remove letters bindkey '^?' backward-delete-char bindkey -a '^?' backward-delete-char diff --git a/writing/zk/config/sh/alias.d/zk.sh b/writing/zk/config/sh/alias.d/zk.sh index 2ae0812..c0bcdc1 100644 --- a/writing/zk/config/sh/alias.d/zk.sh +++ b/writing/zk/config/sh/alias.d/zk.sh @@ -1,20 +1,20 @@ #!/usr/bin/env sh -# - -_zk_wiki() { - zk --working-dir="$WIKIROOT" "$@" -} - -n() { - if [ $# -eq 0 ]; then - _zk_wiki edit -i - else - _zk_wiki "${@}" - fi -} # We have a local wiki if [ -n "${WIKIROOT}" ]; then + + _zk_wiki() { + zk --working-dir="$WIKIROOT" "$@" + } + + n() { + if [ $# -eq 0 ]; then + _zk_wiki edit -i + else + _zk_wiki "${@}" + fi + } + # open notes with my vim zettelkasten plugin # TODO better implementation conditional on zk.nvim & zettelkasten existing # nvim +'lua pcall(require "zk.commands"') --headless +qa 2>&1 or similar to check - but slow