From 864af5a49d2afc2bdf6f0c5e74ccfe05679b750b Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Sun, 1 Oct 2023 11:44:41 -0700 Subject: [PATCH 01/18] git: set default branch name Use the gitconfig to set the default branch name to main instead of using master these days. Signed-off-by: Dan Kalowsky --- git/.gitconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/git/.gitconfig b/git/.gitconfig index 6bca6f3..9d512ca 100644 --- a/git/.gitconfig +++ b/git/.gitconfig @@ -157,3 +157,5 @@ default = matching [grep] lineNumber = true +[init] + defaultBranch = main From 33a7b5b51164441695d1b9457c09550eba7fe219 Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Wed, 18 Mar 2026 09:33:52 -0700 Subject: [PATCH 02/18] aptgets: remove duplicate Remove the duplicate entry for universal-ctags Signed-off-by: Dan Kalowsky --- aptgets | 1 - 1 file changed, 1 deletion(-) diff --git a/aptgets b/aptgets index 442dfdb..7212863 100644 --- a/aptgets +++ b/aptgets @@ -21,7 +21,6 @@ stow tig ubuntu-restricted-extras universal-ctags -universal-ctags vim xclip xsel From 0c8d9557c8da143507c4a2e99490fef9c60e2263 Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Wed, 18 Mar 2026 09:51:52 -0700 Subject: [PATCH 03/18] bootstrap: update diff-so-fancy install Use snap and brew to install diff-so-fancy. Signed-off-by: Dan Kalowsky --- Brewfile | 1 + bootstrap.sh | 11 ++++------- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/Brewfile b/Brewfile index 845223b..cf6f726 100644 --- a/Brewfile +++ b/Brewfile @@ -41,6 +41,7 @@ brew 'cmake' brew 'colordiff' brew 'coreutils' brew 'cppcheck' +brew 'diff-so-fancy' brew 'gmp' brew 'mpfr' brew 'gawk' diff --git a/bootstrap.sh b/bootstrap.sh index 9b34d73..0881c3e 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -336,6 +336,7 @@ doMacOSConfig() { # [ "${xcode_status:=2}" -ne 2 ] && doBrew fi + } doLinuxConfig() { @@ -360,6 +361,9 @@ doLinuxConfig() { if [ "${distro}" == "Ubuntu" ]; then + info "Installing snaps" + sudo snap install diff-so-fancy + info "Installing from aptgets" if ((EUID != 0)); then if [[ -t 1 ]]; then @@ -440,7 +444,6 @@ doConfig() { [ -f "${HOME}/.git-completion.bash" ] && rm "${HOME}/.git-completion.bash" [ -f "${HOME}/.tigrc.vim" ] && rm "${HOME}/.tigrc.vim" [ -f "${HOME}/bin/git-quick-stats" ] && rm "${HOME}/bin/git-quick-stats" - [ -f "${HOME}/bin/diff-so-fancy" ] && rm "${HOME}/bin/diff-so-fancy" [ -d "${HOME}/.yarn" ] && rm -Rf "${HOME}/.yarn" fi @@ -471,12 +474,6 @@ doConfig() { rm -Rf "${HOME}/git-quick-stats" fi - info "Installing diff-so-fancy" - if [ ! -f "${HOME}/bin/diff-so-fancy" ]; then - curl -L https://raw.githubusercontent.com/so-fancy/diff-so-fancy/master/third_party/build_fatpack/diff-so-fancy -o "${HOME}/bin/diff-so-fancy" - chmod +x "${HOME}/bin/diff-so-fancy" - fi - if ! command -v yarn > /dev/null; then curl --compressed -o- -L https://yarnpkg.com/install.sh | bash fi From 05bb975a172dc2c11d47273209f1487c309d2823 Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Wed, 18 Mar 2026 09:55:31 -0700 Subject: [PATCH 04/18] bootstrap: update cascadia code font Update the release of the cascadia code font path. Signed-off-by: Dan Kalowsky --- bootstrap.sh | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index 0881c3e..6ae258f 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -163,9 +163,13 @@ doInstall() { doFonts() { info "Installing Fonts" + # + # Assuming Linux is the default here + # + fonts_dir="${HOME}/.local/share/fonts" # Grab the latest Microsoft Cascadia Code font - curl --output cascadia.zip -O https://github.com/microsoft/cascadia-code/releases/download/v2404.23/CascadiaCode-2404.23.zip + curl --output cascadia.zip -O https://github.com/microsoft/cascadia-code/releases/download/v2407.24/CascadiaCode-2407.24.zip unzip cascadia.zip if [ "${PLATFORM}" == "MSYS" ]; then @@ -179,8 +183,6 @@ doFonts() { if [ "${PLATFORM}" == "Darwin" ]; then fonts_dir="${HOME}/Library/Fonts" - elif [ "${PLATFORM}" == "Linux" ]; then - fonts_dir="${HOME}/.local/share/fonts" fi mkdir -p "${fonts_dir}" From 5a9498480bce726d590ca8511769f511daf0f28e Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Wed, 18 Mar 2026 10:11:30 -0700 Subject: [PATCH 05/18] bootstrap: make platform configure more consistent Make the platform selection process more consistent and fault tolerant by using readonly constants for the strings and also scrubbing the uname output to always be the same. Signed-off-by: Dan Kalowsky --- bootstrap.sh | 43 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index 6ae258f..a1a7eeb 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -18,7 +18,11 @@ if [[ -n "${DEBUG_SCRIPT:-}" ]]; then fi DOTFILES_DIR="$( cd "$(dirname "$0")" ; pwd -P )" -PLATFORM="$(uname)" + +readonly PLATFORM_LINUX="Linux" +readonly PLATFORM_DARWIN="Darwin" +readonly PLATFORM_MICROSOFT="MSYS" + DEBUG_PRINTS=0 # Font colors @@ -55,6 +59,31 @@ debug() { fi } +_configure_platform() { + # + # Why add a function that basically mimics uname? + # Have run into cases where the uname value is different + # for some distros. This just gives a chance to ensure + # there is a consistent naming going forward. + # + local uname="$(uname)" + + # by default assume Linux right now + if [ "${uname}" == "Darwin" ]; then + echo "${PLATFORM_DARWIN}" + return + fi + + if [[ "${uname}" == *"MSYS"* ]]; then + echo "${PLATFORM_MICROSOFT}" + return + fi + + echo "${PLATFORM_LINUX}" +} + +PLATFORM="$(_configure_platform)" + doStow() { if hash stow 2>/dev/null; then @@ -127,7 +156,7 @@ doSync() { doBrew() { - if [ "${PLATFORM}" != "Darwin" ]; then + if [ "${PLATFORM}" != "${PLATFORM_DARWIN}" ]; then return fi @@ -172,7 +201,7 @@ doFonts() { curl --output cascadia.zip -O https://github.com/microsoft/cascadia-code/releases/download/v2407.24/CascadiaCode-2407.24.zip unzip cascadia.zip - if [ "${PLATFORM}" == "MSYS" ]; then + if [ "${PLATFORM}" == "${PLATFORM_MICROSOFT}" ]; then info "You will need to manually install the fonts by clicking on them." info "I have not setup the PowerShell script to do so yet." info "This might help: https://medium.com/@slmeng/how-to-install-powerline-fonts-in-windows-b2eedecace58" @@ -181,7 +210,7 @@ doFonts() { fi - if [ "${PLATFORM}" == "Darwin" ]; then + if [ "${PLATFORM}" == "${PLATFORM_DARWIN}" ]; then fonts_dir="${HOME}/Library/Fonts" fi @@ -217,13 +246,13 @@ doPython() { } doWindowsConfig() { - if [ "${PLATFORM}" != "MSYS" ]; then + if [ "${PLATFORM}" != "${PLATFORM_MICROSOFT}" ]; then return fi } doMacOSConfig() { - if [ "${PLATFORM}" != "Darwin" ]; then + if [ "${PLATFORM}" != "${PLATFORM_DARWIN}" ]; then return fi @@ -342,7 +371,7 @@ doMacOSConfig() { } doLinuxConfig() { - if [ "${PLATFORM}" != "Linux" ]; then + if [ "${PLATFORM}" != "${PLATFORM_LINUX}" ]; then return fi From a56b7c9bc43a771596e12bc63724e02dba02c69b Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Mon, 6 Apr 2026 09:00:31 -0700 Subject: [PATCH 06/18] aptgets: add additional installs Add the bash autocomplete series for the git commands and add openocd for flashing the rpi_pico with Zephyr. Signed-off-by: Dan Kalowsky --- aptgets | 3 +++ 1 file changed, 3 insertions(+) diff --git a/aptgets b/aptgets index 7212863..d0849de 100644 --- a/aptgets +++ b/aptgets @@ -1,5 +1,6 @@ apt-listdifferences autoconf +bash-completion bat ccache curl @@ -7,6 +8,7 @@ git-delta keychain neovim nodejs +openocd python-optcomplete python3-pip python3-venv @@ -22,5 +24,6 @@ tig ubuntu-restricted-extras universal-ctags vim +wl-clipboard xclip xsel From 7b90274e8b8f833c2b6adb72b4cbab768026da08 Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Mon, 6 Apr 2026 09:01:23 -0700 Subject: [PATCH 07/18] bashrc: source git autocomplete Previously this was being done with a downloaded file but it seems that Ubuntu at least has a package to do the same thing and just needs to be updated to source. Add sourcing to my bashrc. Signed-off-by: Dan Kalowsky --- bash/.bashrc | 1 + 1 file changed, 1 insertion(+) diff --git a/bash/.bashrc b/bash/.bashrc index 3bca68f..1b83b6b 100644 --- a/bash/.bashrc +++ b/bash/.bashrc @@ -148,6 +148,7 @@ source_additions=( "${HOME}/.git-completion.bash" "${HOME}/.stgit-completion.bash" "${HOME}/.delta-completion.bash" + "/usr/share/bash-completion/completions/git" "/usr/share/virtualenvwrapper/virtualenvwrapper.sh" ) From 219ac4f0640fb58f4c301cf3e283a190ab5d7b9e Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Mon, 6 Apr 2026 09:01:56 -0700 Subject: [PATCH 08/18] ghostty: use TokyoNight theme Set the ghostty theme to TokyoNight Night. Signed-off-by: Dan Kalowsky --- config/.config/ghostty/config | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/.config/ghostty/config b/config/.config/ghostty/config index 6e96ecf..1a98728 100644 --- a/config/.config/ghostty/config +++ b/config/.config/ghostty/config @@ -1,6 +1,6 @@ font-family = "Cascadia Code NF" -font-size = 16 -theme = "Argonaut" +font-size = 12 +theme = "TokyoNight Night" shell-integration = "bash" shell-integration-features = no-cursor,sudo,no-title adjust-cell-height = 25% From e08dd9fefaca1031108e8d9f823481d0373cf0b9 Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Mon, 6 Apr 2026 09:02:48 -0700 Subject: [PATCH 09/18] ghostty: enable clipboard now that wl-clipboard is installed, enable the use of the clipboard from ghostty such that vim/nvim yanks can populate it and pull from it. Signed-off-by: Dan Kalowsky --- config/.config/ghostty/config | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/.config/ghostty/config b/config/.config/ghostty/config index 1a98728..13b537f 100644 --- a/config/.config/ghostty/config +++ b/config/.config/ghostty/config @@ -12,5 +12,7 @@ mouse-scroll-multiplier = 2 window-save-state = always +clipboard-read = allow +clipboard-write = allow copy-on-select = clipboard From f127e6c9e8381656abb9a7c0a8d0bd0a4baae7f5 Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Sat, 11 Apr 2026 17:46:41 -0700 Subject: [PATCH 10/18] bashrc: source the fzf key-bindings Turns out, I use a lot of the fzf keybindings without really noticing it. Make sure first that FZF is installed. Then second make sure to source the key-bindings and tab completion features. The paths right now are specific to the apt installed version of FZF which will also need to be updated for the locally installed versions on other OSes. Signed-off-by: Dan Kalowsky --- aptgets | 1 + bash/.bashrc | 2 ++ bootstrap.sh | 10 ++++++++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/aptgets b/aptgets index d0849de..6dc167b 100644 --- a/aptgets +++ b/aptgets @@ -4,6 +4,7 @@ bash-completion bat ccache curl +fzf git-delta keychain neovim diff --git a/bash/.bashrc b/bash/.bashrc index 1b83b6b..a3751e9 100644 --- a/bash/.bashrc +++ b/bash/.bashrc @@ -149,6 +149,8 @@ source_additions=( "${HOME}/.stgit-completion.bash" "${HOME}/.delta-completion.bash" "/usr/share/bash-completion/completions/git" + "/usr/share/doc/fzf/examples/key-bindings.bash" + "/usr/share/doc/fzf/examples/completion.bash" "/usr/share/virtualenvwrapper/virtualenvwrapper.sh" ) diff --git a/bootstrap.sh b/bootstrap.sh index a1a7eeb..01acba6 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -453,14 +453,20 @@ doConfig() { doLinuxConfig doWindowsConfig - if [ ! -d "${HOME}/.fzf" ]; then + if hash fzf 2>/dev/null; then + info "FZF already installed at $(which fzf)" + else + #if [ ! -d "${HOME}/.fzf" ]; then info "Installing fzf" git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf "${HOME}"/.fzf/install --bin --no-update-rc --completion --key-bindings fi if [[ ${update} == true ]]; then - if [ -d "${HOME}/.fzf" ]; then + if [[ "$(which fzf)" != "/usr/bin/fzf" ]] && [[ -d "${HOME}/.fzf" ]]; then + # this is not a system installed FZF and likely a personally installed + # meaning we can update it + info "Updating fzf" pushd "${HOME}"/.fzf > /dev/null git pull --prune && ./install popd > /dev/null From a72d2429a8bcb467d2f79fc86b3fa5610d662b9c Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Sat, 11 Apr 2026 17:48:42 -0700 Subject: [PATCH 11/18] git: add velocity command This has been a command I use on and off to determine how much of the development is going on. It was recently brought back to my attention in a blog post by someone who uses it to determine how alive a project is. That is an interesting change as for me this command is really about determining how close we are towards release. Signed-off-by: Dan Kalowsky --- git/.gitconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/git/.gitconfig b/git/.gitconfig index 9d512ca..3023c5c 100644 --- a/git/.gitconfig +++ b/git/.gitconfig @@ -34,6 +34,8 @@ # show the current list of files to be assumed unchanged hidden = !git ls-files -v | grep \"^[[:lower:]]\" ignored = !git status -s --ignored | grep \"^!!\" + # check the velocity of the project over time by commits + velocity = "!git log --format='%ad' --date=format:'%Y-%m' | sort | uniq -c" # get the current number of commits ahead of source branch count = "!f() { git rev-list --count HEAD ^$(git rev-parse --abbrev-ref --symbolic-full-name @{u}); }; f" # On an interactive add, work around the githooks adding back in the whole file at commit From c42d2e0d5bdbd33987cc10bbd671a73c9fad5987 Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Sat, 11 Apr 2026 17:51:13 -0700 Subject: [PATCH 12/18] git: add most-changed command This one comes from a recent blog post about determining the file with the most change. This falls under the Adam Tornhill concept of treating your codebase as a crime to find where the most damage is being done. Typically the file with the most continuous changes for a long lived project is the file that needs to be broken down into small parts such that it can be better understood. In a previous life I had done this with the use of codecity and hadn't really thought to do it with straight git commands. I'm surprisingly happy to discover it can be done with straight git commands. Signed-off-by: Dan Kalowsky --- git/.gitconfig | 2 ++ 1 file changed, 2 insertions(+) diff --git a/git/.gitconfig b/git/.gitconfig index 3023c5c..9fbbf3a 100644 --- a/git/.gitconfig +++ b/git/.gitconfig @@ -65,6 +65,8 @@ frbi = "!f() { git rebase -i $(git log --pretty=oneline --color=always | fzf --ansi | cut -d ' ' -f1)^ ; }; f" rmfind = "!git log --all -p --reverse --source -S" branch-compare = "!f() {git log --left-right --graph --chery-mark --oneline $1...$2}" + # check which files are the most hot, these are usually problem files + most-changed = "!git log --format=format: --name-only --since=\"1 year ago\" | sort | uniq -c | sort -nr | head -20" [diff] tool = delta #tool = kitty From 966a21c63660fe6284c214df49cdd4218a66468f Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Fri, 29 May 2026 10:34:48 -0700 Subject: [PATCH 13/18] bashrc: remove fzf.bash Now that all of this is sourced from other parts, remove our custom version. Signed-off-by: Dan Kalowsky --- bash/.bashrc | 1 - 1 file changed, 1 deletion(-) diff --git a/bash/.bashrc b/bash/.bashrc index a3751e9..a806ffc 100644 --- a/bash/.bashrc +++ b/bash/.bashrc @@ -144,7 +144,6 @@ fi source_additions=( "${HOME}/.dan_profile" "${HOME}/.bashrc-private" - "${HOME}/.fzf.bash" "${HOME}/.git-completion.bash" "${HOME}/.stgit-completion.bash" "${HOME}/.delta-completion.bash" From 4f2bcbcc1dab586a750f4962d1abbf2eb768ca6b Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Fri, 29 May 2026 10:37:18 -0700 Subject: [PATCH 14/18] nvim: update to astronvim v6 Add the files for updating to astronvim v6. This fixes an issue on neovim v12 that throws a warning on startup due to a change in how clang-format and clang-tidy can be loaded now. Signed-off-by: Dan Kalowsky --- config/.config/nvim/init.lua | 51 ++++++++++++++------------ config/.config/nvim/lua/community.lua | 13 +++++++ config/.config/nvim/lua/lazy_setup.lua | 32 ++++++++++++++++ config/.config/nvim/lua/polish.lua | 5 +++ 4 files changed, 77 insertions(+), 24 deletions(-) create mode 100644 config/.config/nvim/lua/community.lua create mode 100644 config/.config/nvim/lua/lazy_setup.lua create mode 100644 config/.config/nvim/lua/polish.lua diff --git a/config/.config/nvim/init.lua b/config/.config/nvim/init.lua index 01dfc4e..424e48d 100644 --- a/config/.config/nvim/init.lua +++ b/config/.config/nvim/init.lua @@ -1,24 +1,27 @@ -require "user.launch" -require "user.options" -require "user.keymaps" -spec "user.colorscheme" -spec "user.devicons" -spec "user.gitsigns" -spec "user.guard" --- schemastore and mason need to be before lspconfig so we can get the right schemea -spec "user.schemastore" -spec "user.treesitter" -spec "user.mason" ---spec "user.osc52" -spec "user.lspconfig" --- cmp must come after lspconfig it seems -spec "user.cmp" -spec "user.lualine" -spec "user.neoclip" -spec "user.neogit" -spec "user.telescope" -spec "user.trouble" -spec "user.undotree" -spec "user.whichkey" --- spec "user.gutentags" -require "user.lazy" +-- This file simply bootstraps the installation of Lazy.nvim and then calls other files for execution +-- This file doesn't necessarily need to be touched, BE CAUTIOUS editing this file and proceed at your own risk. +local lazypath = vim.env.LAZY or vim.fn.stdpath "data" .. "/lazy/lazy.nvim" + +if not (vim.env.LAZY or (vim.uv or vim.loop).fs_stat(lazypath)) then + -- stylua: ignore + local result = vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath }) + if vim.v.shell_error ~= 0 then + -- stylua: ignore + vim.api.nvim_echo({ { ("Error cloning lazy.nvim:\n%s\n"):format(result), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {}) + vim.fn.getchar() + vim.cmd.quit() + end +end + +vim.opt.rtp:prepend(lazypath) + +-- validate that lazy is available +if not pcall(require, "lazy") then + -- stylua: ignore + vim.api.nvim_echo({ { ("Unable to load lazy from: %s\n"):format(lazypath), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {}) + vim.fn.getchar() + vim.cmd.quit() +end + +require "lazy_setup" +require "polish" diff --git a/config/.config/nvim/lua/community.lua b/config/.config/nvim/lua/community.lua new file mode 100644 index 0000000..52380dd --- /dev/null +++ b/config/.config/nvim/lua/community.lua @@ -0,0 +1,13 @@ +-- AstroCommunity: import any community modules here +-- We import this file in `lazy_setup.lua` before the `plugins/` folder. +-- This guarantees that the specs are processed before any user plugins. + +---@type LazySpec +return { + "AstroNvim/astrocommunity", + { import = "astrocommunity.pack.lua" }, + -- import/override with your plugins folder + { import = "astrocommunity.colorscheme.tokyonight-nvim" }, + { import = "astrocommunity.fuzzy-finder.fzf-lua" }, + { import = "astrocommunity.git.neogit" }, +} diff --git a/config/.config/nvim/lua/lazy_setup.lua b/config/.config/nvim/lua/lazy_setup.lua new file mode 100644 index 0000000..8e1abfb --- /dev/null +++ b/config/.config/nvim/lua/lazy_setup.lua @@ -0,0 +1,32 @@ +require("lazy").setup({ + { + "AstroNvim/AstroNvim", + version = "^6", -- Remove version tracking to elect for nightly AstroNvim + import = "astronvim.plugins", + opts = { -- AstroNvim options must be set here with the `import` key + mapleader = " ", -- This ensures the leader key must be configured before Lazy is set up + maplocalleader = ",", -- This ensures the localleader key must be configured before Lazy is set up + icons_enabled = true, -- Set to false to disable icons (if no Nerd Font is available) + pin_plugins = nil, -- Default will pin plugins when tracking `version` of AstroNvim, set to true/false to override + update_notifications = true, -- Enable/disable notification about running `:Lazy update` twice to update pinned plugins + }, + }, + { import = "community" }, + { import = "plugins" }, +} --[[@as LazySpec]], { + -- Configure any other `lazy.nvim` configuration options here + install = { colorscheme = { "astrotheme", "habamax" } }, + ui = { backdrop = 100 }, + performance = { + rtp = { + -- disable some rtp plugins, add more to your liking + disabled_plugins = { + "gzip", + "netrwPlugin", + "tarPlugin", + "tohtml", + "zipPlugin", + }, + }, + }, +} --[[@as LazyConfig]]) diff --git a/config/.config/nvim/lua/polish.lua b/config/.config/nvim/lua/polish.lua new file mode 100644 index 0000000..642719f --- /dev/null +++ b/config/.config/nvim/lua/polish.lua @@ -0,0 +1,5 @@ +if true then return end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE + +-- This will run last in the setup process. +-- This is just pure lua so anything that doesn't +-- fit in the normal config locations above can go here From aef1f5534f6176d469b1b2d0b783ec6408dc4457 Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Mon, 1 Jun 2026 13:33:52 +0200 Subject: [PATCH 15/18] bashrc: fix arg to bat cat bat cat changed their color arg format. Update to support it. Signed-off-by: Dan Kalowsky --- bash/.bashrc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bash/.bashrc b/bash/.bashrc index a806ffc..98f1f80 100644 --- a/bash/.bashrc +++ b/bash/.bashrc @@ -96,8 +96,8 @@ if command_exists rg ; then fi if command_exists batcat ; then - alias bat="batcat --color-always --style=numbers" - alias fzf="fzf --preview 'batcat --color-always --style=numbers --line-range=:500 {}'" + alias bat="batcat --color always --style=numbers" + alias fzf="fzf --preview 'batcat --color always --style=numbers --line-range=:500 {}'" fi # Thanks to jvillalovos for this From 86bb751d12acc86121911bc44b0aede005e70d9f Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Mon, 8 Jun 2026 12:05:46 -0700 Subject: [PATCH 16/18] aptlist: add btm and luarocks Astronvim needs these. Add them to keep it quiet. Signed-off-by: Dan Kalowsky --- aptgets | 2 ++ 1 file changed, 2 insertions(+) diff --git a/aptgets b/aptgets index 6dc167b..d6f1d0f 100644 --- a/aptgets +++ b/aptgets @@ -2,11 +2,13 @@ apt-listdifferences autoconf bash-completion bat +btm ccache curl fzf git-delta keychain +luarocks neovim nodejs openocd From 852534b015d1aa29237492e0d36f34eb5fbba70e Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Mon, 17 Aug 2026 15:52:08 -0700 Subject: [PATCH 17/18] gitconfig: add gh usage It seems that as time went on and I didn't use GitHub, the use of the gh tool became a requirement. I don't love it, but what can I do. Add support for GH as a credential helper. Signed-off-by: Dan Kalowsky --- git/.gitconfig | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/git/.gitconfig b/git/.gitconfig index 9fbbf3a..86a72d4 100644 --- a/git/.gitconfig +++ b/git/.gitconfig @@ -163,3 +163,9 @@ lineNumber = true [init] defaultBranch = main +[credential "https://github.com"] + helper = + helper = !/usr/bin/gh auth git-credential +[credential "https://gist.github.com"] + helper = + helper = !/usr/bin/gh auth git-credential From afa9bc0f9f5d64c3edc5a3cf91d9793f71308d78 Mon Sep 17 00:00:00 2001 From: Dan Kalowsky Date: Mon, 17 Aug 2026 15:56:53 -0700 Subject: [PATCH 18/18] bash: enable parsing of env Instead of adding a file for every API key, put them into an env file in .local and parse it. Signed-off-by: Dan Kalowsky --- bash/.bashrc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/bash/.bashrc b/bash/.bashrc index 98f1f80..e568fbe 100644 --- a/bash/.bashrc +++ b/bash/.bashrc @@ -1,9 +1,26 @@ #!/usr/bin/env bash + # Simple function to check if a command exists command_exists() { type "$1" &> /dev/null ; } +# Simple function to check if a .local/env exists +# and if it does parse it for all the values you want +# to add to the shell session. +function export_env() +{ + if [ ! -f $HOME/.local/env ]; then + return + fi + + pushd $HOME/.local > /dev/null + unamestr=$(uname) + if [ "$unamestr" = 'Linux' ]; then + export $(grep -v '^#' env | xargs -d '\n') + fi + popd > /dev/null +} # # Append to history file, don't over write it # And limit the size it can grow to @@ -213,3 +230,7 @@ fi if command_exists ag ; then alias ag="ag --ignore '*tags'" fi + +# if the custom bash function export_env exists, then run it and load the +# custom environment variables needed. +[[ $(type -t export_env) == function ]] && export_env