diff --git a/.github/workflows/automated_tests.yml b/.github/workflows/automated_tests.yml
index e8fbfe3..c2dce03 100644
--- a/.github/workflows/automated_tests.yml
+++ b/.github/workflows/automated_tests.yml
@@ -65,14 +65,21 @@ jobs:
if [ -d /home/runner ]; then homedir="/home/runner"; else homedir="/Users/runner"; fi
mkdir -p ${homedir}/.config/chezmoi
- echo '[data]' > ${homedir}/.config/chezmoi/chezmoi.toml
- echo ' email = "test@test.com"' >> ${homedir}/.config/chezmoi/chezmoi.toml
- echo ' github_user = "natelandau"' >> ${homedir}/.config/chezmoi/chezmoi.toml
- echo ' dev_computer = false' >> ${homedir}/.config/chezmoi/chezmoi.toml
- echo ' use_secrets = false' >> ${homedir}/.config/chezmoi/chezmoi.toml
- echo ' personal_computer = false' >> ${homedir}/.config/chezmoi/chezmoi.toml
- echo ' homelab_member = false' >> ${homedir}/.config/chezmoi/chezmoi.toml
- echo ' zsh_dir = "${homedir}/.local/share/zsh"' >> ${homedir}/.config/chezmoi/chezmoi.toml
+
+ cat > ${homedir}/.config/chezmoi/chezmoi.toml<< EOF
+ [data]
+ dev_computer = false
+ email = "test@test.com"
+ github_user = "natelandau"
+ homelab_member = false
+ is_ci_workflow = true # Set true only in CI test
+ personal_computer = false
+ use_secrets = false
+ xdgCacheDir = "${homedir}/.cache"
+ xdgConfigDir = "${homedir}/.config"
+ xdgDataDir = "${homedir}/.local/share"
+ xdgStateDir = "${homedir}/.local/state"
+ EOF
# ----------------------------------------------
# Install chezmoi
@@ -94,32 +101,54 @@ jobs:
- name: Confirm dotfiles are installed
if: startsWith(matrix.os, 'ubuntu')
run: |
+ if [ -d /home/runner ]; then homedir="/home/runner"; else homedir="/Users/runner"; fi
echo "------- Testing files -------"
cd /home/runner
# echo "pwd: $(pwd)"
# ls -al
+ existing_files=(
+ .zshrc
+ .bashrc
+ .config/git/config
+ .ssh/config
+ .config/dotfile_source/080-linux.sh
+ .local/share/sed/stopwords.sed
+ )
+
+ missing_files=(
+ .config/dotfile_source/080-macos.sh
+ Library
+ )
+
+ installed_packages=(
+ jq
+ pygmentize
+ )
+
# Confirm files exist
- for file in .zshrc .bashrc .gitconfig .shell .ssh/config .shell/sourced/080-linux.sh; do
- if [ ! -e $file ]; then
+ for file in ${existing_files[@]}; do
+ if [ ! -e "${homedir}/$file" ]; then
echo "$file not found"
exit 1
fi
done
# Confirm files don't exist
- for file in Library .shell/sourced/080-macos.sh; do
- if [ -e $file ]; then
+ for file in ${missing_files[@]} ; do
+ if [ -e "${homedir}/$file "]; then
echo "$file found"
exit 1
fi
done
- # Check apt packages
- command -v htop 2>&1 >/dev/null || { echo "htop not found"; exit 1; }
-
- # Confirm python packages
- command -v pygmentize 2>&1 >/dev/null || { echo "pygmentize not found"; exit 1; }
+ # Confirm packages are installed
+ for package in ${installed_packages[@]}; do
+ if [ ! $(command -v $package) ]; then
+ echo "$package not found"
+ exit 1
+ fi
+ done
# ----------------------------------------------
# MACOS: Confirm dotfiles are installed
@@ -127,27 +156,50 @@ jobs:
- name: Confirm dotfiles are installed
if: startsWith(matrix.os, 'macos')
run: |
+ if [ -d /home/runner ]; then homedir="/home/runner"; else homedir="/Users/runner"; fi
+
echo "------- Testing files -------"
- cd /Users/runner
+ cd ${homedir}
+
+ existing_files=(
+ .zshrc
+ .bashrc
+ .config/git/config
+ .config/nano/nanorc
+ .ssh/config
+ .config/dotfile_source/080-macos.sh
+ .local/share/sed/stopwords.sed
+ )
+
+ missing_files=(
+ .config/dotfile_source/080-linux.sh
+ )
+
+ installed_packages=(
+ jq
+ pygmentize
+ )
# Confirm files exist
- for file in .zshrc .bashrc .gitconfig .shell .ssh/config Library .shell/sourced/080-macos.sh; do
- if [ ! -e $file ]; then
+ for file in ${existing_files[@]}; do
+ if [ ! -e "${homedir}/$file" ]; then
echo "$file not found"
exit 1
fi
done
# Confirm files don't exist
- for file in .shell/sourced/080-linux.sh; do
- if [ -e $file ]; then
+ for file in ${missing_files[@]} ; do
+ if [ -e "${homedir}/$file" ]; then
echo "$file found"
exit 1
fi
done
- # Check homebrew packages
- command -v htop 2>&1 >/dev/null || { echo "htop not found"; exit 1; }
-
- # Confirm python packages
- command -v pygmentize 2>&1 >/dev/null || { echo "pygmentize not found"; exit 1; }
+ # Confirm packages are installed
+ for package in ${installed_packages[@]}; do
+ if [ ! $(command -v $package) ]; then
+ echo "$package not found"
+ exit 1
+ fi
+ done
diff --git a/.gitignore b/.gitignore
index 10cb09f..ea2b035 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,5 @@ data.json
.venv
.DS_Store
reports
+.mypy_cache
+__pycache__
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 7c498b6..e58c826 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -7,7 +7,7 @@ default_stages: [commit, manual]
fail_fast: true
repos:
- repo: "https://github.com/commitizen-tools/commitizen"
- rev: v3.29.0
+ rev: v3.29.1
hooks:
- id: commitizen
- id: commitizen-branch
@@ -33,7 +33,7 @@ repos:
- id: trailing-whitespace
- repo: "https://github.com/crate-ci/typos"
- rev: v1.24.6
+ rev: v1.25.0
hooks:
- id: typos
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..c1145ba
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,7 @@
+{
+ "files.associations": {
+ ".chezmoiremove": "plaintext",
+ "*.toml.tmpl": "plaintext",
+ ".chezmoiignore": "plaintext"
+ }
+}
diff --git a/dotfiles/.assets/iterm2/com.googlecode.iterm2.plist b/dotfiles/.assets/iterm2/com.googlecode.iterm2.plist
index 85d9867..89f1837 100644
--- a/dotfiles/.assets/iterm2/com.googlecode.iterm2.plist
+++ b/dotfiles/.assets/iterm2/com.googlecode.iterm2.plist
@@ -1305,7 +1305,7 @@
Columns
140
Command
- /usr/local/bin/bash
+
Cursor Color
Alpha Component
@@ -1689,6 +1689,8 @@
Red Component
0.87367779016494751
+ Load Shell Integration Automatically
+
Log Directory
Minimum Contrast
diff --git a/dotfiles/.chezmoi.toml.tmpl b/dotfiles/.chezmoi.toml.tmpl
index 236bb9f..745fa70 100644
--- a/dotfiles/.chezmoi.toml.tmpl
+++ b/dotfiles/.chezmoi.toml.tmpl
@@ -9,9 +9,13 @@
email = {{ $email | quote }}
github_user = "natelandau"
homelab_member = {{ $homelab_member }}
+ is_ci_workflow = false # Set true only in CI test
personal_computer = {{ $personal_computer }}
use_secrets = {{ $use_secrets }}
- zsh_dir = "{{ .chezmoi.homeDir }}/.local/share/zsh"
+ xdgCacheDir = "{{ .chezmoi.homeDir }}/.cache"
+ xdgConfigDir = "{{ .chezmoi.homeDir }}/.config"
+ xdgDataDir = "{{ .chezmoi.homeDir }}/.local/share"
+ xdgStateDir = "{{ .chezmoi.homeDir }}/.local/state"
[diff]
{{ if lookPath "delta" -}}command = "delta"
diff --git a/dotfiles/.chezmoidata/onepassword.toml b/dotfiles/.chezmoidata/onepassword.toml
index ae784a8..b3938f3 100644
--- a/dotfiles/.chezmoidata/onepassword.toml
+++ b/dotfiles/.chezmoidata/onepassword.toml
@@ -2,8 +2,16 @@
git_stop_words = "op://yc7nim47s6rch4ehrvfsz5icei/vgapmuu57fs3ic44wyupk2orgi/notesPlain"
[secrets]
- bws_zoom_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/bws_zoom_link"
- calendly_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/calendly"
- email_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/default_email"
- gitea_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/gitea_url"
- zoom_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/zoom_link"
+ bws_zoom_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/bws_zoom_link"
+ calendly_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/calendly"
+ email_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/default_email"
+ gitea_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/gitea_url"
+ github_personal_access_token = "op://igqbsqdriuefyzvljd7pom5tum/ikd4inhzvm5pvo2bkyrnkuobh4/personal_access_token"
+ homebrew_github_token = "op://igqbsqdriuefyzvljd7pom5tum/ikd4inhzvm5pvo2bkyrnkuobh4/homebrew_access_token"
+ radarr_api_key = "op://igqbsqdriuefyzvljd7pom5tum/yevda4magqej3yawqf573rijd4/api_key"
+ radarr_url = "op://igqbsqdriuefyzvljd7pom5tum/yevda4magqej3yawqf573rijd4/website"
+ sonarr_api_key = "op://igqbsqdriuefyzvljd7pom5tum/5zk3pkmm2wbk73ss4dlli6dvz4/api_key"
+ sonarr_url = "op://igqbsqdriuefyzvljd7pom5tum/5zk3pkmm2wbk73ss4dlli6dvz4/website"
+ tmdb_api_key = "op://igqbsqdriuefyzvljd7pom5tum/7l5gtxkd23og5wzawz5etq6lju/api_key"
+ valentina_github_token = "op://igqbsqdriuefyzvljd7pom5tum/ikd4inhzvm5pvo2bkyrnkuobh4/valentina_access_token"
+ zoom_address = "op://yc7nim47s6rch4ehrvfsz5icei/cq4if4oayozhsfhleijuw6n2aa/zoom_link"
diff --git a/dotfiles/.chezmoidata/packages.toml b/dotfiles/.chezmoidata/packages.toml
index 79031b8..317dd7f 100644
--- a/dotfiles/.chezmoidata/packages.toml
+++ b/dotfiles/.chezmoidata/packages.toml
@@ -90,6 +90,7 @@
"mas", # Mac App Store command-line interface
"mc", # Midnight Commander
"most", # Pager
+ "nano",
"ncdu", # NCurses Disk Usage
"ncurses", # Text-based UI library
"openssl", # SSL/TLS cryptography library
diff --git a/dotfiles/.chezmoiremove b/dotfiles/.chezmoiremove
index 465b80d..330f60d 100644
--- a/dotfiles/.chezmoiremove
+++ b/dotfiles/.chezmoiremove
@@ -1,9 +1,19 @@
-bin/pull_all_repos
+.DS_Store
-# Migrate to zoxide
-.z
+# Prepend with a `/` to specify a specific path relative to $HOME.
-# Migrate zsh data to ~/.local/share/zsh
-.zsh_history
-.zfunc/_eza
-.zfunc/poetry
+# migrate to XDG directories
+/.curlrc
+/.gitignore
+/.gitconfig
+/.nanorc
+/.lesshst
+/.digrc
+/.wget-hsts
+/.zcompdump
+/.python_history
+/.local/share/zsh/history
+/.sed/htmlDecode.sed
+/.sed/htmlEncode.sed
+/.sed/stopwords.sed
+/.zsh_history
diff --git a/dotfiles/.chezmoiscripts/run_after_30-atuin.sh.tmpl b/dotfiles/.chezmoiscripts/run_after_30-atuin.sh.tmpl
index 2e79d25..e07ed13 100644
--- a/dotfiles/.chezmoiscripts/run_after_30-atuin.sh.tmpl
+++ b/dotfiles/.chezmoiscripts/run_after_30-atuin.sh.tmpl
@@ -1,4 +1,4 @@
-{{- if eq .chezmoi.os "linux" -}}
+{{- if and (eq .chezmoi.os "linux") (not .is_ci_workflow) -}}
#!/usr/bin/env bash
{{ template "shared_script_utils.bash" . }}
diff --git a/dotfiles/.chezmoiscripts/run_after_30-install-eza.sh.tmpl b/dotfiles/.chezmoiscripts/run_after_30-install-eza.sh.tmpl
index ceccecc..91a697f 100644
--- a/dotfiles/.chezmoiscripts/run_after_30-install-eza.sh.tmpl
+++ b/dotfiles/.chezmoiscripts/run_after_30-install-eza.sh.tmpl
@@ -13,7 +13,7 @@ if [[ ! $(command -v eza) ]]; then
fi
sudo mkdir -p /etc/apt/keyrings
- wget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | sudo gpg --dearmor -o /etc/apt/keyrings/gierens.gpg
+ wget --hsts-file='{{ .xdgDataDir }}/wget-hsts' -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | sudo gpg --dearmor -o /etc/apt/keyrings/gierens.gpg
echo "deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main" | sudo tee /etc/apt/sources.list.d/gierens.list
sudo chmod 644 /etc/apt/keyrings/gierens.gpg /etc/apt/sources.list.d/gierens.list
sudo apt update
diff --git a/dotfiles/.chezmoiscripts/run_after_30-install-git-credential-manager.sh.tmpl b/dotfiles/.chezmoiscripts/run_after_30-install-git-credential-manager.sh.tmpl
index 84cc933..1989e5c 100644
--- a/dotfiles/.chezmoiscripts/run_after_30-install-git-credential-manager.sh.tmpl
+++ b/dotfiles/.chezmoiscripts/run_after_30-install-git-credential-manager.sh.tmpl
@@ -1,4 +1,4 @@
-{{- if and (eq .chezmoi.os "linux") (.dev_computer) (eq .chezmoi.arch "amd64" ) -}}
+{{- if and (eq .chezmoi.os "linux") (.dev_computer) (eq .chezmoi.arch "amd64" ) (not .is_ci_workflow) -}}
#!/usr/bin/env bash
{{ template "shared_script_utils.bash" . }}
@@ -47,7 +47,7 @@ pushd "${TMP_DIR}" &>/dev/null || exit
DEB="gcm-linux_{{.chezmoi.arch }}.${LATEST_VERSION}.deb"
-wget https://github.com/git-ecosystem/git-credential-manager/releases/download/v${LATEST_VERSION}/${DEB}
+wget --hsts-file='{{ .xdgDataDir }}/wget-hsts' https://github.com/git-ecosystem/git-credential-manager/releases/download/v${LATEST_VERSION}/${DEB}
sudo dpkg -i "${DEB}"
rm "${DEB}"
diff --git a/dotfiles/.chezmoiscripts/run_after_30_install-non-pkg-mngr-binaries.tmpl b/dotfiles/.chezmoiscripts/run_after_30_install-non-pkg-mngr-binaries.tmpl
index 5552cb5..98393df 100644
--- a/dotfiles/.chezmoiscripts/run_after_30_install-non-pkg-mngr-binaries.tmpl
+++ b/dotfiles/.chezmoiscripts/run_after_30_install-non-pkg-mngr-binaries.tmpl
@@ -1,3 +1,4 @@
+{{- if not .is_ci_workflow -}}
#!/usr/bin/env bash
{{ template "shared_script_utils.bash" . }}
{{ $current_os := .chezmoi.os }}
@@ -62,3 +63,4 @@ uv run -q "${INSTALL_SCRIPT}" --binary-name="{{ $binary.name }}" --repository="{
{{ end }}
{{ end }}
_safeExit_
+{{- end }}
diff --git a/dotfiles/.chezmoiscripts/run_after_40-install-nanorc.sh.tmpl b/dotfiles/.chezmoiscripts/run_after_40-install-nanorc.sh.tmpl
index 0becddd..e5ae8ba 100644
--- a/dotfiles/.chezmoiscripts/run_after_40-install-nanorc.sh.tmpl
+++ b/dotfiles/.chezmoiscripts/run_after_40-install-nanorc.sh.tmpl
@@ -11,21 +11,23 @@ if [ ! "$(command -v unzip)" ]; then
fi
# Check if the nano syntax highlighting directory exists
-if [ ! -d "${HOME}/.nano" ]; then
- header "Installing nano syntax highlighting..."
- nano_dir="${HOME}/.nano"
+NANO_DIR="{{ .xdgDataDir }}/nano"
+if [ ! -e "${NANO_DIR}/conf.nanorc" ]; then
+ header "Installing nano syntax highlighting..."
- mkdir -p "${nano_dir}"
+ if [ ! -d "${NANO_DIR}" ]; then
+ mkdir -p "${NANO_DIR}"
+ fi
- wget -O "${nano_dir}/nanorc.zip" https://github.com/scopatz/nanorc/archive/master.zip
+ wget --hsts-file='{{ .xdgDataDir }}/wget-hsts' -O "${NANO_DIR}/nanorc.zip" https://github.com/scopatz/nanorc/archive/master.zip
- pushd "${nano_dir}" >/dev/null || exit
+ pushd "${NANO_DIR}" >/dev/null || exit
- unzip -o "${nano_dir}/nanorc.zip"
- mv nanorc-master/* "${nano_dir}/"
+ unzip -o "${NANO_DIR}/nanorc.zip"
+ mv nanorc-master/* "${NANO_DIR}/"
rm -rf nanorc-master
- rm "${nano_dir}/nanorc.zip"
+ rm "${NANO_DIR}/nanorc.zip"
popd >/dev/null || exit
diff --git a/dotfiles/.chezmoiscripts/run_onchange_after_11-python-packages.sh.tmpl b/dotfiles/.chezmoiscripts/run_onchange_after_11-python-packages.sh.tmpl
index f589ff3..5453125 100644
--- a/dotfiles/.chezmoiscripts/run_onchange_after_11-python-packages.sh.tmpl
+++ b/dotfiles/.chezmoiscripts/run_onchange_after_11-python-packages.sh.tmpl
@@ -1,5 +1,3 @@
-{{- if lookPath "uv" -}}
-
#!/usr/bin/env bash
{{ template "shared_script_utils.bash" . }}
@@ -58,5 +56,3 @@ done
success "Python packages installed"
_safeExit_
-
-{{- end }}
diff --git a/dotfiles/.chezmoiscripts/run_onchange_after_20-osx-config.sh.tmpl b/dotfiles/.chezmoiscripts/run_onchange_after_20-osx-config.sh.tmpl
index 03c8616..fb55a10 100644
--- a/dotfiles/.chezmoiscripts/run_onchange_after_20-osx-config.sh.tmpl
+++ b/dotfiles/.chezmoiscripts/run_onchange_after_20-osx-config.sh.tmpl
@@ -1,13 +1,12 @@
-{{- /* Don't run this script in CI, ci username is runner */ -}}
-{{- if (and (eq .chezmoi.os "darwin") (ne .chezmoi.username "runner")) -}}
+{{- if and (eq .chezmoi.os "darwin") (not .is_ci_workflow) -}}
#!/usr/bin/env bash
{{ template "shared_script_utils.bash" . }}
# Grab the hash of the osx-defaults.sh script to run it when changed
-# osx-defaults.sh hash: {{ include "dot_shell/scripts/executable_osx-defaults.sh.tmpl" | sha256sum }}
+# osx-defaults.sh hash: {{ include "bin/executable_osx-defaults.sh.tmpl" | sha256sum }}
-osx_script=${HOME}/.shell/scripts/osx-defaults.sh
+osx_script=${HOME}/bin/osx-defaults.sh
header "Running OS X defaults script"
sudo "${osx_script}"
diff --git a/dotfiles/.chezmoiscripts/run_onchange_before_10-homebrew-packages.sh.tmpl b/dotfiles/.chezmoiscripts/run_onchange_before_10-homebrew-packages.sh.tmpl
index f529f46..01425b3 100644
--- a/dotfiles/.chezmoiscripts/run_onchange_before_10-homebrew-packages.sh.tmpl
+++ b/dotfiles/.chezmoiscripts/run_onchange_before_10-homebrew-packages.sh.tmpl
@@ -5,7 +5,7 @@
export HOMEBREW_NO_INSTALL_UPGRADE=TRUE
export HOMEBREW_CASK_OPTS="--appdir=/Applications"
-export HOMEBREW_NO_INSTALL_CLEANUP=FALSE
+export HOMEBREW_NO_INSTALL_CLEANUP=1
formulae=(
{{ range $package := .packages.homebrew.common.formulae }}
@@ -73,16 +73,15 @@ for formula in ${formulae[@]}; do
fi
done
+{{ if not .is_ci_workflow }}
for cask in ${casks[@]}; do
if ! _inArray_ -i "${cask}" "${currently_installed_casks[@]}"; then
brew install -q --cask ${cask}
fi
done
+{{ end }}
-_safeExit_
-
-brew cleanup
success "Homebrew packages installed"
_safeExit_
diff --git a/dotfiles/.chezmoiscripts/run_onchange_before_10-mas-applications.sh.tmpl b/dotfiles/.chezmoiscripts/run_onchange_before_10-mas-applications.sh.tmpl
index c3a7b5b..7fa15d6 100644
--- a/dotfiles/.chezmoiscripts/run_onchange_before_10-mas-applications.sh.tmpl
+++ b/dotfiles/.chezmoiscripts/run_onchange_before_10-mas-applications.sh.tmpl
@@ -1,4 +1,4 @@
-{{- if eq .chezmoi.os "darwin" -}}
+{{- if and (eq .chezmoi.os "darwin") (not .is_ci_workflow) -}}
#!/usr/bin/env bash
{{ template "shared_script_utils.bash" . }}
diff --git a/dotfiles/.chezmoitemplates/halp_config.toml b/dotfiles/.chezmoitemplates/halp_config.toml
index b0d2913..c6098bb 100644
--- a/dotfiles/.chezmoitemplates/halp_config.toml
+++ b/dotfiles/.chezmoitemplates/halp_config.toml
@@ -15,7 +15,7 @@ comment_placement = "BEST"
file_exclude_regex = '0[0-3][0-9]-.*\.sh$'
# Globs to match files against
-file_globs = ["~/.shell/sourced/**/*.sh"]
+file_globs = ["{{ .xdgConfigDir }}/dotfile_sourced/**/*.sh"]
# The name of the uncategorized category
uncategorized_name = "uncategorized"
diff --git a/dotfiles/.chezmoitemplates/usrbin_config.toml b/dotfiles/.chezmoitemplates/usrbin_config.toml
index 0650bbc..757025d 100644
--- a/dotfiles/.chezmoitemplates/usrbin_config.toml
+++ b/dotfiles/.chezmoitemplates/usrbin_config.toml
@@ -55,8 +55,8 @@
[autopull]
repo_dirs = [
- {{- if joinPath .zsh_dir "plugins" | lstat }}
- "{{ .zsh_dir }}/plugins",
+ {{- if joinPath .xdgDataDir "zsh" "plugins" | lstat }}
+ "{{ .xdgDataDir }}/zsh/plugins",
{{- end }}
{{- if joinPath .chezmoi.homeDir "repos" | lstat }}
"~/repos",
diff --git a/dotfiles/.chezmoitemplates/vid-cleaner_config.toml b/dotfiles/.chezmoitemplates/vid-cleaner_config.toml
index 857e279..ba72de8 100644
--- a/dotfiles/.chezmoitemplates/vid-cleaner_config.toml
+++ b/dotfiles/.chezmoitemplates/vid-cleaner_config.toml
@@ -9,11 +9,10 @@ log_to_file = false
keep_languages = ["en"]
# External services used to determine the original language of a movie or TV show
-
-radarr_api_key = "{{- range (onepassword "yevda4magqej3yawqf573rijd4").fields }}{{- if eq .label "api_key" }}{{ .value }}{{- end }}{{- end }}"
-radarr_url = "{{- range (onepassword "yevda4magqej3yawqf573rijd4").urls }}{{- if eq .label "website" }}{{- .href }}{{- end }}{{- end }}"
-sonarr_api_key = "{{- range (onepassword "5zk3pkmm2wbk73ss4dlli6dvz4").fields }}{{- if eq .label "api_key" }}{{ .value }}{{- end }}{{- end }}"
-sonarr_url = "{{- range (onepassword "5zk3pkmm2wbk73ss4dlli6dvz4").urls }}{{- if eq .label "website" }}{{- .href }}{{- end }}{{- end }}"
-tmdb_api_key = "{{- range (onepassword "42el6epcf5c55hi2kyn2kmwwxq").fields }}{{- if eq .label "api_key" }}{{ .value }}{{- end }}{{- end }}"
+radarr_api_key = "{{- onepasswordRead .secrets.radarr_api_key }}"
+radarr_url = "{{- onepasswordRead .secrets.radarr_url }}"
+sonarr_api_key = "{{- onepasswordRead .secrets.sonarr_api_key }}"
+sonarr_url = "{{- onepasswordRead .secrets.sonarr_url }}"
+tmdb_api_key = "{{- onepasswordRead .secrets.tmdb_api_key }}"
{{- end }}
diff --git a/dotfiles/Library/Application Support/espanso/match/emoji.yml b/dotfiles/Library/Application Support/espanso/match/emoji.yml
new file mode 100644
index 0000000..16fda50
--- /dev/null
+++ b/dotfiles/Library/Application Support/espanso/match/emoji.yml
@@ -0,0 +1,74 @@
+---
+matches:
+ - trigger: "::rofl"
+ replace: "🤣"
+ - trigger: "::joy"
+ replace: "😂"
+ - trigger: "::smile"
+ replace: "😊"
+ - trigger: "::grin"
+ replace: "😁"
+ - trigger: "::wink"
+ replace: "😉"
+ - trigger: "::sad"
+ replace: "😞"
+ - trigger: "::cry"
+ replace: "😢"
+ - trigger: "::angry"
+ replace: "😠"
+ - trigger: "::love"
+ replace: "❤️"
+ - trigger: "::like"
+ replace: "👍"
+ - trigger: "::dislike"
+ replace: "👎"
+ - trigger: "::ok"
+ replace: "👌"
+ - trigger: "::clap"
+ replace: "👏"
+ - trigger: "::pray"
+ replace: "🙏"
+ - trigger: "::fire"
+ replace: "🔥"
+ - trigger: "::poop"
+ replace: "💩"
+ - trigger: "::heart"
+ replace: "❤️"
+ - trigger: "::grimmace"
+ replace: "😬"
+ - trigger: "::tongue"
+ replace: "😛"
+ - trigger: "::sunglasses"
+ replace: "😎"
+ - trigger: "::smirk"
+ replace: "😏"
+ - trigger: "::shrug"
+ replace: "🤷"
+ - trigger: "::face"
+ replace: "🤦"
+ - trigger: "::eyes"
+ replace: "👀"
+ - trigger: "::tree"
+ replace: "🌳"
+ - trigger: "::gun"
+ replace: "🔫"
+ - trigger: "::pistol"
+ replace: "🔫"
+ - trigger: "::bomb"
+ replace: "💣"
+ - trigger: "::rocket"
+ replace: "🚀"
+ - trigger: "::star"
+ replace: "⭐"
+ - trigger: "::sparkles"
+ replace: "✨"
+ - trigger: "::party"
+ replace: "🎉"
+ - trigger: "::celebrate"
+ replace: "🎉🥳🎊"
+ - trigger: "::shoot"
+ replace: "😞🔫"
+ - trigger: "::dead"
+ replace: "💀"
+ - trigger: "::spy"
+ replace: "🌳👀🌳"
diff --git a/dotfiles/dot_shell/scripts/executable_debian-startup.sh.tmpl b/dotfiles/bin/executable_linux-startup.sh.tmpl
similarity index 100%
rename from dotfiles/dot_shell/scripts/executable_debian-startup.sh.tmpl
rename to dotfiles/bin/executable_linux-startup.sh.tmpl
diff --git a/dotfiles/dot_shell/scripts/executable_osx-defaults.sh.tmpl b/dotfiles/bin/executable_osx-defaults.sh.tmpl
similarity index 98%
rename from dotfiles/dot_shell/scripts/executable_osx-defaults.sh.tmpl
rename to dotfiles/bin/executable_osx-defaults.sh.tmpl
index 74fc249..cb2aa5d 100644
--- a/dotfiles/dot_shell/scripts/executable_osx-defaults.sh.tmpl
+++ b/dotfiles/bin/executable_osx-defaults.sh.tmpl
@@ -9,9 +9,6 @@
# and sets up preferences and configurations for all the built-in services and
# apps. Third-party app config should be done elsewhere.
#
-# Options:
-# --no-restart: Don't restart any apps or services after running the script.
-#
# If you want to figure out what default needs changing, do the following:
#
# 1. `cd /tmp`
@@ -880,17 +877,6 @@ defaults write com.google.Chrome.canary DisablePrintPreview -bool true
# Enable the debug menu in Address Book
defaults write com.apple.addressbook ABShowDebugMenu -bool true
-###############################################################################
-# Kill/restart affected applications #
-###############################################################################
-
-# Restart affected applications if `--no-restart` flag is not present.
-# if [[ ! ($* == *--no-restart*) ]]; then
-# for app in "cfprefsd" "Dock" "Finder" "Mail" "Messages" "Safari" "SystemUIServer" "Terminal"; do
-# killall "${app}" >/dev/null 2>&1
-# done
-# fi
-
notice "osx-defaults: Done. Note that some of these changes require a logout/restart to take effect."
_safeExit_
diff --git a/dotfiles/dot_bashrc.tmpl b/dotfiles/dot_bashrc.tmpl
index 6f38c53..ce44b4b 100644
--- a/dotfiles/dot_bashrc.tmpl
+++ b/dotfiles/dot_bashrc.tmpl
@@ -14,7 +14,7 @@ umask 002
# Locations containing files *.bash to be sourced to your environment
configFileLocations=(
- "${HOME}/.shell/sourced"
+ "{{ .xdgConfigDir }}/dotfile_source"
)
for configFileLocation in "${configFileLocations[@]}"; do
diff --git a/dotfiles/dot_config/atuin/config.toml b/dotfiles/dot_config/atuin/config.toml.tmpl
similarity index 97%
rename from dotfiles/dot_config/atuin/config.toml
rename to dotfiles/dot_config/atuin/config.toml.tmpl
index 5cd0cf2..b097ffb 100644
--- a/dotfiles/dot_config/atuin/config.toml
+++ b/dotfiles/dot_config/atuin/config.toml.tmpl
@@ -1,5 +1,5 @@
## where to store your database.
-db_path = "~/.local/share/atuin/history.db"
+db_path = "{{ .xdgDataDir }}/atuin/history.db"
## where to store your encryption key, default is your system data directory
# key_path = "~/.key"
diff --git a/dotfiles/dot_curlrc b/dotfiles/dot_config/dot_curlrc
similarity index 100%
rename from dotfiles/dot_curlrc
rename to dotfiles/dot_config/dot_curlrc
diff --git a/dotfiles/dot_shell/sourced/001-bind-keys.zsh b/dotfiles/dot_config/dotfile_source/001-bind-keys.zsh
similarity index 100%
rename from dotfiles/dot_shell/sourced/001-bind-keys.zsh
rename to dotfiles/dot_config/dotfile_source/001-bind-keys.zsh
diff --git a/dotfiles/dot_shell/sourced/001-options.bash b/dotfiles/dot_config/dotfile_source/001-options.bash
similarity index 98%
rename from dotfiles/dot_shell/sourced/001-options.bash
rename to dotfiles/dot_config/dotfile_source/001-options.bash
index 52eb5ab..98c163b 100644
--- a/dotfiles/dot_shell/sourced/001-options.bash
+++ b/dotfiles/dot_config/dotfile_source/001-options.bash
@@ -24,6 +24,7 @@ export HISTTIMEFORMAT="[%F %T] "
# Lots o' history.
export HISTSIZE=10000
export HISTFILESIZE=10000
+export HISTFILE={{ .xdgStateDir }}/bash/history
# Avoid duplicate entries
HISTCONTROL="erasedups:ignoreboth"
diff --git a/dotfiles/dot_shell/sourced/001-options.zsh.tmpl b/dotfiles/dot_config/dotfile_source/001-options.zsh.tmpl
similarity index 98%
rename from dotfiles/dot_shell/sourced/001-options.zsh.tmpl
rename to dotfiles/dot_config/dotfile_source/001-options.zsh.tmpl
index 171c6d1..c466f58 100644
--- a/dotfiles/dot_shell/sourced/001-options.zsh.tmpl
+++ b/dotfiles/dot_config/dotfile_source/001-options.zsh.tmpl
@@ -40,7 +40,7 @@ setopt share_history # share history between different instances of the
unsetopt correct_all
unsetopt correct
-HISTFILE={{ .zsh_dir }}/history
+HISTFILE={{ .xdgStateDir }}/zsh/history
HISTSIZE=100000
SAVEHIST=${HISTSIZE}
HISTDUP=erase
@@ -63,7 +63,7 @@ zstyle ':completion:*:match:*' original only
zstyle ':completion:*:approximate:*' max-errors 1 numeric
zstyle ':completion:*' use-cache on
-zstyle ':completion:*' cache-path "{{ .zsh_dir }}/cache"
+zstyle ':completion:*' cache-path "{{ .xdgCacheDir }}/zsh/cache"
zstyle ':completion:*' list-colors ''
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01'
diff --git a/dotfiles/dot_shell/sourced/001-plugins.zsh.tmpl b/dotfiles/dot_config/dotfile_source/001-plugins.zsh.tmpl
similarity index 94%
rename from dotfiles/dot_shell/sourced/001-plugins.zsh.tmpl
rename to dotfiles/dot_config/dotfile_source/001-plugins.zsh.tmpl
index ed091e5..4fa4a73 100644
--- a/dotfiles/dot_shell/sourced/001-plugins.zsh.tmpl
+++ b/dotfiles/dot_config/dotfile_source/001-plugins.zsh.tmpl
@@ -6,7 +6,7 @@
_pluginload_() {
local giturl="$1"
local plugin_name=${${1##*/}%.git}
- local plugindir="${ZPLUGINDIR:-{{ .zsh_dir }}/plugins}/$plugin_name"
+ local plugindir="${ZPLUGINDIR:-{{ .xdgDataDir }}/zsh/plugins}/$plugin_name"
# clone if the plugin isn't there already
if [[ ! -d "${plugindir}" ]]; then
@@ -41,7 +41,7 @@ _pluginload_() {
}
# set where we should store Zsh plugins
-ZPLUGINDIR="{{ .zsh_dir }}/plugins"
+ZPLUGINDIR="{{ .xdgDataDir }}/zsh/plugins"
# add your plugins to this list
plugins=(
@@ -77,7 +77,7 @@ unset repo
# Update ZSH Plugins
function zshup () {
- local plugindir="${ZPLUGINDIR:-{{ .zsh_dir }}/plugins}"
+ local plugindir="${ZPLUGINDIR:-{{ .xdgDataDir }}/zsh/plugins}"
for d in $plugindir/*/.git(/); do
echo "Updating ${d:h:t}..."
command git -C "${d:h}" pull --ff --recurse-submodules --depth 1 --rebase --autostash
diff --git a/dotfiles/dot_config/dotfile_source/001-xdg.sh.tmpl b/dotfiles/dot_config/dotfile_source/001-xdg.sh.tmpl
new file mode 100644
index 0000000..a33fcaf
--- /dev/null
+++ b/dotfiles/dot_config/dotfile_source/001-xdg.sh.tmpl
@@ -0,0 +1,25 @@
+# Configures XDG specification environment variables.
+# https://specifications.freedesktop.org/basedir-spec/latest/
+
+# A single base directory relative to which user-specific data files should be written
+export XDG_DATA_HOME={{ .xdgDataDir }}
+
+# A single base directory relative to which user-specific configuration files should be written
+export XDG_CONFIG_HOME={{ .xdgConfigDir }}
+
+# A single base directory relative to which user-specific state data should be written
+export XDG_STATE_HOME={{ .xdgStateDir }}
+
+# A single base directory relative to which user-specific non-essential (cached) data should be written
+export XDG_CACHE_HOME={{ .xdgCacheDir }}
+
+# Reconfigure applications to use these directories
+# ####################################
+export ANSIBLE_HOME="${XDG_DATA_HOME}"/ansible
+export CARGO_HOME="${XDG_DATA_HOME}"/cargo
+export PYTHONSTARTUP="${XDG_CONFIG_HOME}"/python/pythonrc
+export PYTHON_HISTORY="${XDG_STATE_HOME}"/python_history
+export NPM_CONFIG_USERCONFIG="${XDG_CONFIG_HOME}"/npm/npmrc
+export ZDOTDIR="${XDG_CONFIG_HOME}"/zsh
+export RUSTUP_HOME="${XDG_DATA_HOME}"/rustup
+alias wget="wget --hsts-file='${XDG_DATA_HOME}/wget-hsts'"
diff --git a/dotfiles/dot_shell/sourced/0040-path.sh b/dotfiles/dot_config/dotfile_source/0040-path.sh
similarity index 94%
rename from dotfiles/dot_shell/sourced/0040-path.sh
rename to dotfiles/dot_config/dotfile_source/0040-path.sh
index 3567f9c..ffbe238 100644
--- a/dotfiles/dot_shell/sourced/0040-path.sh
+++ b/dotfiles/dot_config/dotfile_source/0040-path.sh
@@ -16,3 +16,5 @@ for _path in "${_myPaths[@]}"; do
fi
fi
done
+
+unset _myPaths _path
diff --git a/dotfiles/dot_shell/sourced/010-exports.sh.tmpl b/dotfiles/dot_config/dotfile_source/010-exports.sh.tmpl
similarity index 83%
rename from dotfiles/dot_shell/sourced/010-exports.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/010-exports.sh.tmpl
index c2c68cd..fcc953e 100644
--- a/dotfiles/dot_shell/sourced/010-exports.sh.tmpl
+++ b/dotfiles/dot_config/dotfile_source/010-exports.sh.tmpl
@@ -6,7 +6,9 @@ export EDITOR="$(command -v code nano | head -n 1)"
{{ if and (.use_secrets) (.dev_computer) -}}
-export HOMEBREW_GITHUB_API_TOKEN="{{ range (onepassword "oktogknogbneoifxxtnefno2cu").fields }}{{ if eq .label "HOMEBREW_GITHUB_API_TOKEN" }}{{ .value }}{{ end }}{{ end }}"
+# Authenticate github cli (gh) with a personal access token
+# Commented out b/c gh copilot CLI doesn't work with a personal access token
+# export GH_TOKEN="{{ onepasswordRead .secrets.github_personal_access_token }}"
# Valentina env variables for local development on natenate test server
# natenate-test-bot
@@ -19,7 +21,7 @@ export VALENTINA_OWNER_CHANNELS="{{- range (onepassword "oktogknogbneoifxxtnefno
export VALENTINA_AWS_ACCESS_KEY_ID="{{- range (onepassword "oktogknogbneoifxxtnefno2cu").fields }}{{- if eq .label "VALENTINA_AWS_ACCESS_KEY_ID" }}{{- .value }}{{- end }}{{- end }}"
export VALENTINA_AWS_SECRET_ACCESS_KEY="{{- range (onepassword "oktogknogbneoifxxtnefno2cu").fields }}{{- if eq .label "VALENTINA_AWS_SECRET_ACCESS_KEY" }}{{- .value }}{{- end }}{{- end }}"
export VALENTINA_S3_BUCKET_NAME="{{- range (onepassword "oktogknogbneoifxxtnefno2cu").fields }}{{- if eq .label "VALENTINA_S3_BUCKET_NAME" }}{{- .value }}{{- end }}{{- end }}"
-export VALENTINA_GITHUB_TOKEN="{{- range (onepassword "oktogknogbneoifxxtnefno2cu").fields }}{{- if eq .label "VALENTINA_GITHUB_TOKEN" }}{{- .value }}{{- end }}{{- end }}"
+export VALENTINA_GITHUB_TOKEN={{- onepasswordRead .secrets.homebrew_github_token }}
export VALENTINA_GITHUB_REPO="natelandau/valentina"
{{- end }}
diff --git a/dotfiles/dot_shell/sourced/020-alerting.sh b/dotfiles/dot_config/dotfile_source/020-alerting.sh
similarity index 100%
rename from dotfiles/dot_shell/sourced/020-alerting.sh
rename to dotfiles/dot_config/dotfile_source/020-alerting.sh
diff --git a/dotfiles/dot_shell/sourced/020-colors.sh b/dotfiles/dot_config/dotfile_source/020-colors.sh
similarity index 100%
rename from dotfiles/dot_shell/sourced/020-colors.sh
rename to dotfiles/dot_config/dotfile_source/020-colors.sh
diff --git a/dotfiles/dot_shell/sourced/030-prompt.bash b/dotfiles/dot_config/dotfile_source/030-prompt.bash
similarity index 100%
rename from dotfiles/dot_shell/sourced/030-prompt.bash
rename to dotfiles/dot_config/dotfile_source/030-prompt.bash
diff --git a/dotfiles/dot_shell/sourced/030-prompt.zsh b/dotfiles/dot_config/dotfile_source/030-prompt.zsh
similarity index 100%
rename from dotfiles/dot_shell/sourced/030-prompt.zsh
rename to dotfiles/dot_config/dotfile_source/030-prompt.zsh
diff --git a/dotfiles/dot_shell/sourced/060-common_aliases.sh.tmpl b/dotfiles/dot_config/dotfile_source/060-common_aliases.sh.tmpl
similarity index 97%
rename from dotfiles/dot_shell/sourced/060-common_aliases.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/060-common_aliases.sh.tmpl
index a498bbd..03a60f0 100644
--- a/dotfiles/dot_shell/sourced/060-common_aliases.sh.tmpl
+++ b/dotfiles/dot_config/dotfile_source/060-common_aliases.sh.tmpl
@@ -8,6 +8,7 @@ alias .6='cd ../../../../../../'
alias ~="cd ~"
alias ax='chmod a+x' # system: make file executable
alias path='echo -e ${PATH//:/\\n}' # system: Echo all executable Paths
+alias fpath='echo -e ${FPATH//:/\\n}' # system: Echo fpath
alias untar='tar -zxvf' # Extract tar.gz file
alias mktar='tar -cvzf' # Create a tar.gz file
alias numfiles='echo $(ls -1 | wc -l)' # Count of non-hidden files in current dir
diff --git a/dotfiles/dot_shell/sourced/060-common_functions.sh b/dotfiles/dot_config/dotfile_source/060-common_functions.sh.tmpl
similarity index 98%
rename from dotfiles/dot_shell/sourced/060-common_functions.sh
rename to dotfiles/dot_config/dotfile_source/060-common_functions.sh.tmpl
index de34202..b906d91 100644
--- a/dotfiles/dot_shell/sourced/060-common_functions.sh
+++ b/dotfiles/dot_config/dotfile_source/060-common_functions.sh.tmpl
@@ -293,7 +293,7 @@ htmldecode() {
# USAGE: htmlDecode
local sedLocation
- sedLocation="${HOME}/.sed/htmlDecode.sed"
+ sedLocation="{{ .xdgDataDir }}/sed/htmlDecode.sed"
if [ -f "${sedLocation}" ]; then
echo "${1}" | sed -f "${sedLocation}"
else
@@ -306,7 +306,7 @@ htmlencode() {
# USAGE: htmlEncode
local sedLocation
- sedLocation="${HOME}/.sed/htmlEncode.sed"
+ sedLocation="{{ .xdgDataDir }}/sed/htmlEncode.sed"
if [ -f "${sedLocation}" ]; then
echo "${1}" | sed -f "${sedLocation}"
else
diff --git a/dotfiles/dot_shell/sourced/070-better-defaults.sh.tmpl b/dotfiles/dot_config/dotfile_source/070-better-defaults.sh.tmpl
similarity index 100%
rename from dotfiles/dot_shell/sourced/070-better-defaults.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/070-better-defaults.sh.tmpl
diff --git a/dotfiles/dot_shell/sourced/080-linux.sh.tmpl b/dotfiles/dot_config/dotfile_source/080-linux.sh.tmpl
similarity index 86%
rename from dotfiles/dot_shell/sourced/080-linux.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/080-linux.sh.tmpl
index 86706a1..67ddd93 100644
--- a/dotfiles/dot_shell/sourced/080-linux.sh.tmpl
+++ b/dotfiles/dot_config/dotfile_source/080-linux.sh.tmpl
@@ -2,8 +2,8 @@
# Run startup scripts
-if [[ -f "${HOME}/.shell/scripts/debian-startup.sh" ]]; then
- "${HOME}"/.shell/scripts/debian-startup.sh
+if [[ -f "${HOME}/bin/linux-startup.sh" ]]; then
+ "${HOME}"/bin/linux-startup.sh
fi
# Aliases and Functions
diff --git a/dotfiles/dot_shell/sourced/080-macos.sh.tmpl b/dotfiles/dot_config/dotfile_source/080-macos.sh.tmpl
similarity index 100%
rename from dotfiles/dot_shell/sourced/080-macos.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/080-macos.sh.tmpl
diff --git a/dotfiles/dot_shell/sourced/080-synology.sh.tmpl b/dotfiles/dot_config/dotfile_source/080-synology.sh.tmpl
similarity index 100%
rename from dotfiles/dot_shell/sourced/080-synology.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/080-synology.sh.tmpl
diff --git a/dotfiles/dot_shell/sourced/090-homelab.sh.tmpl b/dotfiles/dot_config/dotfile_source/090-homelab.sh.tmpl
similarity index 100%
rename from dotfiles/dot_shell/sourced/090-homelab.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/090-homelab.sh.tmpl
diff --git a/dotfiles/dot_shell/sourced/090-personal.sh.tmpl b/dotfiles/dot_config/dotfile_source/090-personal.sh.tmpl
similarity index 100%
rename from dotfiles/dot_shell/sourced/090-personal.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/090-personal.sh.tmpl
diff --git a/dotfiles/dot_shell/sourced/third-party/1password.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/1password.sh.tmpl
similarity index 100%
rename from dotfiles/dot_shell/sourced/third-party/1password.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/third-party/1password.sh.tmpl
diff --git a/dotfiles/dot_shell/sourced/third-party/ansible.sh b/dotfiles/dot_config/dotfile_source/third-party/ansible.sh
similarity index 100%
rename from dotfiles/dot_shell/sourced/third-party/ansible.sh
rename to dotfiles/dot_config/dotfile_source/third-party/ansible.sh
diff --git a/dotfiles/dot_shell/sourced/third-party/atuin.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/atuin.sh.tmpl
similarity index 100%
rename from dotfiles/dot_shell/sourced/third-party/atuin.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/third-party/atuin.sh.tmpl
diff --git a/dotfiles/dot_shell/sourced/third-party/bat.sh b/dotfiles/dot_config/dotfile_source/third-party/bat.sh
similarity index 100%
rename from dotfiles/dot_shell/sourced/third-party/bat.sh
rename to dotfiles/dot_config/dotfile_source/third-party/bat.sh
diff --git a/dotfiles/dot_shell/sourced/third-party/chezmoi.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/chezmoi.sh.tmpl
similarity index 54%
rename from dotfiles/dot_shell/sourced/third-party/chezmoi.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/third-party/chezmoi.sh.tmpl
index 2b92d28..aa04251 100644
--- a/dotfiles/dot_shell/sourced/third-party/chezmoi.sh.tmpl
+++ b/dotfiles/dot_config/dotfile_source/third-party/chezmoi.sh.tmpl
@@ -3,8 +3,8 @@
alias chez='chezmoi'
{{- if lookPath "code" }}
-alias cdot='code ${HOME}/.local/share/chezmoi/.'
+alias cdot='code {{ .xdgDataDir }}/chezmoi/.'
{{- else }}
-alias cdot='cd ${HOME}/.local/share/chezmoi'
+alias cdot='cd {{ .xdgDataDir }}/chezmoi'
{{- end }}
{{- end }}
diff --git a/dotfiles/dot_shell/sourced/third-party/crowdsec.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/crowdsec.sh.tmpl
similarity index 100%
rename from dotfiles/dot_shell/sourced/third-party/crowdsec.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/third-party/crowdsec.sh.tmpl
diff --git a/dotfiles/dot_shell/sourced/third-party/docker.sh b/dotfiles/dot_config/dotfile_source/third-party/docker.sh
similarity index 100%
rename from dotfiles/dot_shell/sourced/third-party/docker.sh
rename to dotfiles/dot_config/dotfile_source/third-party/docker.sh
diff --git a/dotfiles/dot_shell/sourced/third-party/ffmpeg.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/ffmpeg.sh.tmpl
similarity index 100%
rename from dotfiles/dot_shell/sourced/third-party/ffmpeg.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/third-party/ffmpeg.sh.tmpl
diff --git a/dotfiles/dot_shell/sourced/third-party/fzf.sh b/dotfiles/dot_config/dotfile_source/third-party/fzf.sh
similarity index 100%
rename from dotfiles/dot_shell/sourced/third-party/fzf.sh
rename to dotfiles/dot_config/dotfile_source/third-party/fzf.sh
diff --git a/dotfiles/dot_shell/sourced/third-party/git.sh b/dotfiles/dot_config/dotfile_source/third-party/git.sh
similarity index 100%
rename from dotfiles/dot_shell/sourced/third-party/git.sh
rename to dotfiles/dot_config/dotfile_source/third-party/git.sh
diff --git a/dotfiles/dot_config/dotfile_source/third-party/github.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/github.sh.tmpl
new file mode 100644
index 0000000..a0c14a5
--- /dev/null
+++ b/dotfiles/dot_config/dotfile_source/third-party/github.sh.tmpl
@@ -0,0 +1,6 @@
+if [[ $(command -v gh) ]]; then
+ if gh auth status &>/dev/null && gh extension list | grep -q "copilot"; then
+ [[ -n ${ZSH_NAME} ]] && eval "$(gh copilot alias -- zsh)"
+ [[ -n ${BASH} ]] && eval "$(gh copilot alias -- bash)"
+ fi
+fi
diff --git a/dotfiles/dot_shell/sourced/third-party/homebrew.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/homebrew.sh.tmpl
similarity index 85%
rename from dotfiles/dot_shell/sourced/third-party/homebrew.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/third-party/homebrew.sh.tmpl
index df5ada0..16e5f36 100644
--- a/dotfiles/dot_shell/sourced/third-party/homebrew.sh.tmpl
+++ b/dotfiles/dot_config/dotfile_source/third-party/homebrew.sh.tmpl
@@ -1,7 +1,11 @@
-{{- if (and (eq .chezmoi.os "darwin") (lookPath "brew")) }}
+{{- if and (eq .chezmoi.os "darwin") (lookPath "brew") }}
-# Don't send analytics data
-export HOMEBREW_NO_ANALYTICS=1
+# Set Exports
+export HOMEBREW_CASK_OPTS="--appdir=/Applications"
+export HOMEBREW_NO_INSTALL_CLEANUP=1
+{{ if .use_secrets -}}
+export HOMEBREW_GITHUB_API_TOKEN={{- onepasswordRead .secrets.homebrew_github_token }}
+{{ end }}
# Set homebrew paths for GNU utilities
_homebrewPaths=(
@@ -24,9 +28,7 @@ done
eval "$($(brew --prefix)/bin/brew shellenv)"
-# if [[ -s /usr/local/etc/profile.d/autojump.sh ]]; then
-# source "/usr/local/etc/profile.d/autojump.sh"
-# fi
+
# shellcheck disable=SC1091
if [[ -n ${BASH} ]] && [ -f "/usr/local/etc/profile.d/bash_completion.sh" ]; then
source "/usr/local/etc/profile.d/bash_completion.sh"
@@ -38,10 +40,6 @@ if [ -f "$(brew --repository)/bin/src-hilite-lesspipe.sh" ]; then
export LESS=' -R -z-4'
fi
-# /Applications is now the default but leaving this for posterity
-export HOMEBREW_CASK_OPTS="--appdir=/Applications"
-export HOMEBREW_NO_INSTALL_CLEANUP=FALSE
-
# Aliases
alias brwe='brew' # Fix common typo
diff --git a/dotfiles/dot_shell/sourced/third-party/imaginary.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/imaginary.sh.tmpl
similarity index 100%
rename from dotfiles/dot_shell/sourced/third-party/imaginary.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/third-party/imaginary.sh.tmpl
diff --git a/dotfiles/dot_shell/sourced/third-party/jdfile.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/jdfile.sh.tmpl
similarity index 100%
rename from dotfiles/dot_shell/sourced/third-party/jdfile.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/third-party/jdfile.sh.tmpl
diff --git a/dotfiles/dot_shell/sourced/third-party/ls_colors.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/ls_colors.sh.tmpl
similarity index 100%
rename from dotfiles/dot_shell/sourced/third-party/ls_colors.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/third-party/ls_colors.sh.tmpl
diff --git a/dotfiles/dot_shell/sourced/third-party/nomad.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/nomad.sh.tmpl
similarity index 94%
rename from dotfiles/dot_shell/sourced/third-party/nomad.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/third-party/nomad.sh.tmpl
index de3deee..01975c5 100644
--- a/dotfiles/dot_shell/sourced/third-party/nomad.sh.tmpl
+++ b/dotfiles/dot_config/dotfile_source/third-party/nomad.sh.tmpl
@@ -1,4 +1,4 @@
-{{- if (and (.homelab_member) (lookPath "nomad")) -}}
+{{- if and (.homelab_member) (lookPath "nomad") -}}
nomadExecutable="$(command -v nomad)"
if [[ -n ${BASH} ]]; then
diff --git a/dotfiles/dot_shell/sourced/third-party/npm.sh b/dotfiles/dot_config/dotfile_source/third-party/npm.sh
similarity index 100%
rename from dotfiles/dot_shell/sourced/third-party/npm.sh
rename to dotfiles/dot_config/dotfile_source/third-party/npm.sh
diff --git a/dotfiles/dot_shell/sourced/third-party/poetry.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/poetry.sh.tmpl
similarity index 68%
rename from dotfiles/dot_shell/sourced/third-party/poetry.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/third-party/poetry.sh.tmpl
index b0e0e1d..67ceace 100644
--- a/dotfiles/dot_shell/sourced/third-party/poetry.sh.tmpl
+++ b/dotfiles/dot_config/dotfile_source/third-party/poetry.sh.tmpl
@@ -2,11 +2,11 @@
# Completions for zsh
if [[ -n ${ZSH_NAME} ]]; then
- if [ ! -d "{{ .zsh_dir }}/completions" ]; then
- mkdir -p "{{ .zsh_dir }}/completions"
+ if [ ! -d "{{ .xdgDataDir }}/zsh/completions" ]; then
+ mkdir -p "{{ .xdgDataDir }}/zsh/completions"
fi
- if [ ! -f "{{ .zsh_dir }}/completions/_poetry" ]; then
- poetry completions zsh >"{{ .zsh_dir }}/completions/_poetry"
+ if [ $(command -v poetry) ] && [ ! -f "{{ .xdgDataDir }}/zsh/completions/_poetry" ]; then
+ poetry completions zsh >"{{ .xdgDataDir }}/zsh/completions/_poetry"
fi
fi
diff --git a/dotfiles/dot_config/dotfile_source/third-party/pyenv.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/pyenv.sh.tmpl
new file mode 100644
index 0000000..61832f6
--- /dev/null
+++ b/dotfiles/dot_config/dotfile_source/third-party/pyenv.sh.tmpl
@@ -0,0 +1,9 @@
+{{- if and ((joinPath .chezmoi.homeDir ".pyenv") | lstat) (lookPath "pyenv") -}}
+
+export PYENV_ROOT="${XDG_DATA_HOME}"/pyenv
+
+command -v pyenv >/dev/null || export PATH="${PYENV_ROOT}/bin:${PATH}"
+eval "$(pyenv init --path)"
+eval "$(pyenv init -)"
+
+{{- end }}
diff --git a/dotfiles/dot_shell/sourced/third-party/rip2.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/rip2.sh.tmpl
similarity index 58%
rename from dotfiles/dot_shell/sourced/third-party/rip2.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/third-party/rip2.sh.tmpl
index 9592193..78a9b2d 100644
--- a/dotfiles/dot_shell/sourced/third-party/rip2.sh.tmpl
+++ b/dotfiles/dot_config/dotfile_source/third-party/rip2.sh.tmpl
@@ -7,11 +7,11 @@ alias rmd='rip'
# Completions for zsh
if [[ -n ${ZSH_NAME} ]]; then
- if [ ! -d "{{ .zsh_dir }}/completions" ]; then
- mkdir -p "{{ .zsh_dir }}/completions"
+ if [ ! -d "{{ .xdgDataDir }}/zsh/completions" ]; then
+ mkdir -p "{{ .xdgDataDir }}/zsh/completions"
fi
- if [ ! -f "{{ .zsh_dir }}/completions/_rip" ]; then
- rip completions zsh >"{{ .zsh_dir }}/completions/_rip"
+ if [ $(command -v rip) ] && [ ! -f "{{ .xdgDataDir }}/zsh/completions/_rip" ]; then
+ rip completions zsh >"{{ .xdgDataDir }}/zsh/completions/_rip"
fi
fi
diff --git a/dotfiles/dot_shell/sourced/third-party/tailscale.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/tailscale.sh.tmpl
similarity index 100%
rename from dotfiles/dot_shell/sourced/third-party/tailscale.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/third-party/tailscale.sh.tmpl
diff --git a/dotfiles/dot_shell/sourced/third-party/thefuck.sh b/dotfiles/dot_config/dotfile_source/third-party/thefuck.sh
similarity index 100%
rename from dotfiles/dot_shell/sourced/third-party/thefuck.sh
rename to dotfiles/dot_config/dotfile_source/third-party/thefuck.sh
diff --git a/dotfiles/dot_shell/sourced/third-party/vscode.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/vscode.sh.tmpl
similarity index 100%
rename from dotfiles/dot_shell/sourced/third-party/vscode.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/third-party/vscode.sh.tmpl
diff --git a/dotfiles/dot_shell/sourced/third-party/zoxide.sh.tmpl b/dotfiles/dot_config/dotfile_source/third-party/zoxide.sh.tmpl
similarity index 100%
rename from dotfiles/dot_shell/sourced/third-party/zoxide.sh.tmpl
rename to dotfiles/dot_config/dotfile_source/third-party/zoxide.sh.tmpl
diff --git a/dotfiles/dot_gitconfig.tmpl b/dotfiles/dot_config/git/config.tmpl
similarity index 100%
rename from dotfiles/dot_gitconfig.tmpl
rename to dotfiles/dot_config/git/config.tmpl
diff --git a/dotfiles/dot_config/nano/nanorc.tmpl b/dotfiles/dot_config/nano/nanorc.tmpl
new file mode 100644
index 0000000..7bf5248
--- /dev/null
+++ b/dotfiles/dot_config/nano/nanorc.tmpl
@@ -0,0 +1,11 @@
+# enables the minibar feature
+set minibar
+
+# disables the shortcut hints
+set nohelp
+
+# disable inverse text for the minibar
+set titlecolor normal,normal
+
+# Include syntax highlighters (add more from {{ .xdgDataDir }}/nano)
+include {{ .xdgDataDir }}/nano/*.nanorc
diff --git a/dotfiles/dot_config/npm/npmrc b/dotfiles/dot_config/npm/npmrc
new file mode 100644
index 0000000..cbc2958
--- /dev/null
+++ b/dotfiles/dot_config/npm/npmrc
@@ -0,0 +1,4 @@
+prefix=${XDG_DATA_HOME}/npm
+cache=${XDG_CACHE_HOME}/npm
+init-module=${XDG_CONFIG_HOME}/npm/config/npm-init.js
+tmp=${XDG_RUNTIME_DIR}/npm
diff --git a/dotfiles/dot_config/python/executable_pythonrc b/dotfiles/dot_config/python/executable_pythonrc
new file mode 100644
index 0000000..1344c1a
--- /dev/null
+++ b/dotfiles/dot_config/python/executable_pythonrc
@@ -0,0 +1,50 @@
+#!/usr/bin/env python3
+
+# This entire thing is unnecessary post v3.13.0a3
+# https://github.com/python/cpython/issues/73965
+
+
+def is_vanilla() -> bool:
+ """:return: whether running "vanilla" Python <3.13"""
+ import sys
+
+ return (
+ not hasattr(__builtins__, "__IPYTHON__")
+ and "bpython" not in sys.argv[0]
+ and sys.version_info < (3, 13)
+ )
+
+
+def setup_history() -> None:
+ """Read and write history from state file."""
+ import atexit
+ import os
+ import readline
+ from pathlib import Path
+
+ history: Path
+ state_home: Path
+
+ # Check PYTHON_HISTORY for future-compatibility with Python 3.13
+ if history := os.environ.get("PYTHON_HISTORY"):
+ history = Path(history)
+
+ # https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html#variables
+
+ elif state_home := os.environ.get("XDG_STATE_HOME"):
+ state_home = Path(state_home)
+ else:
+ state_home = Path.home() / ".local" / "state"
+
+ final_history: Path = history or state_home / "python_history"
+
+ # https://github.com/python/cpython/issues/105694
+ if not final_history.is_file():
+ readline.write_history_file(str(final_history)) # breaks on macos + python3 without this.
+
+ readline.read_history_file(final_history)
+ atexit.register(readline.write_history_file, final_history)
+
+
+if is_vanilla():
+ setup_history()
diff --git a/dotfiles/dot_digrc b/dotfiles/dot_digrc
deleted file mode 100644
index 0eac377..0000000
--- a/dotfiles/dot_digrc
+++ /dev/null
@@ -1 +0,0 @@
-+noall +answer
diff --git a/dotfiles/dot_gitignore b/dotfiles/dot_gitignore
deleted file mode 100644
index e43b0f9..0000000
--- a/dotfiles/dot_gitignore
+++ /dev/null
@@ -1 +0,0 @@
-.DS_Store
diff --git a/dotfiles/dot_sed/htmlDecode.sed b/dotfiles/dot_local/share/sed/htmlDecode.sed
similarity index 100%
rename from dotfiles/dot_sed/htmlDecode.sed
rename to dotfiles/dot_local/share/sed/htmlDecode.sed
diff --git a/dotfiles/dot_sed/htmlEncode.sed b/dotfiles/dot_local/share/sed/htmlEncode.sed
similarity index 100%
rename from dotfiles/dot_sed/htmlEncode.sed
rename to dotfiles/dot_local/share/sed/htmlEncode.sed
diff --git a/dotfiles/dot_sed/stopwords.sed b/dotfiles/dot_local/share/sed/stopwords.sed
similarity index 100%
rename from dotfiles/dot_sed/stopwords.sed
rename to dotfiles/dot_local/share/sed/stopwords.sed
diff --git a/dotfiles/dot_nanorc.tmpl b/dotfiles/dot_nanorc.tmpl
deleted file mode 100644
index 38ab056..0000000
--- a/dotfiles/dot_nanorc.tmpl
+++ /dev/null
@@ -1,27 +0,0 @@
-# enables the minibar feature
-set minibar
-
-# disables the shortcut hints
-set nohelp
-
-# disable inverse text for the minibar
-set titlecolor normal,normal
-
-# Include syntax highlighters (add more from ~/.nano/)
-include ~/.nano/*.nanorc
-# include "~/.nano/conf.nanorc"
-# include "~/.nano/csv.nanorc"
-# include "~/.nano/dotenv.nanorc"
-# include "~/.nano/etc-hosts.nanorc"
-# include "~/.nano/git.nanorc"
-# include "~/.nano/html.nanorc"
-# include "~/.nano/hcl.nanorc"
-# include "~/.nano/ini.nanorc"
-# include "~/.nano/json.nanorc"
-# include "~/.nano/markdown.nanorc"
-# include "~/.nano/nginx.nanorc"
-# include "~/.nano/sed.nanorc"
-# include "~/.nano/sh.nanorc"
-# include "~/.nano/sql.nanorc"
-# include "~/.nano/yaml.nanorc"
-# include "~/.nano/zsh.nanorc"
diff --git a/dotfiles/dot_shell/scripts/executable_chezmoi_binary_update.py b/dotfiles/dot_shell/scripts/executable_chezmoi_binary_update.py
deleted file mode 100644
index fecbc6c..0000000
--- a/dotfiles/dot_shell/scripts/executable_chezmoi_binary_update.py
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/usr/bin/env python3
-
-# /// script
-# dependencies = [
-# "rich",
-# "httpx",
-# "sh",
-# "semver",
-# "typer",
-# ]
-# ///
-
-
-import logging
-import re
-from typing import Annotated
-
-import httpx
-import sh
-import typer
-from rich.console import Console
-from rich.logging import RichHandler
-from semver import VersionInfo
-
-c = Console()
-
-
-def main(
- command: Annotated[str, typer.Option(help="Binary to check for updates")],
- github: Annotated[
- str, typer.Option(help="GitHub repository in the format 'owner/repo'")
- ],
- update_url: Annotated[
- str, typer.Option(help="Install script binary to pipe to `sh`")
- ] = None,
- log_level: Annotated[str, typer.Option(help="Log level")] = "WARNING",
-):
- # Set up logging
- FORMAT = "%(message)s"
- logging.basicConfig(
- level=log_level, format=FORMAT, datefmt="[%X]", handlers=[RichHandler()]
- )
- logging.getLogger("sh").setLevel(level="WARNING")
- logging.getLogger("httpx").setLevel(level="WARNING")
- log = logging.getLogger("rich")
-
- c.print(f"Checking for updates to {command}")
-
- # Grab local version number
- try:
- cmd = sh.Command(command)
- except sh.CommandNotFound:
- log.error(f"command '{command}' not found")
- raise typer.Exit(1)
-
- local_version_output = cmd("--version").strip()
- local_version = re.sub(
- rf"{command} ?v?", "", local_version_output, flags=re.IGNORECASE
- )
-
- # Grab remote version number
- r = httpx.get(f"https://api.github.com/repos/{github}/releases/latest")
-
- if not r.status_code == 200:
- log.error("Failed to fetch latest release")
- raise typer.Exit(1)
-
- response = r.json()
-
- if response["draft"]:
- log.warning("Draft release")
- raise typer.Exit(1)
- elif response["prerelease"]:
- log.warning("Pre-release")
- raise typer.Exit(1)
-
- remote_version = response["name"].replace("v", "").strip()
-
- log.info(f"{local_version=}")
- log.info(f"{remote_version=}")
-
- # Compare versions
- if VersionInfo.parse(local_version) < VersionInfo.parse(remote_version):
- c.print(f"Update available for {command}")
- if update_url:
- c.print("Running update script")
- curl = sh.Command("curl")
- sh_bin = sh.Command("sh")
- sh_response = sh_bin(
- _in=curl("sSfL", update_url),
- )
- c.print(sh_response)
- else:
- c.print(f"No update available for {command}")
-
-
-if __name__ == "__main__":
- typer.run(main)
diff --git a/dotfiles/dot_shell/sourced/third-party/iterm.sh.tmpl b/dotfiles/dot_shell/sourced/third-party/iterm.sh.tmpl
deleted file mode 100644
index f212187..0000000
--- a/dotfiles/dot_shell/sourced/third-party/iterm.sh.tmpl
+++ /dev/null
@@ -1,24 +0,0 @@
-{{- if eq .chezmoi.os "darwin" -}}
-{{- if "/Applications/iTerm.app" | lstat -}}
-
-if [[ -n ${BASH} ]]; then
- if [[ ! -f ~/.iterm2_shell_integration.bash ]]; then
- curl -L https://iterm2.com/shell_integration/bash \
- -o ~/.iterm2_shell_integration.bash &>/dev/null
- fi
- if [[ -f ~/.iterm2_shell_integration.bash ]]; then
- source ~/.iterm2_shell_integration.bash
- fi
-elif [[ -n ${ZSH_NAME} ]]; then
- if [[ ! -f "${HOME}/.iterm2_shell_integration.zsh" ]]; then
- curl -L https://iterm2.com/shell_integration/zsh \
- -o "${HOME}/.iterm2_shell_integration.zsh" &>/dev/null
- fi
- # shellcheck disable=SC1091
- if [[ -f "${HOME}/.iterm2_shell_integration.zsh" ]]; then
- source "${HOME}/.iterm2_shell_integration.zsh"
- fi
-fi
-
-{{- end }}
-{{- end }}
diff --git a/dotfiles/dot_shell/sourced/third-party/pyenv.sh.tmpl b/dotfiles/dot_shell/sourced/third-party/pyenv.sh.tmpl
deleted file mode 100644
index 2d06fee..0000000
--- a/dotfiles/dot_shell/sourced/third-party/pyenv.sh.tmpl
+++ /dev/null
@@ -1,11 +0,0 @@
-{{- if (joinPath .chezmoi.homeDir ".pyenv") | lstat -}}
-
-## Depreciated in favor of uv
-
-# export PYENV_ROOT="${HOME}/.pyenv"
-
-# command -v pyenv >/dev/null || export PATH="${PYENV_ROOT}/bin:${PATH}"
-# eval "$(pyenv init --path)"
-# eval "$(pyenv init -)"
-
-{{- end }}
diff --git a/dotfiles/dot_shellcheckrc b/dotfiles/dot_shellcheckrc.tmpl
similarity index 91%
rename from dotfiles/dot_shellcheckrc
rename to dotfiles/dot_shellcheckrc.tmpl
index 474549e..9ff59e9 100644
--- a/dotfiles/dot_shellcheckrc
+++ b/dotfiles/dot_shellcheckrc.tmpl
@@ -1,3 +1,4 @@
+{{- if .dev_computer -}}
# Allow opening any 'source'd file, even if not specified as input
external-sources=true
@@ -8,3 +9,4 @@ disable=SC2236 # Allow [ ! -z foo ] instead of suggesting -n
disable=SC2001 # Allow string="string" ; echo "$string" | sed -e "s/ir/ri/"
disable=SC2317 # Allow Command appears to be unreachable
disable=SC2034 # Allow unused variables
+{{ end }}
diff --git a/dotfiles/dot_yamllint.yml b/dotfiles/dot_yamllint.yml.tmpl
similarity index 95%
rename from dotfiles/dot_yamllint.yml
rename to dotfiles/dot_yamllint.yml.tmpl
index ccd4c85..157cdc1 100644
--- a/dotfiles/dot_yamllint.yml
+++ b/dotfiles/dot_yamllint.yml.tmpl
@@ -1,3 +1,4 @@
+{{- if .dev_computer -}}
---
# Find full documentation at: https://yamllint.readthedocs.io/en/stable/index.html
extends: default
@@ -31,3 +32,4 @@ rules:
truthy:
level: error
check-keys: false
+{{ end }}
diff --git a/dotfiles/dot_zshrc.tmpl b/dotfiles/dot_zshrc.tmpl
index 2408aff..af7c088 100644
--- a/dotfiles/dot_zshrc.tmpl
+++ b/dotfiles/dot_zshrc.tmpl
@@ -34,30 +34,46 @@ elif [[ $0 == 'bash' ]]; then
exit
fi
-
unset _myPaths _path
+# Create XDG directories
+#############################################
+if [ ! -d "{{ .xdgCacheDir }}/zsh" ]; then
+ mkdir -p "{{ .xdgCacheDir }}/zsh"
+fi
+if [ ! -d "{{ .xdgDataDir }}/zsh" ]; then
+ mkdir -p "{{ .xdgDataDir }}/zsh"
+fi
+if [ ! -d "{{ .xdgStateDir }}/zsh" ]; then
+ mkdir -p "{{ .xdgStateDir }}/zsh"
+fi
+
# Source completions
-if [ -d "{{ .zsh_dir }}/completions" ]; then
- fpath=({{ .zsh_dir }}/completions $fpath)
+if [ -d "{{ .xdgDataDir }}/zsh/completions" ]; then
+ fpath+={{ .xdgDataDir }}/zsh/completions
fi
-if [ -d "{{ .zsh_dir }}/zsh-completions/src" ]; then
- fpath=({{ .zsh_dir }}/zsh-completions/src $fpath)
+if [ -d "{{ .xdgDataDir }}/zsh/zsh-completions/src" ]; then
+ fpath+={{ .xdgDataDir }}/zsh/zsh-completions/src
fi
+{{ if eq .chezmoi.os "darwin" -}}
+if type brew &>/dev/null; then
+ fpath+="$(brew --prefix)/share/zsh/site-functions"
+fi
+{{- end }}
# Load Completions
#############################################
autoload -Uz compinit
-compinit
+compinit -d "{{ .xdgCacheDir }}/zsh/zcompdump-${ZSH_VERSION}"
# SOURCE Dotfiles
#############################################
# Locations containing files *.bash to be sourced to your environment
configFileLocations=(
- "${HOME}/.shell/sourced"
+ "{{ .xdgConfigDir }}/dotfile_source"
)
for configFileLocation in "${configFileLocations[@]}"; do
@@ -74,9 +90,9 @@ done
unset configFileLocations configFileLocation
-
+# Allow for local configuration not managed by chezmoi
if [ -f "${HOME}/.dotfiles.local" ]; then
source "${HOME}/.dotfiles.local"
fi
-alias sourcea='source ${HOME}/.zshrc' # Source this file to apply changes
+alias sourcea='source ${HOME}/.zshrc' # Source this file to apply changes in the current shell
diff --git a/uv.lock b/uv.lock
index c7dbe78..27630b1 100644
--- a/uv.lock
+++ b/uv.lock
@@ -69,7 +69,7 @@ wheels = [
[[package]]
name = "commitizen"
-version = "3.29.0"
+version = "3.29.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "argcomplete" },
@@ -83,9 +83,9 @@ dependencies = [
{ name = "termcolor" },
{ name = "tomlkit" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/7b/7b/9bd4792a523b4a5b7262d64a2ae9f63bea27469eeecaa0dabf737f40c143/commitizen-3.29.0.tar.gz", hash = "sha256:586b30c1976850d244b836cd4730771097ba362c9c1684d1f8c379176c2ea532", size = 50124 }
+sdist = { url = "https://files.pythonhosted.org/packages/1a/b9/4cedde0d2ce28a56dd8f83b138235e2234ded942a7f7c7fed85bf703bf59/commitizen-3.29.1.tar.gz", hash = "sha256:b9a56190f4f3b20c73600e5ba448c7b81e0e6f87be3092aec1db4de75bf0fa91", size = 50711 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/2f/49/24f735aa25f76d8aff88b3a990a60c5dd3abcb386599f116007c61adf977/commitizen-3.29.0-py3-none-any.whl", hash = "sha256:0c6c479dbee6d19292315c6fca3782cf5c1f7f1638bc4bb5ab4cfb67f4e11894", size = 70783 },
+ { url = "https://files.pythonhosted.org/packages/1a/95/7b55adb50de70dac4ad1ebcf4149ad3384c027d4c17fb9804c28a470ee82/commitizen-3.29.1-py3-none-any.whl", hash = "sha256:83f6563fae6a6262238e4424c55db5743eaa9827d2044dc23719466e4e78a0ca", size = 71761 },
]
[[package]]
@@ -265,15 +265,15 @@ wheels = [
[[package]]
name = "poethepoet"
-version = "0.28.0"
+version = "0.29.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "pastel" },
- { name = "tomli" },
+ { name = "pyyaml" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/8e/bf/9515a49237a7da1d6dd94209cec6ce7ec5f80ab82b3a61c03309b3faac4c/poethepoet-0.28.0.tar.gz", hash = "sha256:5dc3ee036ab0c93e918b5caed628274618b07d788e5cff6c4ae480913cbe009c", size = 57735 }
+sdist = { url = "https://files.pythonhosted.org/packages/dc/7a/7144e47128022146502e179e259b312335bc1465384025eee92d4c7e16b2/poethepoet-0.29.0.tar.gz", hash = "sha256:676842302f2304a86b31ac56398dd672fae8471128d2086896393384dbafc095", size = 58619 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/9a/96/9ef3ead766db60d3f1a2c034c171322736aab6c198c2067181794e49e2d4/poethepoet-0.28.0-py3-none-any.whl", hash = "sha256:db6946ff39a1244235950cd720ee7182107f64126d3dcc64c9a996cc4d755404", size = 74275 },
+ { url = "https://files.pythonhosted.org/packages/b5/7d/871be58cc970ab4c9a541d64b77b7454d150a409c3e48b53fc9eac7a8967/poethepoet-0.29.0-py3-none-any.whl", hash = "sha256:f8dfe55006dcfb5cf31bcb1904e1262e1c642a4502fee3688cbf1bddfe5c7601", size = 76069 },
]
[[package]]
@@ -353,27 +353,27 @@ wheels = [
[[package]]
name = "ruff"
-version = "0.6.6"
+version = "0.6.8"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/70/47/8220a40d1e60042d3a3a1cdf81cbafe674475cf8d60db2e28d0e4e004069/ruff-0.6.6.tar.gz", hash = "sha256:0fc030b6fd14814d69ac0196396f6761921bd20831725c7361e1b8100b818034", size = 3070828 }
+sdist = { url = "https://files.pythonhosted.org/packages/74/f9/4ce3e765a72ab8fe0f80f48508ea38b4196daab3da14d803c21349b2d367/ruff-0.6.8.tar.gz", hash = "sha256:a5bf44b1aa0adaf6d9d20f86162b34f7c593bfedabc51239953e446aefc8ce18", size = 3084543 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/25/34/a34080926faed8ee41a4faf34e5993e367cd414cec543301113b0930f640/ruff-0.6.6-py3-none-linux_armv6l.whl", hash = "sha256:f5bc5398457484fc0374425b43b030e4668ed4d2da8ee7fdda0e926c9f11ccfb", size = 11353484 },
- { url = "https://files.pythonhosted.org/packages/22/ad/9c0b2fae42bfb54b91161b29b6b73bf73bfe7ddc03d5d3d0b4884a49df95/ruff-0.6.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:515a698254c9c47bb84335281a170213b3ee5eb47feebe903e1be10087a167ce", size = 11011998 },
- { url = "https://files.pythonhosted.org/packages/93/69/e406b534cbe2f4b992de0f4a8f9a790e4b93a3f5ca56f151e2665db95625/ruff-0.6.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:6bb1b4995775f1837ab70f26698dd73852bbb82e8f70b175d2713c0354fe9182", size = 10524580 },
- { url = "https://files.pythonhosted.org/packages/26/5b/2e6fd424d78bd942dbf51f4a29512d5e698bfd9cad1245ad50ea679d5aa8/ruff-0.6.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69c546f412dfae8bb9cc4f27f0e45cdd554e42fecbb34f03312b93368e1cd0a6", size = 11652644 },
- { url = "https://files.pythonhosted.org/packages/05/73/e6eab18071ac908135bcc9873c0bde240cffd8d5cfcfef8efa00eae186e4/ruff-0.6.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:59627e97364329e4eae7d86fa7980c10e2b129e2293d25c478ebcb861b3e3fd6", size = 11096545 },
- { url = "https://files.pythonhosted.org/packages/63/64/e8da4e45174067e584f4d1105a160e018d8148158da7275a52f6090bd4bc/ruff-0.6.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:94c3f78c3d32190aafbb6bc5410c96cfed0a88aadb49c3f852bbc2aa9783a7d8", size = 12005773 },
- { url = "https://files.pythonhosted.org/packages/2b/71/57fb76dc5a93cfa2c7d2a848d0c103e493c6553db3cbf30d642da522ee38/ruff-0.6.6-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:704da526c1e137f38c8a067a4a975fe6834b9f8ba7dbc5fd7503d58148851b8f", size = 12758296 },
- { url = "https://files.pythonhosted.org/packages/5a/85/583c969d1b6725aefeef2eb45e88e8ea55c30e017be8e158c322ee8bea56/ruff-0.6.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:efeede5815a24104579a0f6320660536c5ffc1c91ae94f8c65659af915fb9de9", size = 12295191 },
- { url = "https://files.pythonhosted.org/packages/a6/eb/7496d2de40818ea32c0ffb75aff405b9de7dda079bcdd45952eb17216e37/ruff-0.6.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e368aef0cc02ca3593eae2fb8186b81c9c2b3f39acaaa1108eb6b4d04617e61f", size = 13402527 },
- { url = "https://files.pythonhosted.org/packages/71/27/873696e146821535c84ad2a8dc488fe78298cd0fd1a0d24a946991363b50/ruff-0.6.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2653fc3b2a9315bd809725c88dd2446550099728d077a04191febb5ea79a4f79", size = 11872520 },
- { url = "https://files.pythonhosted.org/packages/fd/88/6da14ef37b88c42191246a217c58e1d5f0a83db9748e018e94ad05936466/ruff-0.6.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:bb858cd9ce2d062503337c5b9784d7b583bcf9d1a43c4df6ccb5eab774fbafcb", size = 11683880 },
- { url = "https://files.pythonhosted.org/packages/37/a3/8b9650748f72552e83f11f1d16786a24346128f4460d5b6945ed1f651901/ruff-0.6.6-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:488f8e15c01ea9afb8c0ba35d55bd951f484d0c1b7c5fd746ce3c47ccdedce68", size = 11186349 },
- { url = "https://files.pythonhosted.org/packages/ba/92/49523f745cf2330de1347110048cfd453de9486bef5498360595b6627074/ruff-0.6.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:aefb0bd15f1cfa4c9c227b6120573bb3d6c4ee3b29fb54a5ad58f03859bc43c6", size = 11555881 },
- { url = "https://files.pythonhosted.org/packages/99/cc/cd9ca48cb0b9b1b52710dd2f1e30c347f6cee5c455b53368665d274bfcd4/ruff-0.6.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:a4c0698cc780bcb2c61496cbd56b6a3ac0ad858c966652f7dbf4ceb029252fbe", size = 11956426 },
- { url = "https://files.pythonhosted.org/packages/9d/a2/35c45a784d86daf6dab1510cbb5e572bee33b5c035e6f8e78f510c393acf/ruff-0.6.6-py3-none-win32.whl", hash = "sha256:aadf81ddc8ab5b62da7aae78a91ec933cbae9f8f1663ec0325dae2c364e4ad84", size = 9263539 },
- { url = "https://files.pythonhosted.org/packages/4a/87/c2a6fa6d1ec73a0f8b0713d69a29f8cdc17b251cd0e0ca3a96a78246ddce/ruff-0.6.6-py3-none-win_amd64.whl", hash = "sha256:0adb801771bc1f1b8cf4e0a6fdc30776e7c1894810ff3b344e50da82ef50eeb1", size = 10114810 },
- { url = "https://files.pythonhosted.org/packages/aa/b3/bfe8725d1c38addc86a2b5674ba4e3fd8ab3edb320dcd3f815b227b78b84/ruff-0.6.6-py3-none-win_arm64.whl", hash = "sha256:4b4d32c137bc781c298964dd4e52f07d6f7d57c03eae97a72d97856844aa510a", size = 9485847 },
+ { url = "https://files.pythonhosted.org/packages/db/07/42ee57e8b76ca585297a663a552b4f6d6a99372ca47fdc2276ef72cc0f2f/ruff-0.6.8-py3-none-linux_armv6l.whl", hash = "sha256:77944bca110ff0a43b768f05a529fecd0706aac7bcce36d7f1eeb4cbfca5f0f2", size = 10404327 },
+ { url = "https://files.pythonhosted.org/packages/eb/51/d42571ff8156d65086acb72d39aa64cb24181db53b497d0ed6293f43f07a/ruff-0.6.8-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:27b87e1801e786cd6ede4ada3faa5e254ce774de835e6723fd94551464c56b8c", size = 10018797 },
+ { url = "https://files.pythonhosted.org/packages/c1/d7/fa5514a60b03976af972b67fe345deb0335dc96b9f9a9fa4df9890472427/ruff-0.6.8-py3-none-macosx_11_0_arm64.whl", hash = "sha256:cd48f945da2a6334f1793d7f701725a76ba93bf3d73c36f6b21fb04d5338dcf5", size = 9691303 },
+ { url = "https://files.pythonhosted.org/packages/d6/c4/d812a74976927e51d0782a47539069657ac78535779bfa4d061c4fc8d89d/ruff-0.6.8-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:677e03c00f37c66cea033274295a983c7c546edea5043d0c798833adf4cf4c6f", size = 10719452 },
+ { url = "https://files.pythonhosted.org/packages/ec/b6/aa700c4ae6db9b3ee660e23f3c7db596e2b16a3034b797704fba33ddbc96/ruff-0.6.8-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9f1476236b3eacfacfc0f66aa9e6cd39f2a624cb73ea99189556015f27c0bdeb", size = 10161353 },
+ { url = "https://files.pythonhosted.org/packages/ea/39/0b10075ffcd52ff3a581b9b69eac53579deb230aad300ce8f9d0b58e77bc/ruff-0.6.8-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f5a2f17c7d32991169195d52a04c95b256378bbf0de8cb98478351eb70d526f", size = 10980630 },
+ { url = "https://files.pythonhosted.org/packages/c1/af/9eb9efc98334f62652e2f9318f137b2667187851911fac3b395365a83708/ruff-0.6.8-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:5fd0d4b7b1457c49e435ee1e437900ced9b35cb8dc5178921dfb7d98d65a08d0", size = 11768996 },
+ { url = "https://files.pythonhosted.org/packages/e0/59/8b1369cf7878358952b1c0a1559b4d6b5c824c003d09b0db26d26c9d094f/ruff-0.6.8-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f8034b19b993e9601f2ddf2c517451e17a6ab5cdb1c13fdff50c1442a7171d87", size = 11317469 },
+ { url = "https://files.pythonhosted.org/packages/b9/6d/e252e9b11bbca4114c386ee41ad559d0dac13246201d77ea1223c6fea17f/ruff-0.6.8-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6cfb227b932ba8ef6e56c9f875d987973cd5e35bc5d05f5abf045af78ad8e098", size = 12467185 },
+ { url = "https://files.pythonhosted.org/packages/48/44/7caa223af7d4ea0f0b2bd34acca65a7694a58317714675a2478815ab3f45/ruff-0.6.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef0411eccfc3909269fed47c61ffebdcb84a04504bafa6b6df9b85c27e813b0", size = 10887766 },
+ { url = "https://files.pythonhosted.org/packages/81/ed/394aff3a785f171869158b9d5be61eec9ffb823c3ad5d2bdf2e5f13cb029/ruff-0.6.8-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:007dee844738c3d2e6c24ab5bc7d43c99ba3e1943bd2d95d598582e9c1b27750", size = 10711609 },
+ { url = "https://files.pythonhosted.org/packages/47/31/f31d04c842e54699eab7e3b864538fea26e6c94b71806cd10aa49f13e1c1/ruff-0.6.8-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:ce60058d3cdd8490e5e5471ef086b3f1e90ab872b548814e35930e21d848c9ce", size = 10237621 },
+ { url = "https://files.pythonhosted.org/packages/20/95/a764e84acf11d425f2f23b8b78b4fd715e9c20be4aac157c6414ca859a67/ruff-0.6.8-py3-none-musllinux_1_2_i686.whl", hash = "sha256:1085c455d1b3fdb8021ad534379c60353b81ba079712bce7a900e834859182fa", size = 10558329 },
+ { url = "https://files.pythonhosted.org/packages/2a/76/d4e38846ac9f6dd62dce858a54583911361b5339dcf8f84419241efac93a/ruff-0.6.8-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:70edf6a93b19481affd287d696d9e311388d808671bc209fb8907b46a8c3af44", size = 10954102 },
+ { url = "https://files.pythonhosted.org/packages/e7/36/f18c678da6c69f8d022480f3e8ddce6e4a52e07602c1d212056fbd234f8f/ruff-0.6.8-py3-none-win32.whl", hash = "sha256:792213f7be25316f9b46b854df80a77e0da87ec66691e8f012f887b4a671ab5a", size = 8511090 },
+ { url = "https://files.pythonhosted.org/packages/4c/c4/0ca7d8ffa358b109db7d7d045a1a076fd8e5d9cbeae022242d3c060931da/ruff-0.6.8-py3-none-win_amd64.whl", hash = "sha256:ec0517dc0f37cad14a5319ba7bba6e7e339d03fbf967a6d69b0907d61be7a263", size = 9350079 },
+ { url = "https://files.pythonhosted.org/packages/d9/bd/a8b0c64945a92eaeeb8d0283f27a726a776a1c9d12734d990c5fc7a1278c/ruff-0.6.8-py3-none-win_arm64.whl", hash = "sha256:8d3bb2e3fbb9875172119021a13eed38849e762499e3cfde9588e4b4d70968dc", size = 8669595 },
]
[[package]]
@@ -385,15 +385,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/d9/5f/8c716e47b3a50cbd7c146f45881e11d9414def768b7cd9c5e6650ec2a80a/termcolor-2.4.0-py3-none-any.whl", hash = "sha256:9297c0df9c99445c2412e832e882a7884038a25617c60cea2ad69488d4040d63", size = 7719 },
]
-[[package]]
-name = "tomli"
-version = "2.0.1"
-source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/c0/3f/d7af728f075fb08564c5949a9c95e44352e23dee646869fa104a3b2060a3/tomli-2.0.1.tar.gz", hash = "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f", size = 15164 }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/97/75/10a9ebee3fd790d20926a90a2547f0bf78f371b2f13aa822c759680ca7b9/tomli-2.0.1-py3-none-any.whl", hash = "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc", size = 12757 },
-]
-
[[package]]
name = "tomlkit"
version = "0.13.2"
@@ -414,33 +405,33 @@ wheels = [
[[package]]
name = "typos"
-version = "1.24.6"
+version = "1.25.0"
source = { registry = "https://pypi.org/simple" }
-sdist = { url = "https://files.pythonhosted.org/packages/92/44/0d3f5a153919bc757573fe89200ae77609a440b1b774d04e5f816839ee58/typos-1.24.6.tar.gz", hash = "sha256:0feda2aab59fc1c32cd1f382ea8676b4ef0921086ab172a43e69e5bb19206993", size = 1107518 }
+sdist = { url = "https://files.pythonhosted.org/packages/1f/b1/cfd4c5e3148d1605f8b96fa460c0f2ca8e863024dc08c404a83d5ae7847d/typos-1.25.0.tar.gz", hash = "sha256:feb1b50edcddeacbb2244f971b5dd1cb6fba4eb9734a44f5dacb1676ab49aef1", size = 1112554 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/ad/6b/75bf4f3de20c5edc17919b55b592dffade154ccee7c65512b2f506514082/typos-1.24.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:be576cd0afcbf72bd0fa4129d457b146627c837db189eae7ee83b9fc311dacef", size = 3523299 },
- { url = "https://files.pythonhosted.org/packages/b8/d0/c4f711a402c938c87ea3ee2bc173bb6ecb1a9869b662245eb97c56571f18/typos-1.24.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:49fc10b7d28a6a016678c92a5b3d091ea46a2a7e09d5d1122045e8509378f785", size = 3447219 },
- { url = "https://files.pythonhosted.org/packages/b1/a9/d63c5be9eb7a0105ae6b1257c6bae98595d52198b8c53359f6b93618d9f8/typos-1.24.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfbd7c40af229d680c2b9bc90e846eea70626bde9608f77a57c4e72145a5aa5f", size = 4893439 },
- { url = "https://files.pythonhosted.org/packages/38/56/3aebbf2f950a15343396cbfc4773d4de5dc632867210051516cb4faef83f/typos-1.24.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b8eb05826d6ff1f8747e1c7d9991a10e13b644b2eb7e2855cc79a37ebb1104f1", size = 3532218 },
- { url = "https://files.pythonhosted.org/packages/3b/6f/d8ecddc82501b01a0e956173060c3b216bc9a7ee4c66d5b5c07dd02305c6/typos-1.24.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2abbe9dc208f6da9fddbf9bb281a3944d66188df9b3d43ad6f2f99721713446", size = 4215931 },
- { url = "https://files.pythonhosted.org/packages/86/09/e0cf7945287e4d7a61403237a1df2def419734a6a8e41f06829187f96ee2/typos-1.24.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:7291555c82e81e305ab3e10cb04d0f7d49ccecc1ced322c60f4619f6a14c7225", size = 3892579 },
- { url = "https://files.pythonhosted.org/packages/1f/02/336eb3315e1d53a780d98511b465cd801be9151294bcbb50a603d503b5de/typos-1.24.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:7e27c307c26549a7986f2701f161358df29543e818bf9d6d81f0a81ca5ddeff5", size = 4224637 },
- { url = "https://files.pythonhosted.org/packages/71/b3/fafc840ea619798a7f98765c76eeb13e9227175509172f7a730cbd633396/typos-1.24.6-py3-none-win32.whl", hash = "sha256:cd725db3823c319f7e97b4e8e9fa4af143568b1c7d834f66c584bf86b9691f94", size = 2431615 },
- { url = "https://files.pythonhosted.org/packages/93/ec/2842da6226fe6c3c5a030364f65d99901c06507f6575c5f8250bc3602d9f/typos-1.24.6-py3-none-win_amd64.whl", hash = "sha256:12972e7a8be14fe5e7f0392de0b228a0098748959d1fecc35c4e8eab3efc04c0", size = 2568857 },
+ { url = "https://files.pythonhosted.org/packages/2c/75/965b27d93f568625aa6cab1200fd0960f84edc1e16f07e09b15390601f1b/typos-1.25.0-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:564d3efa4764963a30e28b9716d49dfdd0679c2b75356fc10d89888e6ef489bb", size = 2984804 },
+ { url = "https://files.pythonhosted.org/packages/9f/80/b15ae895843c36f212341236de1559374fd83bbd705340fd7a28b4f25c70/typos-1.25.0-py3-none-macosx_11_0_arm64.whl", hash = "sha256:9a5d0d6770e4e0519c859e6025ac289eecd34a1b6dad7ec8706c537e71e47148", size = 2891222 },
+ { url = "https://files.pythonhosted.org/packages/85/29/044d0c3c31a4763ad1c18e642c151f4955548849eef7e6b681fffae3e7f3/typos-1.25.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f067f00997fba7d2abca030c716c0e1fe2ed7f291d8ed2e46e93f8c940638f99", size = 4882267 },
+ { url = "https://files.pythonhosted.org/packages/8f/ee/9b9fba5c8f2ab218ed62500a95fb0df946f11de33cb38fe49b5cf38dec7b/typos-1.25.0-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:482f53383ab8d9d76e6dec648a2f909c0d71eee1910fcdd552da90452cd867d1", size = 3334849 },
+ { url = "https://files.pythonhosted.org/packages/91/0d/67e3e4323144eca8abe65876ad34e412db22c294ef6cc8016109167d96fc/typos-1.25.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cc080979397f4196485d6e53651ff5966def175fe0ea5034b2e5d3a1b8800947", size = 4052757 },
+ { url = "https://files.pythonhosted.org/packages/95/d7/7e95d3b4666db9d6a28578cafcf0f5b61ea1162f30ed1cb3ab63827afbc3/typos-1.25.0-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:ddb0dd971f83a98a989741e5beb3b839d2794c7abe7cf669b4a62771288871df", size = 3883042 },
+ { url = "https://files.pythonhosted.org/packages/1b/eb/5d7278568e3609a09a25f599174ead8a95d369309af556689d28d466839a/typos-1.25.0-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:17d69b48a3aba8378ba35ed9d7d0e7190972b231e69d025acd96275a1d7b5daa", size = 4066442 },
+ { url = "https://files.pythonhosted.org/packages/28/79/b5984fa96702886ed434e55274d899bb947caad1459a58d5eddf46433619/typos-1.25.0-py3-none-win32.whl", hash = "sha256:d0df91543ff5aef010a8c9aa24a0252b0173b6930979dcb7e7c65fa33ab3381b", size = 2410316 },
+ { url = "https://files.pythonhosted.org/packages/f8/d1/61c729e064a3a48565d88f0b79f4c592100da1609f002638352878913fae/typos-1.25.0-py3-none-win_amd64.whl", hash = "sha256:b561ba341515f33f9d5d9798d0e4195bf10737ec605a4d0d6b0f26980123d2c7", size = 2540105 },
]
[[package]]
name = "virtualenv"
-version = "20.26.5"
+version = "20.26.6"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "distlib" },
{ name = "filelock" },
{ name = "platformdirs" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/bf/4c/66ce54c8736ff164e85117ca36b02a1e14c042a6963f85eeda82664fda4e/virtualenv-20.26.5.tar.gz", hash = "sha256:ce489cac131aa58f4b25e321d6d186171f78e6cb13fafbf32a840cee67733ff4", size = 9371932 }
+sdist = { url = "https://files.pythonhosted.org/packages/3f/40/abc5a766da6b0b2457f819feab8e9203cbeae29327bd241359f866a3da9d/virtualenv-20.26.6.tar.gz", hash = "sha256:280aede09a2a5c317e409a00102e7077c6432c5a38f0ef938e643805a7ad2c48", size = 9372482 }
wheels = [
- { url = "https://files.pythonhosted.org/packages/c6/1d/e1a44fdd6d30829ba21fc58b5d98a67e7aae8f4165f11d091e53aec12560/virtualenv-20.26.5-py3-none-any.whl", hash = "sha256:4f3ac17b81fba3ce3bd6f4ead2749a72da5929c01774948e243db9ba41df4ff6", size = 5999288 },
+ { url = "https://files.pythonhosted.org/packages/59/90/57b8ac0c8a231545adc7698c64c5a36fa7cd8e376c691b9bde877269f2eb/virtualenv-20.26.6-py3-none-any.whl", hash = "sha256:7345cc5b25405607a624d8418154577459c3e0277f5466dd79c49d5e492995f2", size = 5999862 },
]
[[package]]