From 0d3b4a232f67a0fd6082f514177cebfce674657a Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sun, 18 Jan 2026 08:04:08 -0700 Subject: [PATCH 01/17] Replace `vim` with `neovim` in the README --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 58c6084..ce5b5f6 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,8 @@ This is my collection of dotfiles, preserved here for all to see and enjoy. Feel free to copy anything you see here. It would be nice if you added a comment mentioning where you got it. -My environment relies on `zsh`, `vim`, and `git`. +My environment relies on `zsh`, `neovim`, and `git`. + ## Installation From cbebbffee0a7fea43e6d3b73488397e0c4beedc1 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sun, 18 Jan 2026 08:05:33 -0700 Subject: [PATCH 02/17] [zsh] Establish a DOTFILES_HOME variable Look for a config file at ~/.config/dotfiles-home that contains the path to the repo, or check the usual location of ~/.dotfiles. Do this in a shell function in .zshenv so it's repeatable. This needs to be done very early in the init process. --- zsh/func/init-env-tilde-paths | 2 +- zshenv | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/zsh/func/init-env-tilde-paths b/zsh/func/init-env-tilde-paths index d6af187..70acbd3 100644 --- a/zsh/func/init-env-tilde-paths +++ b/zsh/func/init-env-tilde-paths @@ -16,7 +16,7 @@ function init-env-tilde-paths break done - export df=~/.dotfiles + export df="$DOTFILES_HOME" } init-env-tilde-paths "$@" diff --git a/zshenv b/zshenv index ead3559..a322249 100644 --- a/zshenv +++ b/zshenv @@ -5,6 +5,22 @@ unsetopt GLOBAL_RCS export SYS=`uname -s | tr A-Z a-z` +function init-env-dotfiles-path +{ + local dotfiles_config="$HOME/.config/dotfiles-home" + if [[ -f "$dotfiles_config" ]]; then + export DOTFILES_HOME=$(cat "$dotfiles_config") + return + fi + + if [[ -f "$HOME/.dotfiles/setup.sh" ]]; then + export DOTFILES_HOME="$HOME/.dotfiles" + return + fi + + echo "WARNING: Couldn't find path to dotfiles" 1>&2 +} + function init-env-fpath { local -r fpath_candidates=( \ @@ -23,6 +39,7 @@ function init-env-fpath done } +init-env-dotfiles-path init-env-fpath autoload -Uz do_init_functions From 4f06d80da6637462cd2ad4c43587eb9390be1340 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sun, 18 Jan 2026 08:08:00 -0700 Subject: [PATCH 03/17] [zsh] Use DOTFILES_HOME to find zsh functions inside the repo Zsh can find shell functions inside the repo instead using a symlink in $HOME. --- zshenv | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zshenv b/zshenv index a322249..5d6c1cb 100644 --- a/zshenv +++ b/zshenv @@ -24,8 +24,8 @@ function init-env-dotfiles-path function init-env-fpath { local -r fpath_candidates=( \ - "$HOME/.zsh/${SYS}-functions" \ - "$HOME/.zsh/func" \ + "$DOTFILES_HOME/zsh/${SYS}-functions" \ + "$DOTFILES_HOME/zsh/func" \ ) # Process the array in reverse order (`Oa` means "descending index order", From 91da2fc58383f5be52029ff5b117828eaf764a2a Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sun, 18 Jan 2026 08:40:01 -0700 Subject: [PATCH 04/17] [zsh] A new env init function to set XDG path variables --- zsh/func/init-env-default-xdg-vars | 34 ++++++++++++++++++++++++++++++ zshenv | 1 + 2 files changed, 35 insertions(+) create mode 100644 zsh/func/init-env-default-xdg-vars diff --git a/zsh/func/init-env-default-xdg-vars b/zsh/func/init-env-default-xdg-vars new file mode 100644 index 0000000..ed5bb66 --- /dev/null +++ b/zsh/func/init-env-default-xdg-vars @@ -0,0 +1,34 @@ +#!/usr/bin/env zsh +# Eryn Wells + +# See https://specifications.freedesktop.org/basedir/latest/ for definitions of +# these paths. + + +function init-env-default-xdg-vars +{ + zmodload zsh/zutil + + local -a opt_create + zparseopts -a opt_args -D -E -F - \ + {c,-create,-no-create}=opt_create + + export \ + XDG_BIN_HOME=${XDG_BIN_HOME:-$HOME/.local/bin} \ + XDG_CACHE_HOME=${XDG_CACHE_HOME:-$HOME/.cache} \ + XDG_CONFIG_HOME=${XDG_CACHE_HOME:-$HOME/.config} \ + XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share} \ + XDG_STATE_HOME=${XDG_DATA_HOME:-$HOME/.local/state} + + if [[ $opt_create[(I)--no-create] -ne 0 ]]; then + mkdir -p -m 0700 \ + $XDG_BIN_HOME \ + $XDG_CACHE_HOME \ + $XDG_CONFIG_HOME \ + $XDG_DATA_HOME \ + $XDG_STATE_HOME + fi +} + + +init-env-default-xdg-vars "$@" diff --git a/zshenv b/zshenv index 5d6c1cb..bea316a 100644 --- a/zshenv +++ b/zshenv @@ -46,6 +46,7 @@ autoload -Uz do_init_functions typeset -a zsh_init_env_functions=( \ init-env \ + init-env-default-xdg-vars \ init-env-path \ init-env-tilde-paths \ init-env-python \ From 7c08c5131f028910dde93c96d5fa2ab74114749f Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sun, 18 Jan 2026 08:43:02 -0700 Subject: [PATCH 05/17] [zsh] Move func/ directory to zsh/functions --- zsh/{func => functions}/append_to_path | 0 zsh/{func => functions}/binary_exists | 0 zsh/{func => functions}/bool | 0 zsh/{func => functions}/connect_ssh_agent | 0 zsh/{func => functions}/darwin-icloud-drive-path | 0 zsh/{func => functions}/darwin/darwin-hardware-model | 0 zsh/{func => functions}/darwin/darwin-os-build | 0 zsh/{func => functions}/darwin/darwin-os-version | 0 zsh/{func => functions}/darwin_configure_screenshots_directory | 0 zsh/{func => functions}/darwin_init_once | 0 zsh/{func => functions}/do_init_functions | 0 zsh/{func => functions}/finder | 0 zsh/{func => functions}/g | 0 zsh/{func => functions}/homebrew-prefix | 0 zsh/{func => functions}/import_cacert | 0 zsh/{func => functions}/init-env | 0 zsh/{func => functions}/init-env-darwin | 0 zsh/{func => functions}/init-env-default-xdg-vars | 0 zsh/{func => functions}/init-env-path | 0 zsh/{func => functions}/init-env-playdate | 0 zsh/{func => functions}/init-env-python | 0 zsh/{func => functions}/init-env-tilde-paths | 0 zsh/{func => functions}/init-env-vi | 0 zsh/{func => functions}/init-rc-aliases | 0 zsh/{func => functions}/init-rc-app-environments | 0 zsh/{func => functions}/init-rc-completion | 0 zsh/{func => functions}/init-rc-darwin | 0 zsh/{func => functions}/init-rc-linux | 0 zsh/{func => functions}/init-rc-ls | 0 zsh/{func => functions}/init-rc-prompt | 0 zsh/{func => functions}/init-rc-zle | 0 zsh/{func => functions}/init-rc-zsh-history | 0 zsh/{func => functions}/init-rc-zsh-options | 0 zsh/{func => functions}/init_profile_darwin | 0 zsh/{func => functions}/init_profile_darwin_say_hello | 0 zsh/{func => functions}/init_rc_fpath_darwin | 0 zsh/{func => functions}/init_xcode | 0 zsh/{func => functions}/init_zsh_functions | 0 zsh/{func => functions}/list_tmux_sessions | 0 zsh/{func => functions}/load_module | 0 zsh/{func => functions}/neovim_init_once | 0 zsh/{func => functions}/nethack | 0 zsh/{func => functions}/open-xcode | 0 zsh/{func => functions}/prepend_to_path | 0 zsh/{func => functions}/prompt_colorize | 0 zsh/{func => functions}/prompt_loquacious_setup | 0 zsh/{func => functions}/refresh_system_tags | 0 zsh/{func => functions}/setup-cpython | 0 zsh/{func => functions}/setup_android | 0 zsh/{func => functions}/solarized | 0 zsh/{func => functions}/up | 0 zsh/{func => functions}/update-path | 0 zshenv | 2 +- 53 files changed, 1 insertion(+), 1 deletion(-) rename zsh/{func => functions}/append_to_path (100%) rename zsh/{func => functions}/binary_exists (100%) rename zsh/{func => functions}/bool (100%) rename zsh/{func => functions}/connect_ssh_agent (100%) rename zsh/{func => functions}/darwin-icloud-drive-path (100%) rename zsh/{func => functions}/darwin/darwin-hardware-model (100%) rename zsh/{func => functions}/darwin/darwin-os-build (100%) rename zsh/{func => functions}/darwin/darwin-os-version (100%) rename zsh/{func => functions}/darwin_configure_screenshots_directory (100%) rename zsh/{func => functions}/darwin_init_once (100%) rename zsh/{func => functions}/do_init_functions (100%) rename zsh/{func => functions}/finder (100%) rename zsh/{func => functions}/g (100%) rename zsh/{func => functions}/homebrew-prefix (100%) rename zsh/{func => functions}/import_cacert (100%) rename zsh/{func => functions}/init-env (100%) rename zsh/{func => functions}/init-env-darwin (100%) rename zsh/{func => functions}/init-env-default-xdg-vars (100%) rename zsh/{func => functions}/init-env-path (100%) rename zsh/{func => functions}/init-env-playdate (100%) rename zsh/{func => functions}/init-env-python (100%) rename zsh/{func => functions}/init-env-tilde-paths (100%) rename zsh/{func => functions}/init-env-vi (100%) rename zsh/{func => functions}/init-rc-aliases (100%) rename zsh/{func => functions}/init-rc-app-environments (100%) rename zsh/{func => functions}/init-rc-completion (100%) rename zsh/{func => functions}/init-rc-darwin (100%) rename zsh/{func => functions}/init-rc-linux (100%) rename zsh/{func => functions}/init-rc-ls (100%) rename zsh/{func => functions}/init-rc-prompt (100%) rename zsh/{func => functions}/init-rc-zle (100%) rename zsh/{func => functions}/init-rc-zsh-history (100%) rename zsh/{func => functions}/init-rc-zsh-options (100%) rename zsh/{func => functions}/init_profile_darwin (100%) rename zsh/{func => functions}/init_profile_darwin_say_hello (100%) rename zsh/{func => functions}/init_rc_fpath_darwin (100%) rename zsh/{func => functions}/init_xcode (100%) rename zsh/{func => functions}/init_zsh_functions (100%) rename zsh/{func => functions}/list_tmux_sessions (100%) rename zsh/{func => functions}/load_module (100%) rename zsh/{func => functions}/neovim_init_once (100%) rename zsh/{func => functions}/nethack (100%) rename zsh/{func => functions}/open-xcode (100%) rename zsh/{func => functions}/prepend_to_path (100%) rename zsh/{func => functions}/prompt_colorize (100%) rename zsh/{func => functions}/prompt_loquacious_setup (100%) rename zsh/{func => functions}/refresh_system_tags (100%) rename zsh/{func => functions}/setup-cpython (100%) rename zsh/{func => functions}/setup_android (100%) rename zsh/{func => functions}/solarized (100%) rename zsh/{func => functions}/up (100%) rename zsh/{func => functions}/update-path (100%) diff --git a/zsh/func/append_to_path b/zsh/functions/append_to_path similarity index 100% rename from zsh/func/append_to_path rename to zsh/functions/append_to_path diff --git a/zsh/func/binary_exists b/zsh/functions/binary_exists similarity index 100% rename from zsh/func/binary_exists rename to zsh/functions/binary_exists diff --git a/zsh/func/bool b/zsh/functions/bool similarity index 100% rename from zsh/func/bool rename to zsh/functions/bool diff --git a/zsh/func/connect_ssh_agent b/zsh/functions/connect_ssh_agent similarity index 100% rename from zsh/func/connect_ssh_agent rename to zsh/functions/connect_ssh_agent diff --git a/zsh/func/darwin-icloud-drive-path b/zsh/functions/darwin-icloud-drive-path similarity index 100% rename from zsh/func/darwin-icloud-drive-path rename to zsh/functions/darwin-icloud-drive-path diff --git a/zsh/func/darwin/darwin-hardware-model b/zsh/functions/darwin/darwin-hardware-model similarity index 100% rename from zsh/func/darwin/darwin-hardware-model rename to zsh/functions/darwin/darwin-hardware-model diff --git a/zsh/func/darwin/darwin-os-build b/zsh/functions/darwin/darwin-os-build similarity index 100% rename from zsh/func/darwin/darwin-os-build rename to zsh/functions/darwin/darwin-os-build diff --git a/zsh/func/darwin/darwin-os-version b/zsh/functions/darwin/darwin-os-version similarity index 100% rename from zsh/func/darwin/darwin-os-version rename to zsh/functions/darwin/darwin-os-version diff --git a/zsh/func/darwin_configure_screenshots_directory b/zsh/functions/darwin_configure_screenshots_directory similarity index 100% rename from zsh/func/darwin_configure_screenshots_directory rename to zsh/functions/darwin_configure_screenshots_directory diff --git a/zsh/func/darwin_init_once b/zsh/functions/darwin_init_once similarity index 100% rename from zsh/func/darwin_init_once rename to zsh/functions/darwin_init_once diff --git a/zsh/func/do_init_functions b/zsh/functions/do_init_functions similarity index 100% rename from zsh/func/do_init_functions rename to zsh/functions/do_init_functions diff --git a/zsh/func/finder b/zsh/functions/finder similarity index 100% rename from zsh/func/finder rename to zsh/functions/finder diff --git a/zsh/func/g b/zsh/functions/g similarity index 100% rename from zsh/func/g rename to zsh/functions/g diff --git a/zsh/func/homebrew-prefix b/zsh/functions/homebrew-prefix similarity index 100% rename from zsh/func/homebrew-prefix rename to zsh/functions/homebrew-prefix diff --git a/zsh/func/import_cacert b/zsh/functions/import_cacert similarity index 100% rename from zsh/func/import_cacert rename to zsh/functions/import_cacert diff --git a/zsh/func/init-env b/zsh/functions/init-env similarity index 100% rename from zsh/func/init-env rename to zsh/functions/init-env diff --git a/zsh/func/init-env-darwin b/zsh/functions/init-env-darwin similarity index 100% rename from zsh/func/init-env-darwin rename to zsh/functions/init-env-darwin diff --git a/zsh/func/init-env-default-xdg-vars b/zsh/functions/init-env-default-xdg-vars similarity index 100% rename from zsh/func/init-env-default-xdg-vars rename to zsh/functions/init-env-default-xdg-vars diff --git a/zsh/func/init-env-path b/zsh/functions/init-env-path similarity index 100% rename from zsh/func/init-env-path rename to zsh/functions/init-env-path diff --git a/zsh/func/init-env-playdate b/zsh/functions/init-env-playdate similarity index 100% rename from zsh/func/init-env-playdate rename to zsh/functions/init-env-playdate diff --git a/zsh/func/init-env-python b/zsh/functions/init-env-python similarity index 100% rename from zsh/func/init-env-python rename to zsh/functions/init-env-python diff --git a/zsh/func/init-env-tilde-paths b/zsh/functions/init-env-tilde-paths similarity index 100% rename from zsh/func/init-env-tilde-paths rename to zsh/functions/init-env-tilde-paths diff --git a/zsh/func/init-env-vi b/zsh/functions/init-env-vi similarity index 100% rename from zsh/func/init-env-vi rename to zsh/functions/init-env-vi diff --git a/zsh/func/init-rc-aliases b/zsh/functions/init-rc-aliases similarity index 100% rename from zsh/func/init-rc-aliases rename to zsh/functions/init-rc-aliases diff --git a/zsh/func/init-rc-app-environments b/zsh/functions/init-rc-app-environments similarity index 100% rename from zsh/func/init-rc-app-environments rename to zsh/functions/init-rc-app-environments diff --git a/zsh/func/init-rc-completion b/zsh/functions/init-rc-completion similarity index 100% rename from zsh/func/init-rc-completion rename to zsh/functions/init-rc-completion diff --git a/zsh/func/init-rc-darwin b/zsh/functions/init-rc-darwin similarity index 100% rename from zsh/func/init-rc-darwin rename to zsh/functions/init-rc-darwin diff --git a/zsh/func/init-rc-linux b/zsh/functions/init-rc-linux similarity index 100% rename from zsh/func/init-rc-linux rename to zsh/functions/init-rc-linux diff --git a/zsh/func/init-rc-ls b/zsh/functions/init-rc-ls similarity index 100% rename from zsh/func/init-rc-ls rename to zsh/functions/init-rc-ls diff --git a/zsh/func/init-rc-prompt b/zsh/functions/init-rc-prompt similarity index 100% rename from zsh/func/init-rc-prompt rename to zsh/functions/init-rc-prompt diff --git a/zsh/func/init-rc-zle b/zsh/functions/init-rc-zle similarity index 100% rename from zsh/func/init-rc-zle rename to zsh/functions/init-rc-zle diff --git a/zsh/func/init-rc-zsh-history b/zsh/functions/init-rc-zsh-history similarity index 100% rename from zsh/func/init-rc-zsh-history rename to zsh/functions/init-rc-zsh-history diff --git a/zsh/func/init-rc-zsh-options b/zsh/functions/init-rc-zsh-options similarity index 100% rename from zsh/func/init-rc-zsh-options rename to zsh/functions/init-rc-zsh-options diff --git a/zsh/func/init_profile_darwin b/zsh/functions/init_profile_darwin similarity index 100% rename from zsh/func/init_profile_darwin rename to zsh/functions/init_profile_darwin diff --git a/zsh/func/init_profile_darwin_say_hello b/zsh/functions/init_profile_darwin_say_hello similarity index 100% rename from zsh/func/init_profile_darwin_say_hello rename to zsh/functions/init_profile_darwin_say_hello diff --git a/zsh/func/init_rc_fpath_darwin b/zsh/functions/init_rc_fpath_darwin similarity index 100% rename from zsh/func/init_rc_fpath_darwin rename to zsh/functions/init_rc_fpath_darwin diff --git a/zsh/func/init_xcode b/zsh/functions/init_xcode similarity index 100% rename from zsh/func/init_xcode rename to zsh/functions/init_xcode diff --git a/zsh/func/init_zsh_functions b/zsh/functions/init_zsh_functions similarity index 100% rename from zsh/func/init_zsh_functions rename to zsh/functions/init_zsh_functions diff --git a/zsh/func/list_tmux_sessions b/zsh/functions/list_tmux_sessions similarity index 100% rename from zsh/func/list_tmux_sessions rename to zsh/functions/list_tmux_sessions diff --git a/zsh/func/load_module b/zsh/functions/load_module similarity index 100% rename from zsh/func/load_module rename to zsh/functions/load_module diff --git a/zsh/func/neovim_init_once b/zsh/functions/neovim_init_once similarity index 100% rename from zsh/func/neovim_init_once rename to zsh/functions/neovim_init_once diff --git a/zsh/func/nethack b/zsh/functions/nethack similarity index 100% rename from zsh/func/nethack rename to zsh/functions/nethack diff --git a/zsh/func/open-xcode b/zsh/functions/open-xcode similarity index 100% rename from zsh/func/open-xcode rename to zsh/functions/open-xcode diff --git a/zsh/func/prepend_to_path b/zsh/functions/prepend_to_path similarity index 100% rename from zsh/func/prepend_to_path rename to zsh/functions/prepend_to_path diff --git a/zsh/func/prompt_colorize b/zsh/functions/prompt_colorize similarity index 100% rename from zsh/func/prompt_colorize rename to zsh/functions/prompt_colorize diff --git a/zsh/func/prompt_loquacious_setup b/zsh/functions/prompt_loquacious_setup similarity index 100% rename from zsh/func/prompt_loquacious_setup rename to zsh/functions/prompt_loquacious_setup diff --git a/zsh/func/refresh_system_tags b/zsh/functions/refresh_system_tags similarity index 100% rename from zsh/func/refresh_system_tags rename to zsh/functions/refresh_system_tags diff --git a/zsh/func/setup-cpython b/zsh/functions/setup-cpython similarity index 100% rename from zsh/func/setup-cpython rename to zsh/functions/setup-cpython diff --git a/zsh/func/setup_android b/zsh/functions/setup_android similarity index 100% rename from zsh/func/setup_android rename to zsh/functions/setup_android diff --git a/zsh/func/solarized b/zsh/functions/solarized similarity index 100% rename from zsh/func/solarized rename to zsh/functions/solarized diff --git a/zsh/func/up b/zsh/functions/up similarity index 100% rename from zsh/func/up rename to zsh/functions/up diff --git a/zsh/func/update-path b/zsh/functions/update-path similarity index 100% rename from zsh/func/update-path rename to zsh/functions/update-path diff --git a/zshenv b/zshenv index bea316a..fd60ea6 100644 --- a/zshenv +++ b/zshenv @@ -25,7 +25,7 @@ function init-env-fpath { local -r fpath_candidates=( \ "$DOTFILES_HOME/zsh/${SYS}-functions" \ - "$DOTFILES_HOME/zsh/func" \ + "$DOTFILES_HOME/zsh/functions" \ ) # Process the array in reverse order (`Oa` means "descending index order", From 1f088a1e8ad2744d2178cb3bf61980368b60b8a1 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Mon, 19 Jan 2026 11:29:34 -0700 Subject: [PATCH 06/17] [zsh] Remove init_zsh_functions -- no longer used --- zsh/functions/init_zsh_functions | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 zsh/functions/init_zsh_functions diff --git a/zsh/functions/init_zsh_functions b/zsh/functions/init_zsh_functions deleted file mode 100644 index 5f53b8b..0000000 --- a/zsh/functions/init_zsh_functions +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env zsh -# Eryn Wells - -autoload load_module - -local myfpath="$HOME/.zsh/func" - -for func in $myfpath/*; do - [[ ! -e "$func" || -d "$func" ]] && continue - - local functionName=`basename $func` - [[ "$functionName" =~ "prompt_*" ]] && continue - [[ "$functionName" =~ "init_*" ]] && continue - - autoload -Uz $functionName -done From d5f7b3e04cdbf820c1139a1492e78753b3e4dd8b Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Mon, 19 Jan 2026 18:04:17 -0800 Subject: [PATCH 07/17] [git] Remove excludesfile directive This setting has always been the default. Remove it so git just uses its internal default. --- gitconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/gitconfig b/gitconfig index 2294436..0c878ca 100644 --- a/gitconfig +++ b/gitconfig @@ -4,7 +4,6 @@ [core] editor = nvim quotepath = false - excludesfile = ~/.gitignore [color] ui = auto [alias] From e45c1694af34bfb4b3b90606134bdba7e73fefea Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Wed, 21 Jan 2026 08:23:44 -0800 Subject: [PATCH 08/17] [git] Move gitconfig and gitignore to git/ --- gitconfig => git/config | 0 gitignore => git/ignore | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename gitconfig => git/config (100%) rename gitignore => git/ignore (100%) diff --git a/gitconfig b/git/config similarity index 100% rename from gitconfig rename to git/config diff --git a/gitignore b/git/ignore similarity index 100% rename from gitignore rename to git/ignore From 5b567ad2ad155d38bc7b9d62ab4babfcbc682ea9 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sat, 24 Jan 2026 15:25:05 -0800 Subject: [PATCH 09/17] [nvim] Move neovim config to /nvim --- {config/nvim => nvim}/UltiSnips/lua.snippets | 0 {config/nvim => nvim}/UltiSnips/python.snippets | 0 {config/nvim => nvim}/UltiSnips/rust.snippets | 0 {config/nvim => nvim}/after/ftplugin/css.lua | 0 {config/nvim => nvim}/after/ftplugin/gitcommit.vim | 0 {config/nvim => nvim}/after/ftplugin/gohtmltmpl.lua | 0 {config/nvim => nvim}/after/ftplugin/html.lua | 0 {config/nvim => nvim}/after/ftplugin/lua.lua | 0 {config/nvim => nvim}/after/ftplugin/python.lua | 0 {config/nvim => nvim}/after/ftplugin/rust.lua | 0 {config/nvim => nvim}/after/ftplugin/text.vim | 0 {config/nvim => nvim}/after/ftplugin/zsh.lua | 0 {config/nvim => nvim}/after/plugin/gitgutter.lua | 0 {config/nvim => nvim}/after/plugin/treesitter.lua | 0 {config/nvim => nvim}/after/syntax/css.vim | 0 {config/nvim => nvim}/ftdetect/gohtmltmpl.lua | 0 {config/nvim => nvim}/ftdetect/make.lua | 0 {config/nvim => nvim}/ftdetect/zsh.lua | 0 {config/nvim => nvim}/init.lua | 0 {config/nvim => nvim}/lua/autocommands.lua | 0 {config/nvim => nvim}/lua/colors.lua | 0 {config/nvim => nvim}/lua/configuration.lua | 0 {config/nvim => nvim}/lua/diagnostics.lua | 0 {config/nvim => nvim}/lua/gui.lua | 0 {config/nvim => nvim}/lua/keys.lua | 0 {config/nvim => nvim}/lua/lsp.lua | 0 {config/nvim => nvim}/lua/treesitter.lua | 0 {config/nvim => nvim}/syntax/gocsstmpl.vim | 0 28 files changed, 0 insertions(+), 0 deletions(-) rename {config/nvim => nvim}/UltiSnips/lua.snippets (100%) rename {config/nvim => nvim}/UltiSnips/python.snippets (100%) rename {config/nvim => nvim}/UltiSnips/rust.snippets (100%) rename {config/nvim => nvim}/after/ftplugin/css.lua (100%) rename {config/nvim => nvim}/after/ftplugin/gitcommit.vim (100%) rename {config/nvim => nvim}/after/ftplugin/gohtmltmpl.lua (100%) rename {config/nvim => nvim}/after/ftplugin/html.lua (100%) rename {config/nvim => nvim}/after/ftplugin/lua.lua (100%) rename {config/nvim => nvim}/after/ftplugin/python.lua (100%) rename {config/nvim => nvim}/after/ftplugin/rust.lua (100%) rename {config/nvim => nvim}/after/ftplugin/text.vim (100%) rename {config/nvim => nvim}/after/ftplugin/zsh.lua (100%) rename {config/nvim => nvim}/after/plugin/gitgutter.lua (100%) rename {config/nvim => nvim}/after/plugin/treesitter.lua (100%) rename {config/nvim => nvim}/after/syntax/css.vim (100%) rename {config/nvim => nvim}/ftdetect/gohtmltmpl.lua (100%) rename {config/nvim => nvim}/ftdetect/make.lua (100%) rename {config/nvim => nvim}/ftdetect/zsh.lua (100%) rename {config/nvim => nvim}/init.lua (100%) rename {config/nvim => nvim}/lua/autocommands.lua (100%) rename {config/nvim => nvim}/lua/colors.lua (100%) rename {config/nvim => nvim}/lua/configuration.lua (100%) rename {config/nvim => nvim}/lua/diagnostics.lua (100%) rename {config/nvim => nvim}/lua/gui.lua (100%) rename {config/nvim => nvim}/lua/keys.lua (100%) rename {config/nvim => nvim}/lua/lsp.lua (100%) rename {config/nvim => nvim}/lua/treesitter.lua (100%) rename {config/nvim => nvim}/syntax/gocsstmpl.vim (100%) diff --git a/config/nvim/UltiSnips/lua.snippets b/nvim/UltiSnips/lua.snippets similarity index 100% rename from config/nvim/UltiSnips/lua.snippets rename to nvim/UltiSnips/lua.snippets diff --git a/config/nvim/UltiSnips/python.snippets b/nvim/UltiSnips/python.snippets similarity index 100% rename from config/nvim/UltiSnips/python.snippets rename to nvim/UltiSnips/python.snippets diff --git a/config/nvim/UltiSnips/rust.snippets b/nvim/UltiSnips/rust.snippets similarity index 100% rename from config/nvim/UltiSnips/rust.snippets rename to nvim/UltiSnips/rust.snippets diff --git a/config/nvim/after/ftplugin/css.lua b/nvim/after/ftplugin/css.lua similarity index 100% rename from config/nvim/after/ftplugin/css.lua rename to nvim/after/ftplugin/css.lua diff --git a/config/nvim/after/ftplugin/gitcommit.vim b/nvim/after/ftplugin/gitcommit.vim similarity index 100% rename from config/nvim/after/ftplugin/gitcommit.vim rename to nvim/after/ftplugin/gitcommit.vim diff --git a/config/nvim/after/ftplugin/gohtmltmpl.lua b/nvim/after/ftplugin/gohtmltmpl.lua similarity index 100% rename from config/nvim/after/ftplugin/gohtmltmpl.lua rename to nvim/after/ftplugin/gohtmltmpl.lua diff --git a/config/nvim/after/ftplugin/html.lua b/nvim/after/ftplugin/html.lua similarity index 100% rename from config/nvim/after/ftplugin/html.lua rename to nvim/after/ftplugin/html.lua diff --git a/config/nvim/after/ftplugin/lua.lua b/nvim/after/ftplugin/lua.lua similarity index 100% rename from config/nvim/after/ftplugin/lua.lua rename to nvim/after/ftplugin/lua.lua diff --git a/config/nvim/after/ftplugin/python.lua b/nvim/after/ftplugin/python.lua similarity index 100% rename from config/nvim/after/ftplugin/python.lua rename to nvim/after/ftplugin/python.lua diff --git a/config/nvim/after/ftplugin/rust.lua b/nvim/after/ftplugin/rust.lua similarity index 100% rename from config/nvim/after/ftplugin/rust.lua rename to nvim/after/ftplugin/rust.lua diff --git a/config/nvim/after/ftplugin/text.vim b/nvim/after/ftplugin/text.vim similarity index 100% rename from config/nvim/after/ftplugin/text.vim rename to nvim/after/ftplugin/text.vim diff --git a/config/nvim/after/ftplugin/zsh.lua b/nvim/after/ftplugin/zsh.lua similarity index 100% rename from config/nvim/after/ftplugin/zsh.lua rename to nvim/after/ftplugin/zsh.lua diff --git a/config/nvim/after/plugin/gitgutter.lua b/nvim/after/plugin/gitgutter.lua similarity index 100% rename from config/nvim/after/plugin/gitgutter.lua rename to nvim/after/plugin/gitgutter.lua diff --git a/config/nvim/after/plugin/treesitter.lua b/nvim/after/plugin/treesitter.lua similarity index 100% rename from config/nvim/after/plugin/treesitter.lua rename to nvim/after/plugin/treesitter.lua diff --git a/config/nvim/after/syntax/css.vim b/nvim/after/syntax/css.vim similarity index 100% rename from config/nvim/after/syntax/css.vim rename to nvim/after/syntax/css.vim diff --git a/config/nvim/ftdetect/gohtmltmpl.lua b/nvim/ftdetect/gohtmltmpl.lua similarity index 100% rename from config/nvim/ftdetect/gohtmltmpl.lua rename to nvim/ftdetect/gohtmltmpl.lua diff --git a/config/nvim/ftdetect/make.lua b/nvim/ftdetect/make.lua similarity index 100% rename from config/nvim/ftdetect/make.lua rename to nvim/ftdetect/make.lua diff --git a/config/nvim/ftdetect/zsh.lua b/nvim/ftdetect/zsh.lua similarity index 100% rename from config/nvim/ftdetect/zsh.lua rename to nvim/ftdetect/zsh.lua diff --git a/config/nvim/init.lua b/nvim/init.lua similarity index 100% rename from config/nvim/init.lua rename to nvim/init.lua diff --git a/config/nvim/lua/autocommands.lua b/nvim/lua/autocommands.lua similarity index 100% rename from config/nvim/lua/autocommands.lua rename to nvim/lua/autocommands.lua diff --git a/config/nvim/lua/colors.lua b/nvim/lua/colors.lua similarity index 100% rename from config/nvim/lua/colors.lua rename to nvim/lua/colors.lua diff --git a/config/nvim/lua/configuration.lua b/nvim/lua/configuration.lua similarity index 100% rename from config/nvim/lua/configuration.lua rename to nvim/lua/configuration.lua diff --git a/config/nvim/lua/diagnostics.lua b/nvim/lua/diagnostics.lua similarity index 100% rename from config/nvim/lua/diagnostics.lua rename to nvim/lua/diagnostics.lua diff --git a/config/nvim/lua/gui.lua b/nvim/lua/gui.lua similarity index 100% rename from config/nvim/lua/gui.lua rename to nvim/lua/gui.lua diff --git a/config/nvim/lua/keys.lua b/nvim/lua/keys.lua similarity index 100% rename from config/nvim/lua/keys.lua rename to nvim/lua/keys.lua diff --git a/config/nvim/lua/lsp.lua b/nvim/lua/lsp.lua similarity index 100% rename from config/nvim/lua/lsp.lua rename to nvim/lua/lsp.lua diff --git a/config/nvim/lua/treesitter.lua b/nvim/lua/treesitter.lua similarity index 100% rename from config/nvim/lua/treesitter.lua rename to nvim/lua/treesitter.lua diff --git a/config/nvim/syntax/gocsstmpl.vim b/nvim/syntax/gocsstmpl.vim similarity index 100% rename from config/nvim/syntax/gocsstmpl.vim rename to nvim/syntax/gocsstmpl.vim From f462cf28a7c65abd4e560a179aec900952117c71 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sat, 24 Jan 2026 16:22:22 -0800 Subject: [PATCH 10/17] [zsh] Move ZSH init files to zsh/ --- zprofile => zsh/zprofile | 0 zshenv => zsh/zshenv | 0 zshrc => zsh/zshrc | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename zprofile => zsh/zprofile (100%) rename zshenv => zsh/zshenv (100%) rename zshrc => zsh/zshrc (100%) diff --git a/zprofile b/zsh/zprofile similarity index 100% rename from zprofile rename to zsh/zprofile diff --git a/zshenv b/zsh/zshenv similarity index 100% rename from zshenv rename to zsh/zshenv diff --git a/zshrc b/zsh/zshrc similarity index 100% rename from zshrc rename to zsh/zshrc From dfd810e0b0240900c27be328d4b47bb034b6e8a2 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sun, 25 Jan 2026 16:23:56 -0800 Subject: [PATCH 11/17] [emacs] Move emacs config to emacs/init.el This file is symlinked to ~/.config/emacs --- emacs => emacs/init.el | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename emacs => emacs/init.el (100%) diff --git a/emacs b/emacs/init.el similarity index 100% rename from emacs rename to emacs/init.el From 70712ad4839b751ebcb7aed18b051649c7620ebf Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sun, 25 Jan 2026 16:24:22 -0800 Subject: [PATCH 12/17] [tmux] Move config to tmux/ --- {config/tmux => tmux}/tmux.conf | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {config/tmux => tmux}/tmux.conf (100%) diff --git a/config/tmux/tmux.conf b/tmux/tmux.conf similarity index 100% rename from config/tmux/tmux.conf rename to tmux/tmux.conf From a11355afc4ac7a02ffb8ccc0c9818458b43a8b39 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sun, 25 Jan 2026 17:44:09 -0800 Subject: [PATCH 13/17] [mutt] Move muttrc to mutt/ --- muttrc => mutt/muttrc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) rename muttrc => mutt/muttrc (90%) diff --git a/muttrc b/mutt/muttrc similarity index 90% rename from muttrc rename to mutt/muttrc index 6ec822c..14e04f3 100644 --- a/muttrc +++ b/mutt/muttrc @@ -19,9 +19,9 @@ set timeout=300 set imap_keepalive=300 # Caching -set header_cache="~/.mutt/cache/headers" -set message_cachedir="~/.mutt/cache/bodies" -set certificate_file="~/.mutt/certificates" +set header_cache="~/.cache/mutt/headers" +set message_cachedir="~/.cache/mutt/bodies" +set certificate_file="~/.cache/mutt/certificates" set use_from=yes set envelope_from=yes @@ -50,14 +50,14 @@ hdr_order Date: From: To: Cc: Subject: # Aliases set reverse_alias=yes -set alias_file="~/.mutt/aliases" +set alias_file="~/.config/mutt/aliases" # Composing and Sending set edit_headers=yes set include=yes # HTML email :( -set mailcap_path="~/.mutt/mailcap" +set mailcap_path="~/.config/mutt/mailcap" auto_view text/html alternative_order text/html text/plain text/enriched @@ -116,4 +116,4 @@ color quoted1 color37 default color quoted2 color64 default # Solarized (light theme) colors -#source ~/.mutt/mutt-colors-solarized/mutt-colors-solarized-dark-256.muttrc +#source ~/.config/mutt/mutt-colors-solarized/mutt-colors-solarized-dark-256.muttrc From e1886010532c5008e2d0e42c604282e3f23f30da Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Sun, 25 Jan 2026 17:44:44 -0800 Subject: [PATCH 14/17] [nvim] Update lsp config after deprecation of lspconfig module --- nvim/after/plugin/treesitter.lua | 4 ++-- nvim/lua/lsp.lua | 30 ++++++++++++++---------------- nvim/lua/treesitter.lua | 2 +- 3 files changed, 17 insertions(+), 19 deletions(-) diff --git a/nvim/after/plugin/treesitter.lua b/nvim/after/plugin/treesitter.lua index 4f9ee81..f1ebcef 100644 --- a/nvim/after/plugin/treesitter.lua +++ b/nvim/after/plugin/treesitter.lua @@ -1,6 +1,6 @@ -local treesitter_configs = require 'nvim-treesitter.configs' +local treesitter = require 'nvim-treesitter' -treesitter_configs.setup { +treesitter.setup { ensure_installed = { "lua", "vim" }, sync_install = true, auto_install = true, diff --git a/nvim/lua/lsp.lua b/nvim/lua/lsp.lua index 8c6f913..0a4277d 100644 --- a/nvim/lua/lsp.lua +++ b/nvim/lua/lsp.lua @@ -3,8 +3,6 @@ local clangd_extensions = require 'clangd_extensions' local cmp = require 'cmp' -local lspconfig = require 'lspconfig' - local keys = require 'keys' cmp.setup { @@ -60,7 +58,7 @@ local function on_attach(client, buffer_number) keys.init_lsp_key_mappings(buffer_number) end -lspconfig.clangd.setup { +vim.lsp.config("clangd", { on_attach = function(client, buffer_number) on_attach(client, buffer_number) @@ -69,24 +67,24 @@ lspconfig.clangd.setup { clangd_inlay_hints.set_inlay_hints() end, capabilities = cmp_capabilities, -} +}) -lspconfig.eslint.setup { +vim.lsp.config("eslint", { on_attach = on_attach, capabilities = cmp_capabilities, -} +}) -lspconfig.ts_ls.setup { +vim.lsp.config("ts_ls", { on_attach = on_attach, capabilities = cmp_capabilities, -} +}) -lspconfig.html.setup { +vim.lsp.config("html", { on_attach = on_attach, capabilities = cmp_capabilities, -} +}) -lspconfig.lua_ls.setup { +vim.lsp.config("lua_ls", { on_attach = on_attach, capabilities = cmp_capabilities, settings = { @@ -101,14 +99,14 @@ lspconfig.lua_ls.setup { }, }, }, -} +}) -lspconfig.pyright.setup { +vim.lsp.config("pyright", { on_attach = on_attach, capabilities = cmp_capabilities, -} +}) -lspconfig.rust_analyzer.setup { +vim.lsp.config("rust_analyzer", { on_attach = function(client, buffer_number) on_attach(client, buffer_number) end, @@ -139,4 +137,4 @@ lspconfig.rust_analyzer.setup { }, }, }, -} +}) diff --git a/nvim/lua/treesitter.lua b/nvim/lua/treesitter.lua index 3c198f1..c9cb59f 100644 --- a/nvim/lua/treesitter.lua +++ b/nvim/lua/treesitter.lua @@ -1,7 +1,7 @@ -- Treesitter configuration -- Eryn Wells -local treesitter = require 'nvim-treesitter.configs' +local treesitter = require 'nvim-treesitter' -- For some reason the Lua linter complains about missing fields here even -- though they're not requried. So, ignore the error. From 3669a7efc038a6f7d9f300e1c8af63674945945c Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Fri, 30 Jan 2026 09:57:56 -0800 Subject: [PATCH 15/17] [fortune] Rename bare fortune file with .txt extension; rewrite Makefile as a bmake style Makefile --- Fortune/Makefile | 19 +++++++++---------- Fortune/{eryn => eryn.txt} | 0 2 files changed, 9 insertions(+), 10 deletions(-) rename Fortune/{eryn => eryn.txt} (100%) diff --git a/Fortune/Makefile b/Fortune/Makefile index 9a1c213..859c115 100644 --- a/Fortune/Makefile +++ b/Fortune/Makefile @@ -1,16 +1,15 @@ +# Makefile +# Eryn Wells -STRFILE=strfile +STRFILE != which strfile +DATFILES := eryn.dat -DATFILES=eryn.dat +.SUFFIXES : .dat .txt -.PHONY: all clean +.txt.dat : + $(STRFILE) $(.IMPSRC) $(.TARGET) -%.dat: % - $(STRFILE) $^ $@ +all : $(DATFILES) -.PHONY: all -all: $(DATFILES) - -.PHONY: clean -clean: +clean : .PHONY rm -f $(DATFILES) diff --git a/Fortune/eryn b/Fortune/eryn.txt similarity index 100% rename from Fortune/eryn rename to Fortune/eryn.txt From b36b4ac390885ce459ff244e54f9ba502078d174 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Fri, 30 Jan 2026 10:11:20 -0800 Subject: [PATCH 16/17] [zsh] Define the XDG user directories --- zsh/functions/init-env-default-xdg-vars | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/zsh/functions/init-env-default-xdg-vars b/zsh/functions/init-env-default-xdg-vars index ed5bb66..c1f5d63 100644 --- a/zsh/functions/init-env-default-xdg-vars +++ b/zsh/functions/init-env-default-xdg-vars @@ -13,12 +13,24 @@ function init-env-default-xdg-vars zparseopts -a opt_args -D -E -F - \ {c,-create,-no-create}=opt_create + # Base directories export \ XDG_BIN_HOME=${XDG_BIN_HOME:-$HOME/.local/bin} \ XDG_CACHE_HOME=${XDG_CACHE_HOME:-$HOME/.cache} \ XDG_CONFIG_HOME=${XDG_CACHE_HOME:-$HOME/.config} \ XDG_DATA_HOME=${XDG_DATA_HOME:-$HOME/.local/share} \ - XDG_STATE_HOME=${XDG_DATA_HOME:-$HOME/.local/state} + XDG_STATE_HOME=${XDG_DATA_HOME:-$HOME/.local/state} \ + XDG_RUNTIME_DIR=${XDG_DATA_HOME:-$HOME/.local/var} + + # User directories + export \ + XDG_DESKTOP_DIR=${XDG_DESKTOP_DIR:-$HOME/Desktop} \ + XDG_DOCUMENTS_DIR=${XDG_DOCUMENTS_DIR:-$HOME/Document} \ + XDG_DOWNLOAD_DIR=${XDG_DOWNLOAD_DIR:-$HOME/Downloads} \ + XDG_MUSIC_DIR=${XDG_MUSIC_DIR:-$HOME/Music} \ + XDG_PICTURES_DIR=${XDG_PICTURES_DIR:-$HOME/Pictures} \ + XDG_PUBLICSHARE_DIR=${XDG_PUBLICSHARE_DIR:-$HOME/Public} \ + XDG_VIDEOS_DIR=${XDG_VIDEOS_DIR:-$HOME/Video} if [[ $opt_create[(I)--no-create] -ne 0 ]]; then mkdir -p -m 0700 \ From 929f95139172533f29c4d8526f994b94303349a0 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Fri, 30 Jan 2026 10:11:46 -0800 Subject: [PATCH 17/17] [zsh] Move dotfiles config to XDG_CONFIG_HOME/dotfiles/home --- zsh/zshenv | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zsh/zshenv b/zsh/zshenv index fd60ea6..452e17e 100644 --- a/zsh/zshenv +++ b/zsh/zshenv @@ -7,7 +7,7 @@ export SYS=`uname -s | tr A-Z a-z` function init-env-dotfiles-path { - local dotfiles_config="$HOME/.config/dotfiles-home" + local dotfiles_config="$HOME/.config/dotfiles/home" if [[ -f "$dotfiles_config" ]]; then export DOTFILES_HOME=$(cat "$dotfiles_config") return