Compare commits

...

15 Commits

46 changed files with 546 additions and 2615 deletions

1
.gitignore vendored
View File

@@ -28,4 +28,5 @@ config/gnupg/s
config/gnupg/private-keys-v1.d
config/nvim/spell/*
!config/nvim/spell/.gitkeep
antidote_plugins.zsh

4
.gitmodules vendored
View File

@@ -60,3 +60,7 @@
[submodule "asdf"]
path = local/bin/asdf
url = https://github.com/asdf-vm/asdf.git
[submodule "antidote"]
path = tools/antidote
url = https://github.com/mattmc3/antidote.git
shallow = true

View File

@@ -1,6 +1,7 @@
.git/**
config/cheat/cheatsheets/community/**
tools/dotbot/**
node_modules
tools/antidote/**
tools/dotbot-brew/**
tools/dotbot-include/**
node_modules
tools/dotbot/**

1
.nvmrc Normal file
View File

@@ -0,0 +1 @@
22.11.0

View File

@@ -19,7 +19,7 @@ repos:
args: [--autofix, --no-sort-keys]
- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.42.0
rev: v0.43.0
hooks:
- id: markdownlint
args: [-c, .markdownlint.yaml, --fix]
@@ -40,7 +40,7 @@ repos:
- id: shellcheck
- repo: https://github.com/scop/pre-commit-shfmt
rev: v3.10.0-1
rev: v3.10.0-2
hooks:
- id: shfmt

1
.python-version Normal file
View File

@@ -0,0 +1 @@
3.13.0

View File

@@ -1,2 +0,0 @@
python 3.13.0
nodejs 22.11.0

View File

@@ -17,6 +17,10 @@ git submodule add --name cheat-tldr \
-f https://github.com/ivuorinen/cheatsheet-tldr.git config/cheat/cheatsheets/tldr
git submodule add --name asdf \
-f https://github.com/asdf-vm/asdf.git local/bin/asdf
git submodule add --name antidote \
--depth 1 \
-f https://github.com/mattmc3/antidote.git tools/antidote \
# tmux plugin manager and plugins
git submodule add --name tmux/tmux-continuum \
@@ -43,6 +47,9 @@ for MODULE in $(git config --file .gitmodules --get-regexp path | awk '{ print $
git config "submodule.${MODULE}.ignore" all
done
# Mark certain repositories shallow
git config -f .gitmodules submodule.antidote.shallow true
# remove old submodules
[ -d "config/tmux/plugins/tpm" ] && rm -rf config/tmux/plugins/tpm
[ -d "config/tmux/plugins/tmux" ] && rm -rf config/tmux/plugins/tmux

View File

@@ -18,41 +18,6 @@ x-have antidot && {
eval "$(antidot init)"
}
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return ;;
esac
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u\[\033[01;33m\]@\[\033[01;36m\]\h \[\033[01;33m\]\w \[\033[01;35m\]\$ \[\033[00m\]'
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm* | rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*) ;;
esac
x-have oh-my-posh && {
eval "$(oh-my-posh init bash --config "$DOTFILES/config/omp/own.toml")"
}
PROMPT_DIRTRIM=3
PROMPT_COMMAND='PS1_CMD1=$(git branch --show-current 2>/dev/null)'
PS1='\[\e[95m\]\u\[\e[0m\]@\[\e[38;5;22;2m\]\h\[\e[0m\] \[\e[38;5;33m\]\w\[\e[0m\] \[\e[92;2m\]${PS1_CMD1}\n\[\e[39m\]➜\[\e[0m\] '

View File

@@ -1 +1,2 @@
use node
use asdf

1
base/nvmrc Normal file
View File

@@ -0,0 +1 @@
lts/*

View File

@@ -1,7 +1,5 @@
asdf-plugin-manager 1.4.0
nodejs 23.1.0
golang 1.23.3
python 3.12.7
ruby 3.3.4
rust 1.82.0
direnv 2.35.0
@@ -14,7 +12,6 @@ editorconfig-checker 2.8.0
github-cli 2.61.0
hadolint 2.12.0
kubectl 1.31.2
pipx 1.7.1
pre-commit 4.0.1
ripgrep 14.1.1
shellcheck 0.10.0
@@ -26,3 +23,5 @@ yq 4.44.3
bats 1.11.0
gitleaks 8.18.4
delta 0.18.1
eza 0.20.8
sops 3.9.1

View File

@@ -1,114 +0,0 @@
# this is my zsh config. there are many like it, but this one is mine.
# https://zsh.sourceforge.io/Intro/intro_3.html
# shellcheck shell=bash
# export VERBOSE=1
# export DEBUG=1
export DOTFILES="$HOME/.dotfiles"
LOCAL_SHARE="$HOME/.local/share"
export PATH="$HOME/.local/bin:$DOTFILES/local/bin:$LOCAL_SHARE/nvim/mason/bin:$LOCAL_SHARE/bob/nvim-bin:$LOCAL_SHARE/cargo/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
export SHARED_SCRIPTS_SOURCED=0
source "$DOTFILES/config/shared.sh"
source "${XDG_CONFIG_HOME:-$HOME/.config}/asdf-direnv/zshrc"
export ZDOTDIR="$DOTFILES/zsh"
ZSH_COMPDUMP="$XDG_CACHE_HOME/zsh/zcompdump-${SHORT_HOST}-${ZSH_VERSION}"
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
eval "$(oh-my-posh init zsh --config "$DOTFILES/config/omp/own.toml")"
# Function to load antigen if available
load_antigen()
{
local antigen_zsh_path="$XDG_BIN_HOME/antigen.zsh"
# shellcheck source=../../.local/bin/antigen.zsh
if [[ -f "$antigen_zsh_path" ]]; then
source "$antigen_zsh_path"
antigen use oh-my-zsh
# Disable ls colors to avoid issues with eza
export DISABLE_LS_COLORS=true
export ZSH_TMUX_AUTOSTART=false
export ZSH_TMUX_CONFIG="$DOTFILES/config/tmux/tmux.conf"
export ZSH_TMUX_UNICODE=true
export ZSH_TMUX_AUTOQUIT=false
export ZSH_TMUX_DEFAULT_SESSION_NAME=main
zstyle ':omz:plugins:eza' 'dirs-first' yes
zstyle ':omz:plugins:eza' 'git-status' yes
zstyle ':omz:plugins:eza' 'icons' yes
zstyle ':omz:plugins:eza' 'ls' yes
zstyle ':omz:plugins:eza' 'prompt' yes
if [[ "$OSTYPE" == darwin* ]]; then
zstyle :omz:plugins:ssh-agent keychain yes
fi
zstyle :omz:plugins:ssh-agent lazy yes
zstyle :omz:plugins:ssh-agent quiet yes
# z, the zsh version
export ZSHZ_DATA="$XDG_STATE_HOME/z"
antigen bundle z
# these should be always available
antigen bundle jreese/zsh-titles
antigen bundle brew
antigen bundle colored-man-pages
antigen bundle zsh-users/zsh-completions
x-have eza && antigen bundle eza
x-have tms && antigen bundle yuki-ycino/tms
# this needs to be the last bundle
antigen bundle zsh-users/zsh-syntax-highlighting
antigen apply
fi
}
# Function to source FZF configuration
source_fzf_config()
{
local fzf_config="${DOTFILES}/config/fzf/fzf.zsh"
if [[ -f "$fzf_config" ]]; then
# shellcheck source=config/fzf/fzf.zsh
source "$fzf_config"
fi
}
# Function to set up tmux window name plugin if tmux is active
setup_tmux_window_name_plugin()
{
if [[ -n "$TMUX" ]]; then
local tmux_window_name_plugin="$DOTFILES/config/tmux/plugins/tmux-window-name/scripts/rename_session_windows.py"
if [[ -f "$tmux_window_name_plugin" ]]; then
tmux_window_name()
{
($tmux_window_name_plugin &)
}
add-zsh-hook chpwd tmux_window_name
tmux_window_name
fi
fi
}
load_antigen
source_fzf_config
setup_tmux_window_name_plugin
if x-have antidot; then
eval "$(antidot init)"
fi
# Lando
export PATH="$HOME/.lando/bin${PATH+:$PATH}"; #landopath
autoload -Uz compinit bashcompinit
compinit -d $ZSH_COMPDUMP
bashcompinit

54
base/zshrc Normal file
View File

@@ -0,0 +1,54 @@
# this is my zsh config. there are many like it, but this one is mine.
# https://zsh.sourceforge.io/Intro/intro_3.html
# shellcheck shell=bash
# export VERBOSE=1
# export DEBUG=1
autoload -U promptinit; promptinit
export DOTFILES="$HOME/.dotfiles"
LOCAL_SHARE="$HOME/.local/share"
export PATH="$HOME/.local/bin:$DOTFILES/local/bin:$LOCAL_SHARE/nvim/mason/bin:$LOCAL_SHARE/bob/nvim-bin:$LOCAL_SHARE/cargo/bin:/opt/homebrew/bin:/usr/local/bin:$PATH"
export SHARED_SCRIPTS_SOURCED=0
source "$DOTFILES/config/shared.sh"
source "${XDG_CONFIG_HOME:-$HOME/.config}/asdf-direnv/zshrc"
ZSH_COMPDUMP="$XDG_CACHE_HOME/zsh/zcompdump-${SHORT_HOST}-${ZSH_VERSION}"
source "$DOTFILES/config/zsh/antidote.zsh"
# source "$DOTFILES/config/zsh/prompt.zsh"
# Function to source FZF configuration
source_fzf_config()
{
local fzf_config="${DOTFILES}/config/fzf/fzf.zsh"
if [[ -f "$fzf_config" ]]; then
# shellcheck source=config/fzf/fzf.zsh
source "$fzf_config"
fi
}
# Function to set up tmux window name plugin if tmux is active
setup_tmux_window_name_plugin()
{
if [[ -n "$TMUX" ]]; then
local tmux_window_name_plugin="$TMUX_PLUGINS/tmux-window-name/scripts/rename_session_windows.py"
if [[ -f "$tmux_window_name_plugin" ]]; then
tmux_window_name()
{
($tmux_window_name_plugin &)
}
add-zsh-hook chpwd tmux_window_name
tmux_window_name
fi
fi
}
source_fzf_config
setup_tmux_window_name_plugin
x-have antidot && eval "$(antidot init)"
autoload -Uz compinit bashcompinit
compinit -d $ZSH_COMPDUMP
bashcompinit

View File

@@ -7,16 +7,14 @@ delta https://github.com/andweeb/asdf-delta.git
direnv https://github.com/asdf-community/asdf-direnv.git 6ff3dbe
dotenv-linter https://github.com/wesleimp/asdf-dotenv-linter.git 1369f53
editorconfig-checker https://github.com/gabitchov/asdf-editorconfig-checker.git 585c1d5
eza https://github.com/lwiechec/asdf-eza.git 11f578d
fd https://gitlab.com/wt0f/asdf-fd.git 17d56e0
github-cli https://github.com/bartlomiejdanek/asdf-github-cli.git e0605b7
gitleaks https://github.com/jmcvetta/asdf-gitleaks.git 0cc0d7e
golang https://github.com/asdf-community/asdf-golang.git e2527a3
hadolint https://github.com/devlincashman/asdf-hadolint.git 335e230
kubectl https://github.com/asdf-community/asdf-kubectl.git 2fb3b57
nodejs https://github.com/asdf-vm/asdf-nodejs.git c36e6f0
pipx https://github.com/yozachar/asdf-pipx.git 31db618
pre-commit https://github.com/jonathanmorley/asdf-pre-commit.git 26bfc42
python https://github.com/asdf-community/asdf-python a3a0185
ripgrep https://gitlab.com/wt0f/asdf-ripgrep.git e836665
ruby https://github.com/asdf-vm/asdf-ruby.git 194fe45
rust https://github.com/code-lever/asdf-rust.git 95acf4f

View File

@@ -1,5 +1,4 @@
ansible
pipenv
semgrep
neovim
libtmux

View File

@@ -22,20 +22,12 @@ export PATH="$XDG_BIN_HOME:$DOTFILES/local/bin:$XDG_DATA_HOME/bob/nvim-bin:$XDG_
# Add zsh completions to FPATH, compinit will be called later
FPATH="$ZSH_COMPLETIONS:$FPATH"
# Load asdf
export ASDF_DIR="$XDG_BIN_HOME/asdf"
if [[ -d $ASDF_DIR ]]; then
[[ -d $ASDF_DIR/completions ]] && FPATH="$ASDF_DIR/completions:$FPATH"
[[ -d $ASDF_DIR/plugins ]] && FPATH="$ASDF_DIR/plugins:$FPATH"
source "$ASDF_DIR/asdf.sh"
fi
if ! command -v msg &> /dev/null; then
# Function to print messages if VERBOSE is enabled
# $1 - message (string)
msg()
{
[[ "$VERBOSE" -eq 1 ]] && echo "-> $1"
[[ $VERBOSE -eq 1 ]] && msgr msg "-> $1"
return 0
}
fi
@@ -51,7 +43,7 @@ else
# Optionally write a msg to stderr suggesting users install bkt.
bkt()
{
while [[ "$1" == --* ]]; do shift; done
while [[ $1 == --* ]]; do shift; done
"$@"
}
fi
@@ -190,6 +182,7 @@ nonascii()
# Usage: strip_nonascii "string"
strip_nonascii()
{
# shellcheck disable=SC2001
echo "$1" | LC_ALL=C sed 's/[^[:print:][:space:]]//g'
}
@@ -197,7 +190,7 @@ strip_nonascii()
# Usage: slugify "string"
slugify()
{
echo "$1" | iconv -t ascii//TRANSLIT | sed -r s/[^a-zA-Z0-9]+/-/g | sed -r s/^-+\|-+$//g | tr A-Z a-z
echo "$1" | iconv -t ascii//TRANSLIT | sed -r s/[^a-zA-Z0-9]+/-/g | sed -r s/^-+\|-+$//g | tr '[:upper:]' '[:lower:]'
}
# https://stackoverflow.com/a/85932
@@ -231,33 +224,33 @@ replacable()
FILE1="$1"
FILE2="$2"
[[ ! -r "$FILE1" ]] && {
[[ $VERBOSE -eq 1 ]] && msg_err "File 1 ($FILE1) does not exist"
[[ ! -r $FILE1 ]] && {
[[ $VERBOSE -eq 1 ]] && msgr err "File 1 ($FILE1) does not exist"
return 0
}
[[ ! -r "$FILE2" ]] && {
[[ $VERBOSE -eq 1 ]] && msg_err "File 2 ($FILE2) does not exist, replaceable"
[[ ! -r $FILE2 ]] && {
[[ $VERBOSE -eq 1 ]] && msgr err "File 2 ($FILE2) does not exist, replaceable"
return 1
}
FILE1_HASH=$(get_sha256sum "$FILE1")
FILE2_HASH=$(get_sha256sum "$FILE2")
[[ $FILE1_HASH = "" ]] && {
[[ $VERBOSE -eq 1 ]] && msg_err "Could not get hash for file 1 ($FILE1)"
[[ $FILE1_HASH == "" ]] && {
[[ $VERBOSE -eq 1 ]] && msgr err "Could not get hash for file 1 ($FILE1)"
return 0
}
[[ $FILE2_HASH = "" ]] && {
[[ $VERBOSE -eq 1 ]] && msg_err "Could not get hash for file 2 ($FILE2), replaceable"
[[ $FILE2_HASH == "" ]] && {
[[ $VERBOSE -eq 1 ]] && msgr err "Could not get hash for file 2 ($FILE2), replaceable"
return 1
}
[[ "$FILE1_HASH" == "$FILE2_HASH" ]] && {
[[ $VERBOSE -eq 1 ]] && msg_ok "Files match, not replaceable: $FILE1"
[[ $FILE1_HASH == "$FILE2_HASH" ]] && {
[[ $VERBOSE -eq 1 ]] && msgr ok "Files match, not replaceable: $FILE1"
return 0
}
[[ $VERBOSE -eq 1 ]] && msg_warn "Files do not match ($FILE1_HASH != $FILE2_HASH), replaceable"
[[ $VERBOSE -eq 1 ]] && msgr warn "Files do not match ($FILE1_HASH != $FILE2_HASH), replaceable"
return 1
}
@@ -301,8 +294,45 @@ export GREP_OPTIONS="--color=auto"
# update the values of LINES and COLUMNS.
hash shopt 2> /dev/null && shopt -s checkwinsize
# shellcheck disable=SC2155
export SHORT_HOST=$(hostname -s)
# asdf
# https://github.com/asdf-vm/asdf
msg "Setting up asdf configuration"
export ASDF_DIR="${XDG_BIN_HOME}/asdf"
if [[ -d $ASDF_DIR ]]; then
[[ -d $ASDF_DIR/completions ]] && FPATH="$ASDF_DIR/completions:$FPATH"
[[ -d $ASDF_DIR/plugins ]] && FPATH="$ASDF_DIR/plugins:$FPATH"
export ASDF_CONFIG_FILE="${XDG_CONFIG_HOME}/asdf/asdfrc"
export ASDF_DATA_DIR="${ASDF_DIR}"
export ASDF_PLUGIN_MANAGER_PLUGIN_VERSIONS_FILENAME="${XDG_CONFIG_HOME}/asdf/plugin-versions"
export ASDF_LOG_FILE="${XDG_CACHE_HOME}/asdf/asdf.log"
export ASDF_FORCE_PREPEND=yes
## Default package files
export ASDF_CRATE_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/cargo-packages"
export ASDF_GEM_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/gem-packages"
export ASDF_GOLANG_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/golang-packages"
export ASDF_NPM_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/npm-packages"
export ASDF_PYTHON_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/python-packages"
## Plugin configuration
export ASDF_DIRENV_IGNORE_MISSING_PLUGINS=1
export ASDF_GOLANG_MOD_VERSION_ENABLED=true
export ASDF_NODEJS_LEGACY_FILE_DYNAMIC_STRATEGY="latest_available"
## Add asdf to path
export PATH="${ASDF_DIR}/bin:${PATH}"
source "$ASDF_DIR/asdf.sh"
fi
# Antidote configuration
# https://getantidote.github.io/
msg "Setting up Antidote configuration"
export ANTIDOTE_DIR="$DOTFILES/tools/antidote"
export ANTIDOTE_HOME="$XDG_CACHE_HOME/antidote"
export ANTIDOTE_PLUGINS="$XDG_CONFIG_HOME/zsh/antidote_plugins"
# Antigen configuration
# https://github.com/zsh-users/antigen/wiki/Configuration
msg "Setting up Antigen configuration"
@@ -320,28 +350,6 @@ export ANSIBLE_GALAXY_CACHE_DIR="$XDG_CACHE_HOME/ansible/galaxy_cache"
x-dc "$ANSIBLE_HOME"
x-dc "$ANSIBLE_GALAXY_CACHE_DIR"
# asdf
# https://github.com/asdf-vm/asdf
msg "Setting up asdf configuration"
export ASDF_DIR="${XDG_BIN_HOME}/asdf"
export ASDF_CONFIG_FILE="${XDG_CONFIG_HOME}/asdf/asdfrc"
export ASDF_DATA_DIR="${ASDF_DIR}"
export ASDF_PLUGIN_MANAGER_PLUGIN_VERSIONS_FILENAME="${XDG_CONFIG_HOME}/asdf/plugin-versions"
export ASDF_LOG_FILE="${XDG_CACHE_HOME}/asdf/asdf.log"
export ASDF_FORCE_PREPEND=yes
## Default package files
export ASDF_CRATE_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/cargo-packages"
export ASDF_GEM_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/gem-packages"
export ASDF_GOLANG_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/golang-packages"
export ASDF_NPM_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/npm-packages"
export ASDF_PYTHON_DEFAULT_PACKAGES_FILE="${XDG_CONFIG_HOME}/asdf/python-packages"
## Plugin configuration
export ASDF_DIRENV_IGNORE_MISSING_PLUGINS=1
export ASDF_GOLANG_MOD_VERSION_ENABLED=true
export ASDF_NODEJS_LEGACY_FILE_DYNAMIC_STRATEGY="latest_available"
## Add asdf to path
export PATH="${ASDF_DIR}/bin:${PATH}"
# aws
# https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html
# https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html
@@ -399,6 +407,7 @@ x-dc "$DOCKER_CONFIG"
export DOCKER_SCAN_SUGGEST=false
# fzf
export FZF_BASE="${XDG_CONFIG_HOME}/fzf"
export FZF_DEFAULT_OPTS='--height 40% --tmux bottom,40% --layout reverse --border top'
# GnuPG
@@ -412,6 +421,9 @@ msg "Setting up Go configuration"
export GOPATH="$XDG_DATA_HOME/go"
export GOBIN="$XDG_BIN_HOME"
# Lando
export PATH="$HOME/.lando/bin${PATH+:$PATH}" #landopath
# NPM: Add npm packages to path
msg "Setting up NPM configuration"
x-have node && {
@@ -436,6 +448,8 @@ export PYENV_ROOT="$XDG_STATE_HOME/pyenv"
## for MichaelAquilina/zsh-autoswitch-virtualenv
export AUTOSWITCH_VIRTUAL_ENV_DIR="$WORKON_HOME"
export PATH="$PYENV_ROOT/bin:$PYENV_ROOT/shims:$PATH"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
x-have pyenv && eval "$(pyenv init -)"
# Rust / cargo
msg "Setting up Rust/Cargo configuration"
@@ -462,7 +476,14 @@ export TF_PLUGIN_CACHE_DIR="$XDG_CACHE_HOME/terraform/plugin-cache"
# tmux
# https://tmux.github.io/
msg "Setting up tmux configuration"
export TMUX_PLUGINS="$XDG_CONFIG_HOME/tmux/plugins"
export TMUX_CONF="$XDG_CONFIG_HOME/tmux/tmux.conf"
## These settings are for zsh-tmux
export ZSH_TMUX_AUTOSTART=false
export ZSH_TMUX_CONFIG="$DOTFILES/config/tmux/tmux.conf"
export ZSH_TMUX_UNICODE=true
export ZSH_TMUX_AUTOQUIT=false
export ZSH_TMUX_DEFAULT_SESSION_NAME=main
# tms, https://github.com/jrmoulton/tmux-sessionizer
export TMS_CONFIG_FILE="${XDG_CONFIG_HOME}/tms/config.toml"
@@ -474,6 +495,7 @@ x-dc "$WAKATIME_HOME"
# Misc
msg "Setting up miscellaneous configuration"
export ZSHZ_DATA="$XDG_STATE_HOME/z"
export CHEAT_USE_FZF=true
export SQLITE_HISTORY="${XDG_CACHE_HOME}/sqlite_history"
@@ -483,6 +505,7 @@ X_EXPORTS_FILES=(
"$HOME/.config/exports-$(hostname)-secret"
)
for exportFile in "${X_EXPORTS_FILES[@]}"; do
# shellcheck source=$HOME/.config/exports-secret
[ -f "$exportFile" ] && source "$exportFile" && msg "Sourced $exportFile"
done
unset X_EXPORTS_FILES

View File

@@ -20,3 +20,4 @@ auth.json
dfm.sh
.scannerwork
.phpactor.json
.zsh_history

View File

@@ -68,4 +68,10 @@ vim.api.nvim_create_autocmd({ 'FileType' }, {
callback = function() vim.opt_local.conceallevel = 0 end,
})
vim.api.nvim_create_autocmd({ 'BufRead', 'BufNewFile' }, {
desc = 'Set filetype for SSH config directory',
pattern = '*/?.ssh/{config|shared}.d/*',
command = 'set filetype=sshconfig',
})
-- vim: ts=2 sts=2 sw=2 et

View File

@@ -1,25 +0,0 @@
return {
{
'rcarriga/nvim-dap-ui',
dependencies = {
'mfussenegger/nvim-dap',
'nvim-neotest/nvim-nio',
'theHamsta/nvim-dap-virtual-text',
'ray-x/go.nvim',
'ray-x/guihua.lua',
'leoluz/nvim-dap-go',
},
setup = function()
require('dapui').setup()
require('dap-go').setup()
require('nvim-dap-virtual-text').setup {}
vim.fn.sign_define('DapBreakpoint', {
text = '🔴',
texthl = 'DapBreakpoint',
linehl = 'DapBreakpoint',
numhl = 'DapBreakpoint',
})
end,
},
}

View File

@@ -1,3 +1,6 @@
-- Navigate your code with search labels, enhanced
-- character motions and Treesitter integration
-- https://github.com/folke/flash.nvim
return {
'folke/flash.nvim',
event = 'VeryLazy',

View File

@@ -38,15 +38,13 @@ return {
'diagnostics',
},
lualine_c = {
'buffers',
-- 'filename',
'filename',
},
lualine_x = {
-- 'fileformat',
'filetype',
},
lualine_y = {
-- 'progress'
'location',
},
lualine_z = {
{

View File

@@ -0,0 +1,61 @@
-- https://github.com/echasnovski/mini.nvim
-- https://github.com/echasnovski/mini.nvim/tree/main?tab=readme-ov-file#modules
return {
-- Presets for common options and mappings
{ 'echasnovski/mini.basics', version = '*' },
-- Visualize and work with indent scope
-- Replaced lukas-reineke/indent-blankline.nvim
{ 'echasnovski/mini.indentscope', version = '*', opts = {} },
-- Animate common Neovim actions
-- Replaced anuvyklack/windows.nvim
{ 'echasnovski/mini.animate', version = '*', opts = {} },
-- Fast and feature-rich surround actions
-- Replaced kylechui/nvim-surround
{ 'echasnovski/mini.surround', version = '*', opts = {} },
-- Move lines and blocks of text
{ 'echasnovski/mini.move', version = '*', opts = {} },
-- Jump to next/previous single character
{
'echasnovski/mini.jump',
version = '*',
opts = {
mappings = {
forward = 'f',
backward = 'F',
forward_till = 't',
backward_till = 'T',
repeat_jump = ';',
},
},
},
-- Icons
{
'echasnovski/mini.icons',
opts = {
file = {
['.keep'] = { glyph = '󰊢', hl = 'MiniIconsGrey' },
['devcontainer.json'] = { glyph = '', hl = 'MiniIconsAzure' },
},
filetype = {
dotenv = { glyph = '', hl = 'MiniIconsYellow' },
},
},
},
-- Highlight cursor word and its matches
{ 'echasnovski/mini.cursorword', version = '*' },
-- Split and join arguments, lists, and other sequences
-- Replaced Wansmer/treesj
{ 'echasnovski/mini.splitjoin', version = '*', opts = {} },
-- Work with diff hunks
-- Replaced lewis6991/gitsigns.nvim
{ 'echasnovski/mini.diff', version = '*', opts = {} },
}

View File

@@ -1,8 +0,0 @@
-- The Refactoring library based off the Refactoring book by Martin Fowler
-- https://github.com/ThePrimeagen/refactoring.nvim
return {
'ThePrimeagen/refactoring.nvim',
version = '*',
dependencies = { 'nvim-lua/plenary.nvim', 'nvim-treesitter/nvim-treesitter' },
opts = {},
}

View File

@@ -1,8 +0,0 @@
-- Add/change/delete surrounding delimiter pairs with ease.
-- https://github.com/kylechui/nvim-surround
return {
'kylechui/nvim-surround',
version = '*',
event = 'VeryLazy',
opts = {},
}

View File

@@ -1,9 +0,0 @@
-- Neovim plugin for splitting/joining blocks of code
-- https://github.com/Wansmer/treesj
return {
'Wansmer/treesj',
dependencies = { 'nvim-treesitter/nvim-treesitter' },
opts = {
use_default_keymaps = false,
},
}

View File

@@ -4,7 +4,6 @@ return {
'kevinhwang91/nvim-ufo',
version = '*',
dependencies = {
{ 'neovim/nvim-lspconfig' },
{ 'kevinhwang91/promise-async' },
{ 'nvim-treesitter/nvim-treesitter' },
{
@@ -61,19 +60,6 @@ return {
},
},
config = function()
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.foldingRange = {
dynamicRegistration = true,
lineFoldingOnly = true,
}
local language_servers = require('lspconfig').util.available_servers() -- or list servers manually like {'gopls', 'clangd'}
for _, ls in ipairs(language_servers) do
require('lspconfig')[ls].setup {
capabilities = capabilities,
-- you can add other fields for setting up lsp server in this table
}
end
require('ufo').setup {
open_fold_hl_timeout = 150,
close_fold_kinds_for_ft = { 'imports', 'comment' },

View File

@@ -27,6 +27,10 @@ return {
},
},
-- Neovim plugin to animate the cursor with a smear effect in all terminals
-- https://github.com/sphamba/smear-cursor.nvim
{ 'sphamba/smear-cursor.nvim', opts = {} },
-- A neovim plugin that shows colorcolumn dynamically
-- https://github.com/Bekaboo/deadcolumn.nvim
{ 'Bekaboo/deadcolumn.nvim' },
@@ -100,108 +104,13 @@ return {
-- https://github.com/xiyaowong/nvim-transparent
{ 'xiyaowong/nvim-transparent', opts = {} },
-- Twilight is a Lua plugin for Neovim 0.5 that dims inactive
-- portions of the code you're editing using TreeSitter.
-- https://github.com/folke/twilight.nvim
{ 'folke/twilight.nvim', opts = {} },
-- Indent guides for Neovim
-- https://github.com/lukas-reineke/indent-blankline.nvim
{
'lukas-reineke/indent-blankline.nvim',
main = 'ibl',
opts = {
scope = { show_start = false, show_end = false },
indent = {
char = '',
tab_char = '',
},
exclude = {
filetypes = {
'Trouble',
'alpha',
'dashboard',
'help',
'lazy',
'lazyterm',
'mason',
'neo-tree',
'notify',
'terminal',
'toggleterm',
'trouble',
},
buftypes = { 'dashboard' },
},
},
},
-- Display a character as the colorcolumn
-- https://github.com/lukas-reineke/virt-column.nvim
{ 'lukas-reineke/virt-column.nvim', opts = {} },
-- icons
{
'echasnovski/mini.icons',
opts = {
file = {
['.keep'] = { glyph = '󰊢', hl = 'MiniIconsGrey' },
['devcontainer.json'] = { glyph = '', hl = 'MiniIconsAzure' },
},
filetype = {
dotenv = { glyph = '', hl = 'MiniIconsYellow' },
},
},
init = function()
package.preload['nvim-web-devicons'] = function()
require('mini.icons').mock_nvim_web_devicons()
return package.loaded['nvim-web-devicons']
end
end,
},
-- ui components
{ 'MunifTanjim/nui.nvim', lazy = true },
-- Git integration for buffers
-- https://github.com/lewis6991/gitsigns.nvim
{
'lewis6991/gitsigns.nvim',
version = false,
opts = {
signs = {
add = { text = '+' },
change = { text = '~' },
delete = { text = '_' },
topdelete = { text = '' },
changedelete = { text = '~' },
},
current_line_blame = false,
on_attach = function(bufnr)
local gs = require 'gitsigns'
local function map(mode, l, r, opts)
opts = opts or {}
opts.buffer = bufnr
vim.keymap.set(mode, l, r, opts)
end
-- Navigation
map('n', 'gn', function()
if vim.wo.diff then return ']c' end
vim.schedule(function() gs.next_hunk() end)
return '<Ignore>'
end, { expr = true })
map('n', 'gp', function()
if vim.wo.diff then return '[c' end
vim.schedule(function() gs.prev_hunk() end)
return '<Ignore>'
end, { expr = true })
end,
},
},
-- Seamless navigation between tmux panes and vim splits
-- https://github.com/christoomey/vim-tmux-navigator
{
@@ -270,18 +179,6 @@ return {
-- https://github.com/LudoPinelli/comment-box.nvim
{ 'LudoPinelli/comment-box.nvim', opts = {} },
-- Automatically expand width of the current window.
-- Maximizes and restore it. And all this with nice animations!
-- https://github.com/anuvyklack/windows.nvim
{
'anuvyklack/windows.nvim',
dependencies = {
'anuvyklack/middleclass',
'anuvyklack/animation.nvim',
},
opts = {},
},
-- Plugin to improve viewing Markdown files in Neovim
-- https://github.com/MeanderingProgrammer/render-markdown.nvim
{

View File

@@ -47,13 +47,6 @@ return {
desc = 'Generate annotations',
},
-- Code: treesj
{ '<leader>cc', group = 'Code Split/Join' },
-- see: lua/plugins/treesj.lua
{ '<leader>cct', '<cmd>TSJToggle<CR>', desc = 'Split/Join: Toggle' },
{ '<leader>ccs', '<cmd>TSJSplit<CR>', desc = 'Split/Join: Split' },
{ '<leader>ccj', '<cmd>TSJJoin<CR>', desc = 'Split/Join: Join' },
-- ── Code: CommentBox ────────────────────────────────────────────────
{ '<leader>cb', group = 'CommentBox' },
{ '<leader>cbb', '<Cmd>CBccbox<CR>', desc = 'CommentBox: Box Title' },
@@ -62,55 +55,6 @@ return {
{ '<leader>cbm', '<Cmd>CBllbox14<CR>', desc = 'CommentBox: Marked' },
{ '<leader>cbt', '<Cmd>CBllline<CR>', desc = 'CommentBox: Titled Line' },
-- ── Code: Refactoring ───────────────────────────────────────────────
{ '<leader>cx', group = '[x] Refactoring' },
{
mode = { 'x' },
-- Extract function supports only visual mode
{
'<leader>cxe',
"<cmd>lua require('refactoring').refactor('Extract Function')<cr>",
desc = 'Extract Function',
},
{
'<leader>cxf',
"<cmd>lua require('refactoring').refactor('Extract Function To File')<cr>",
desc = 'Extract Function to File',
},
-- Extract variable supports only visual mode
{
'<leader>cxv',
"<cmd>lua require('refactoring').refactor('Extract Variable')<cr>",
desc = 'Extract Variable',
},
},
-- Inline func supports only normal
{
'<leader>cxif',
"<cmd>lua require('refactoring').refactor('Inline Function')<cr>",
desc = 'Inline Function',
},
-- Extract block supports only normal mode
{
'<leader>cxb',
"<cmd>lua require('refactoring').refactor('Extract Block')<cr>",
desc = 'Extract Block',
},
{
'<leader>cxbf',
"<cmd>lua require('refactoring').refactor('Extract Block To File')<cr>",
desc = 'Extract Block to File',
},
{
mode = { 'n', 'x' },
-- Inline var supports both normal and visual mode
{
'<leader>cxiv',
"<cmd>lua require('refactoring').refactor('Inline Variable')<cr>",
desc = 'Inline Variable',
},
},
-- ── Code: LSPSaga ───────────────────────────────────────────────────
-- See: lua/plugins/lsp.lua
{
@@ -196,36 +140,10 @@ return {
desc = 'Telescope import',
},
-- ── DAP ─────────────────────────────────────────────────────────────
{ '<leader>d', group = '[d] DAP' },
{
{
'<leader>db',
'<cmd>DapToggleBreakpoint',
desc = 'DAP: Toggle Breakpoint',
},
{ '<leader>dc', '<cmd>DapContinue', desc = 'DAP: Continue' },
{
'<leader>do',
'<cmd>lua vim.diagnostic.open_float()<CR>',
desc = 'Diagnostic: Open float',
},
{
'<leader>dq',
'<cmd>lua vim.diagnostic.setloclist()<CR>',
desc = 'Diagnostic: Set loc list',
},
{
'<leader>dr',
"<cmd>lua require('dapui').open({reset = true})<CR>",
desc = 'DAP: Reset',
},
{
'<leader>ds',
'<cmd>lua require("telescope.builtin").lsp_document_symbols()<CR>',
desc = 'LSP: Document Symbols',
},
{ '<leader>dt', '<cmd>DapUiToggle', desc = 'DAP: Toggle UI' },
'<leader>f',
'<cmd>Telescope find_files<cr>',
desc = 'Find files',
},
-- ── Harpoon ─────────────────────────────────────────────────────────
@@ -284,6 +202,11 @@ return {
'<cmd>Telescope diagnostics<cr>',
desc = 'Search Diagnostics',
},
{
'<leader>sf',
'<cmd>Telescope find_files<cr>',
desc = 'Find files',
},
{
'<leader>sg',
'<cmd>Telescope live_grep<cr>',
@@ -381,7 +304,11 @@ return {
'<cmd>TransparentToggle<CR>',
desc = 'Toggle Transparency',
},
{ '<leader>tw', '<cmd>Twilight<cr>', desc = 'Toggle Twilight' },
{
'<leader>tl',
'<cmd>exec &bg=="light"? "set bg=dark" : "set bg=light"<CR>',
desc = 'Toggle Light/Dark Theme',
},
},
-- ── Workspace ───────────────────────────────────────────────────────
@@ -513,7 +440,7 @@ return {
-- ── Text manipulation in visual mode ────────────────────────────────
{
mode = 'v',
mode = { 'v', 'n' },
{ '>', '>gv', desc = 'Indent Right' },
{ '<', '<gv', desc = 'Indent Left' },
{ 'J', "<cmd>m '>+1<CR>gv=gv", desc = 'Move Block Down' },

View File

@@ -0,0 +1,5 @@
# $NVM_DIR/default-packages
yarn
neovim
corepack

View File

@@ -1,7 +1,7 @@
"$schema" = "https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json"
console_title_template = '{{.UserName}}@{{.HostName}} {{.Shell}} in {{.PWD}}'
version = 3
auto_upgrade = true
auto_upgrade = false
final_space = true
[transient_prompt]
@@ -97,7 +97,8 @@ final_space = true
[blocks.segments.properties]
display_mode = 'context'
fetch_virtual_env = false
fetch_version = true
fetch_virtual_env = true
[[blocks]]
type = 'prompt'

View File

@@ -147,7 +147,7 @@ set -g @tmux_window_name_max_name_len "20"
set -g @tmux_window_name_use_tilde "True"
set -g @tmux_window_name_shells "['bash', 'fish', 'sh', 'zsh', 'oh-my-posh']"
set -g @tmux_window_dir_programs "['nvim', 'vim', 'vi', 'git']"
set -g @tmux_window_name_ignored_programs "['sqlite3', 'oh-my-posh', 'antidot', 'direnv']" # Default is []
set -g @tmux_window_name_ignored_programs "['sqlite3', 'oh-my-posh', 'antidot', 'antidote', 'direnv']" # Default is []
set -g @tmux_window_name_substitute_sets "[('.+ipython2', 'ipython2'), ('.+ipython3', 'ipython3'), ('.+\.local', '.local'), ('.+asdf', 'asdf')]"
## https://github.com/tmux-plugins/tmux-continuum

52
config/zsh/antidote.zsh Executable file
View File

@@ -0,0 +1,52 @@
#!/usr/bin/env bash
# Setup antidote for Oh My Zsh
# vim: ft=zsh et sw=2 ts=2
[[ -z "$DOTFILES" ]] && DOTFILES="$HOME/.dotfiles"
[[ -z "$ANTIDOTE_DIR" ]] && ANTIDOTE_DIR="$DOTFILES/tools/antidote"
[[ -z "$ANTIDOTE_HOME" ]] && ANTIDOTE_HOME="$XDG_CACHE_HOME/antidote"
[[ -z "$ANTIDOTE_PLUGINS" ]] && ANTIDOTE_PLUGINS="$XDG_CONFIG_HOME/zsh/antidote_plugins"
[[ ! -d "$ANTIDOTE_DIR" ]] && {
git submodule add \
--name antidote \
--depth=1 \
-f https://github.com/mattmc3/antidote.git "${ANTIDOTE_DIR}"
git config -f .gitmodules submodule.antidote.shallow true
}
# Plugin configurations
zstyle ':antidote:bundle' use-friendly-names 'yes'
zstyle ':omz:update' mode reminder
zstyle ':omz:plugins:nvm' autoload yes
# Pure prompt settings
export PURE_PROMPT_SYMBOL='➜'
export PURE_GIT_UNTRACKED_DIRTY=0
zstyle ':prompt:pure:git:stash' show yes
zstyle ':prompt:pure:execution_time' show no
zstyle ':prompt:pure:user' color magenta
zstyle ':prompt:pure:user:root' color red
zstyle ':prompt:pure:host' color green
zstyle ':prompt:pure:path' color white
zstyle ':prompt:pure:prompt:success' color green
zstyle ':prompt:pure:prompt:error' color red
# Disable ls colors to avoid issues with eza
export DISABLE_LS_COLORS=true
zstyle ':omz:plugins:eza' 'dirs-first' yes
zstyle ':omz:plugins:eza' 'git-status' yes
zstyle ':omz:plugins:eza' 'icons' yes
zstyle ':omz:plugins:eza' 'ls' yes
zstyle ':omz:plugins:eza' 'prompt' yes
[[ -f "${ANTIDOTE_PLUGINS}.txt" ]] || touch "${ANTIDOTE_PLUGINS}.txt"
FPATH="$ANTIDOTE_DIR/functions:$FPATH"
autoload -Uz antidote
if [[ ! "${ANTIDOTE_PLUGINS}.zsh" -nt "${ANTIDOTE_PLUGINS}.txt" ]]; then
antidote bundle <"${ANTIDOTE_PLUGINS}.txt" >|"${ANTIDOTE_PLUGINS}.zsh"
fi
# Source your static plugins file.
# shellcheck source=$HOME/.dotfiles/config/zsh/antidote_plugins.zsh
source "${ANTIDOTE_PLUGINS}.zsh"

View File

@@ -0,0 +1,41 @@
# This file is for Antidote plugins
# https://getantidote.github.io/usage
# vim: ft=ini
# set up Zsh completions with plugins
mattmc3/ez-compinit
zsh-users/zsh-completions kind:fpath path:src
# frameworks like oh-my-zsh are supported
getantidote/use-omz # handle OMZ dependencies
ohmyzsh/ohmyzsh path:lib # load OMZ's library
# Use pure prompt
mafredri/zsh-async
sindresorhus/pure
ohmyzsh/ohmyzsh path:plugins/colored-man-pages
ohmyzsh/ohmyzsh path:plugins/brew
ohmyzsh/ohmyzsh path:plugins/extract
ohmyzsh/ohmyzsh path:plugins/eza
ohmyzsh/ohmyzsh path:plugins/fzf
ohmyzsh/ohmyzsh path:plugins/git
ohmyzsh/ohmyzsh path:plugins/golang
ohmyzsh/ohmyzsh path:plugins/gpg-agent
ohmyzsh/ohmyzsh path:plugins/nvm
ohmyzsh/ohmyzsh path:plugins/python
ohmyzsh/ohmyzsh path:plugins/tmux
ohmyzsh/ohmyzsh path:plugins/z
# Automatically activate nvm if .nvmrc file is present
ivuorinen/nvm-auto-use
# Add core plugins that make Zsh a bit more like Fish
zdharma-continuum/fast-syntax-highlighting
# Add some plugins that are not in OMZ
jreese/zsh-titles
yuki-ycino/tms
# This needs to be last bundle
# zsh-users/zsh-syntax-highlighting

57
config/zsh/prompt.zsh Executable file
View File

@@ -0,0 +1,57 @@
#!/usr/bin/env bash
# Setup prompt
# vim: ft=zsh:
setopt PROMPT_SUBST
# Setup vcs_info
autoload -Uz vcs_info
zstyle ':vcs_info:*' enable git
zstyle ':vcs_info:*' max-exports 2
zstyle ':vcs_info:*' check-for-changes true
zstyle ':vcs_info:*' check-for-staged-changes true
zstyle ':vcs_info:*' use-simple true
zstyle ':vcs_info:*' unstagedstr '%F{red}*' # display this when there are unstaged changes
zstyle ':vcs_info:*' stagedstr '%F{yellow}+' # display this when there are staged changes
zstyle ':vcs_info:*' formats '%F{5}%F{2}%b%c%u%F{5}%f '
zstyle ':vcs_info:*' actionformats '%F{5}%F{2}%b%F{3}|%F{1}%a%c%u%F{5}%f '
theme_precmd () {
vcs_info
}
export NL=$'\n'
# Set defaults for display.
# We want the host always, but only the user if we are in an SSH session or root.
P_HOST="%F{green}%m%f"
P_USER=''
# If we are in an SSH session, we want to show the username
[[ "$SSH_CONNECTION" != '' ]] && P_USER="%{${fg}[magenta]%}%n%f"
# If we are root, color the user name differently
[[ $UID -eq 0 ]] && P_USER="%{${fg}[red]%}%n%f"
# If P_USER is set, suffix user with @ giving us user@host
[[ -n "$P_USER" ]] && P_USER="$P_USER@"
# Combine the prompt parts. Could be just the host, or user@host.
P_PREFIX="$P_USER$P_HOST"
# Set the color of the current directory
P_DIR="%F{blue}%~%f"
# Change the color of the prompt if the last command failed
P_SHELL="%(?.%F{green}.%F{red})➜%f"
# Any extras we want to display
P_EXTRA=""
# Set the prompt
# user@host /path/to/current/dir (branch) ➜
export PROMPT="${P_PREFIX} ${P_DIR} %{$reset_color%}${vcs_info_msg_0_}%{$reset_color%}%{${P_EXTRA}%}${NL}${P_SHELL} "
autoload -U add-zsh-hook
add-zsh-hook precmd theme_precmd

View File

@@ -2,11 +2,11 @@
```txt
n <Space>/ * <Lua 196: ~/.config/nvim/lua/plugins/telescope.lua:68>
n <Space>/ * <Lua 398: ~/.config/nvim/lua/plugins/telescope.lua:95>
[/] Fuzzily search in current buffer]
n <Space>ht * <Lua 192: ~/.config/nvim/lua/plugins/harpoon.lua:43>
n <Space>ht * <Lua 393: ~/.config/nvim/lua/plugins/harpoon.lua:43>
Open Harpoon Quick menu
n <Space>hw * <Lua 189: ~/.config/nvim/lua/plugins/harpoon.lua:37>
n <Space>hw * <Lua 390: ~/.config/nvim/lua/plugins/harpoon.lua:37>
Open harpoon window with telescope
x # * <Lua 7: vim/_defaults.lua:0>
:help v_#-default
@@ -21,46 +21,100 @@ x @ * mode() == 'V' ? ':normal! @'.getcharstr().'<CR>' : '@'
:help v_@-default
x Q * mode() == 'V' ? ':normal! @<C-R>=reg_recorded()<CR><CR>' : 'Q'
:help v_Q-default
x R * <Lua 70: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
o R * <Lua 102: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
Treesitter Search
o R * <Lua 69: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
x R * <Lua 99: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
Treesitter Search
n Y * y$
:help Y-default
o Zk * <Lua 67: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
n Zk * <Lua 98: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
Flash Treesitter
x Zk * <Lua 66: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
o Zk * <Lua 96: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
Flash Treesitter
n Zk * <Lua 59: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
x Zk * <Lua 95: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
Flash Treesitter
o [% <Plug>(MatchitOperationMultiBackward)
x [% <Plug>(MatchitVisualMultiBackward)
n [% <Plug>(MatchitNormalMultiBackward)
o [h * V<Cmd>lua MiniDiff.goto_hunk('prev')<CR>
Previous hunk
x [h * <Cmd>lua MiniDiff.goto_hunk('prev')<CR>
Previous hunk
n [h * <Cmd>lua MiniDiff.goto_hunk('prev')<CR>
Previous hunk
o [H * V<Cmd>lua MiniDiff.goto_hunk('first')<CR>
First hunk
x [H * <Cmd>lua MiniDiff.goto_hunk('first')<CR>
First hunk
n [H * <Cmd>lua MiniDiff.goto_hunk('first')<CR>
First hunk
o [i * <Cmd>lua MiniIndentscope.operator('top')<CR>
Go to indent scope top
x [i * <Cmd>lua MiniIndentscope.operator('top')<CR>
Go to indent scope top
n [i * <Cmd>lua MiniIndentscope.operator('top', true)<CR>
Go to indent scope top
n [d * <Lua 15: vim/_defaults.lua:0>
Jump to the previous diagnostic
o ]% <Plug>(MatchitOperationMultiForward)
x ]% <Plug>(MatchitVisualMultiForward)
n ]% <Plug>(MatchitNormalMultiForward)
o ]H * V<Cmd>lua MiniDiff.goto_hunk('last')<CR>
Last hunk
x ]H * <Cmd>lua MiniDiff.goto_hunk('last')<CR>
Last hunk
n ]H * <Cmd>lua MiniDiff.goto_hunk('last')<CR>
Last hunk
o ]h * V<Cmd>lua MiniDiff.goto_hunk('next')<CR>
Next hunk
x ]h * <Cmd>lua MiniDiff.goto_hunk('next')<CR>
Next hunk
n ]h * <Cmd>lua MiniDiff.goto_hunk('next')<CR>
Next hunk
o ]i * <Cmd>lua MiniIndentscope.operator('bottom')<CR>
Go to indent scope bottom
x ]i * <Cmd>lua MiniIndentscope.operator('bottom')<CR>
Go to indent scope bottom
n ]i * <Cmd>lua MiniIndentscope.operator('bottom', true)<CR>
Go to indent scope bottom
n ]d * <Lua 14: vim/_defaults.lua:0>
Jump to the next diagnostic
x a% <Plug>(MatchitVisualTextObject)
o ai * <Cmd>lua MiniIndentscope.textobject(true)<CR>
Object scope with border
x ai * <Cmd>lua MiniIndentscope.textobject(true)<CR>
Object scope with border
n gR * :RegexplainerToggle<CR>
Toggle Regexplainer
o g% <Plug>(MatchitOperationBackward)
x g% <Plug>(MatchitVisualBackward)
n g% <Plug>(MatchitNormalBackward)
n gP * <Lua 52: ~/.local/share/nvim/lazy/goto-preview/lua/goto-preview.lua:132>
n gP * <Lua 454: ~/.local/share/nvim/lazy/goto-preview/lua/goto-preview.lua:132>
Close preview windows
n gpr * <Lua 25: ~/.local/share/nvim/lazy/goto-preview/lua/goto-preview.lua:114>
n gpr * <Lua 453: ~/.local/share/nvim/lazy/goto-preview/lua/goto-preview.lua:114>
Preview references
n gpD * <Lua 244: ~/.local/share/nvim/lazy/goto-preview/lua/goto-preview.lua:105>
n gpD * <Lua 452: ~/.local/share/nvim/lazy/goto-preview/lua/goto-preview.lua:105>
Preview declaration
n gpi * <Lua 242: ~/.local/share/nvim/lazy/goto-preview/lua/goto-preview.lua:91>
n gpi * <Lua 451: ~/.local/share/nvim/lazy/goto-preview/lua/goto-preview.lua:91>
Preview implementation
n gpt * <Lua 241: ~/.local/share/nvim/lazy/goto-preview/lua/goto-preview.lua:77>
n gpt * <Lua 450: ~/.local/share/nvim/lazy/goto-preview/lua/goto-preview.lua:77>
Preview type definition
n gpd * <Lua 237: ~/.local/share/nvim/lazy/goto-preview/lua/goto-preview.lua:63>
n gpd * <Lua 449: ~/.local/share/nvim/lazy/goto-preview/lua/goto-preview.lua:63>
Preview definition
x gS * :<C-U>lua MiniSplitjoin.toggle({ region = MiniSplitjoin.get_visual_region() })<CR>
Toggle arguments
n gS * v:lua.MiniSplitjoin.operator("toggle") . " "
Toggle arguments
o gh * <Cmd>lua MiniDiff.textobject()<CR>
Hunk range textobject
x gH * <Lua 417: ~/.local/share/nvim/lazy/mini.diff/lua/mini/diff.lua:960>
Reset hunks
n gH * <Lua 416: ~/.local/share/nvim/lazy/mini.diff/lua/mini/diff.lua:960>
Reset hunks
x gh * <Lua 415: ~/.local/share/nvim/lazy/mini.diff/lua/mini/diff.lua:958>
Apply hunks
n gh * <Lua 414: ~/.local/share/nvim/lazy/mini.diff/lua/mini/diff.lua:958>
Apply hunks
o gc * <Lua 13: vim/_defaults.lua:0>
Comment textobject
n gcc * <Lua 12: vim/_defaults.lua:0>
@@ -73,17 +127,57 @@ x gx * <Lua 9: vim/_defaults.lua:0>
Opens filepath or URI under cursor with the system handler (file explorer, web browser, …)
n gx * <Lua 8: vim/_defaults.lua:0>
Opens filepath or URI under cursor with the system handler (file explorer, web browser, …)
o ii * <Cmd>lua MiniIndentscope.textobject(false)<CR>
Object scope
x ii * <Cmd>lua MiniIndentscope.textobject(false)<CR>
Object scope
n j * v:count == 0 ? 'gj' : 'j'
Move down
n k * v:count == 0 ? 'gk' : 'k'
Move up
o r * <Lua 68: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
o r * <Lua 97: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
Remote Flash
o zk * <Lua 65: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
n shn * <Lua 547: ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua:1260>
Highlight next surrounding
n sFn * <Lua 546: ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua:1260>
Find next left surrounding
n sfn * <Lua 545: ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua:1260>
Find next right surrounding
n srn * <Lua 544: ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua:1260>
Replace next surrounding
n sdn * <Lua 543: ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua:1260>
Delete next surrounding
n shl * <Lua 542: ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua:1260>
Highlight previous surrounding
n sFl * <Lua 541: ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua:1260>
Find previous left surrounding
n sfl * <Lua 540: ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua:1260>
Find previous right surrounding
n srl * <Lua 539: ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua:1260>
Replace previous surrounding
n sdl * <Lua 538: ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua:1260>
Delete previous surrounding
x sa * :<C-U>lua MiniSurround.add('visual')<CR>
Add surrounding to selection
n sn * <Lua 537: ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua:895>
Update `MiniSurround.config.n_lines`
n sh * <Lua 536: ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua:1260>
Highlight surrounding
n sF * <Lua 535: ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua:1260>
Find left surrounding
n sf * <Lua 534: ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua:1260>
Find right surrounding
n sr * <Lua 533: ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua:1260>
Replace surrounding
n sd * <Lua 532: ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua:1260>
Delete surrounding
n sa * <Lua 531: ~/.local/share/nvim/lazy/mini.surround/lua/mini/surround.lua:1260>
Add surrounding
n zk * <Lua 100: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
Flash
x zk * <Lua 64: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
o zk * <Lua 94: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
Flash
n zk * <Lua 63: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
x zk * <Lua 92: ~/.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/handler/keys.lua:121>
Flash
x <Plug>(MatchitVisualTextObject) <Plug>(MatchitVisualMultiBackward)o<Plug>(MatchitVisualMultiForward)
o <Plug>(MatchitOperationMultiForward) * :<C-U>call matchit#MultiMatch("W", "o")<CR>
@@ -98,21 +192,21 @@ x <Plug>(MatchitVisualBackward) * :<C-U>call matchit#Match_wrapper('',0,'v')<CR
x <Plug>(MatchitVisualForward) * :<C-U>call matchit#Match_wrapper('',1,'v')<CR>:if col("''") != col("$") | exe ":normal! m'" | endif<CR>gv``
n <Plug>(MatchitNormalBackward) * :<C-U>call matchit#Match_wrapper('',0,'n')<CR>
n <Plug>(MatchitNormalForward) * :<C-U>call matchit#Match_wrapper('',1,'n')<CR>
s <Plug>luasnip-jump-prev * <Lua 315: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:57>
s <Plug>luasnip-jump-prev * <Lua 345: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:57>
LuaSnip: Jump to the previous node
s <Plug>luasnip-jump-next * <Lua 314: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:54>
s <Plug>luasnip-jump-next * <Lua 344: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:54>
LuaSnip: Jump to the next node
s <Plug>luasnip-prev-choice * <Lua 313: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:51>
s <Plug>luasnip-prev-choice * <Lua 343: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:51>
LuaSnip: Change to the previous choice from the choiceNode
s <Plug>luasnip-next-choice * <Lua 312: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:48>
s <Plug>luasnip-next-choice * <Lua 342: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:48>
LuaSnip: Change to the next choice from the choiceNode
s <Plug>luasnip-expand-snippet * <Lua 311: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:45>
s <Plug>luasnip-expand-snippet * <Lua 341: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:45>
LuaSnip: Expand the current snippet
s <Plug>luasnip-expand-or-jump * <Lua 310: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:42>
s <Plug>luasnip-expand-or-jump * <Lua 340: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:42>
LuaSnip: Expand or jump in the current snippet
<Plug>luasnip-expand-repeat * <Lua 308: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:35>
<Plug>luasnip-expand-repeat * <Lua 338: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:35>
LuaSnip: Repeat last node expansion
n <Plug>luasnip-delete-check * <Lua 306: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:28>
n <Plug>luasnip-delete-check * <Lua 336: ~/.local/share/nvim/lazy/LuaSnip/plugin/luasnip.lua:28>
LuaSnip: Removes current snippet from jumplist
n <Plug>PlenaryTestFile * :lua require('plenary.test_harness').test_file(vim.fn.expand("%:p"))<CR>
n <C-W><C-D> <C-W>d
@@ -123,4 +217,4 @@ n <C-L> * <Cmd>nohlsearch|diffupdate|normal! <C-L><CR>
:help CTRL-L-default
```
- Generated on Fri 4 Oct 2024 14:49:00 EEST
- Generated on Fri 22 Nov 2024 15:30:39 EET

View File

@@ -19,6 +19,7 @@
~/.local/share/gnupg:
mode: 0700
~/.local/state:
~/.local/state/zsh:
~/.ssh:
mode: 0700
~/.ssh/local.d:

File diff suppressed because it is too large Load Diff

View File

@@ -122,7 +122,6 @@ section_install()
MENU=(
"all:Installs everything in the correct order"
"antigen:Updates the antigen.zsh file"
"cargo:Install rust/cargo packages"
"cheat-databases:Install cheat external cheatsheet databases"
"composer:Install composer"
@@ -148,34 +147,22 @@ section_install()
msgr msg "Starting to install all and reloading configurations..."
$0 install macos
$0 install fonts
$0 install antigen
$0 brew install
$0 install ohmyposh
$0 install asdf
# $0 install ohmybash
# $0 install pip
# $0 install cargo
$0 install composer
# $0 install dotenv
$0 install fzf
# $0 install gh
# $0 install go
$0 install go
$0 install cheat-databases
$0 install imagick
# $0 install neofetch
# $0 install nvm
# $0 install npm
$0 install ntfy
$0 install nvm
$0 install npm
# $0 install ntfy
$0 install z
msgr msg "Reloading configurations again..."
source "$DOTFILES/config/shared.sh"
msgr yay "All done!"
;;
antigen)
msg "Installing antigen..."
curl -sSfL git.io/antigen -o "$DOTFILES/local/bin/antigen.zsh" \
&& msg_yay "New antigen installed!"
;;
asdf)
msg "Installing asdf..."
bash "$DOTFILES/scripts/install-asdf.sh both" \
@@ -198,13 +185,6 @@ section_install()
bash "$DOTFILES/scripts/install-composer.sh" \
&& msg_yay "composer installed!"
;;
dotenv)
msg "Installing dotenv-linter..."
curl -sSfL \
https://raw.githubusercontent.com/dotenv-linter/dotenv-linter/master/install.sh \
| sh -s -- -b "$XDG_BIN_HOME" \
&& msg_yay "dotenv-linter installed!"
;;
fonts)
msg "Installing fonts..."
bash "$DOTFILES/scripts/install-fonts.sh" \
@@ -231,13 +211,6 @@ section_install()
&& chmod +x "$XDG_BIN_HOME/magick" \
&& msg_yay "imagick installed!"
;;
starship)
msg "Installing starship.rs..."
curl -sS https://starship.rs/install.sh | sh -s -- \
--bin-dir ~/.local/bin \
--yes \
&& msg_yay "starship installed!"
;;
macos)
msg "Setting up macOS defaults..."
bash "$DOTFILES/scripts/set-macos-defaults.sh" \
@@ -250,9 +223,11 @@ section_install()
;;
nvm)
msg "Installing nvm..."
curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/$VERSION_NVM/install.sh" | bash
git checkout "$DOTFILES/base/zshrc"
git checkout "$DOTFILES/base/bashrc"
NVM_VERSION=$(x-gh-get-latest-version nvm-sh/nvm)
msg "Latest nvm version: $NVM_VERSION"
NVM_INSTALL="https://raw.githubusercontent.com/nvm-sh/nvm/${NVM_VERSION}/install.sh"
NVM_CURL="curl -o- \"$NVM_INSTALL\" | bash"
PROFILE=/dev/null bash -c "$NVM_CURL"
$0 install nvm-latest
msg_yay "nvm installed!"
;;
@@ -276,11 +251,6 @@ section_install()
bash "$DOTFILES/scripts/install-ntfy.sh" \
&& msg_yay "ntfy installed!"
;;
ohmybash)
msg "oh-my-bash install started..."
bash "$DOTFILES/scripts/install-ohmybash.sh" \
&& msg_yay "oh-my-bash installed!"
;;
ohmyposh)
msg "oh-my-posh install started..."
bash "$DOTFILES/scripts/install-ohmyposh.sh" \

View File

@@ -33,10 +33,7 @@ ASDF_INSTALLABLES=(
"golang:github.com/asdf-community/asdf-golang.git"
"hadolint:github.com/devlincashman/asdf-hadolint.git"
"kubectl:github.com/asdf-community/asdf-kubectl.git"
"nodejs:github.com/asdf-vm/asdf-nodejs.git"
"pipx:github.com/yozachar/asdf-pipx.git"
"pre-commit:github.com/jonathanmorley/asdf-pre-commit.git"
"python:github.com/asdf-community/asdf-python.git"
"ripgrep:gitlab.com/wt0f/asdf-ripgrep.git"
"rust:github.com/code-lever/asdf-rust.git"
"shellcheck:github.com/luizm/asdf-shellcheck.git"

View File

@@ -3,18 +3,15 @@
#
# shellcheck source=shared.sh
echo "This file ($0) has been deprecated in favor of asdf. Please use asdf instead."
exit 0
eval "$DOTFILES/config/shared.sh"
# Enable verbosity with VERBOSE=1
VERBOSE="${VERBOSE:-0}"
msg "Starting to install npm packages"
msgr msg "Starting to install npm packages"
if ! command -v npm &> /dev/null; then
msg_err "npm could not be found."
msgr err "npm could not be found."
exit 0
fi
@@ -38,9 +35,9 @@ install_packages()
if [[ ${pkg:0:1} == "#" ]]; then continue; fi
if npm ls -g -p "$pkg" &> /dev/null; then
msg_run_done "$pkg" "already installed"
msgr run_done "$pkg" "already installed"
else
msg_run "Installing npm package:" "$pkg"
msgr run "Installing npm package:" "$pkg"
npm install -g --no-fund --no-progress --no-timing "$pkg"
fi
echo ""
@@ -50,7 +47,7 @@ install_packages()
# Function to upgrade all global npm packages
upgrade_global_packages()
{
msg_run "Upgrading all global packages"
msgr run "Upgrading all global packages"
npm -g --no-progress --no-timing --no-fund outdated
npm -g --no-timing --no-fund upgrade
}
@@ -58,7 +55,7 @@ upgrade_global_packages()
# Function to clean npm cache
clean_npm_cache()
{
msg_run "Cleaning up npm cache"
msgr run "Cleaning up npm cache"
npm cache verify
npm cache clean --force
npm cache verify
@@ -69,7 +66,7 @@ main()
install_packages
upgrade_global_packages
clean_npm_cache
msg_yay "npm package installations complete"
msgr yay "npm package installations complete"
}
main "$@"

View File

@@ -3,9 +3,6 @@
#
# shellcheck source=shared.sh
echo "This file ($0) has been deprecated in favor of asdf. Please use asdf instead."
exit 0
source "${DOTFILES}/config/shared.sh"
# Enable verbosity with VERBOSE=1

View File

@@ -131,7 +131,7 @@ systemsetup -settimezone "Europe/Helsinki" > /dev/null
defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
# Stop iTunes from responding to the keyboard media keys
#launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist 2> /dev/null
launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist 2> /dev/null
###############################################################################
# Screen #

View File

@@ -11,7 +11,7 @@
[ -z "$SHARED_SCRIPTS_SOURCED" ] && {
source "${DOTFILES}/config/shared.sh"
msgr done "(!) shared.sh not sourced"
msgr warn "(!) shared.sh not sourced"
# Set variable that checks if the shared.sh script has been sourced only once
# shellcheck disable=SC2034

View File

@@ -1,3 +1,6 @@
# demons
# vim: ft=sshconfig
Host vine
User ubuntu
HostName vine.antiprocess.net
@@ -13,3 +16,7 @@ Host paimon
HostName paimon.antiprocess.net
IdentityFile ~/.ssh/id_rsa
Host baal
User ivuorinen
HostName baal.antiprocess.net
IdentityFile ~/.ssh/id_rsa

1
tools/antidote Submodule

Submodule tools/antidote added at 64b786480f