-$endif$
-$-------------------------------------------------------------------------------
-
-$endif$
-$--<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< END IF: title
-$--------------------------------------------------------------------------> toc
-$if(toc)$
-
-
-
-$endif$
-$-------------------------------------------------------------------------> body
-$body$
-$----------------------------------------------------------------> include-after
-$for(include-after)$
-$include-after$
-$endfor$
-$-------------------------------------------------------------------------------
-
-
-
diff --git a/Configs/pandoc/.zshrc.d/pandoc.zsh b/Configs/pandoc/.zshrc.d/pandoc.zsh
deleted file mode 100644
index dddf2a1..0000000
--- a/Configs/pandoc/.zshrc.d/pandoc.zsh
+++ /dev/null
@@ -1 +0,0 @@
-alias pandoc-preview='pandoc --metadata=title=markdown --template=GitHub.html5 --from gfm --to html5 --mathjax --highlight-style=pygments -o preview.html --standalone'
diff --git a/Configs/pycharm/.bashrc.d/pycharm.bash b/Configs/pycharm/.bashrc.d/pycharm.bash
deleted file mode 100644
index 39f0089..0000000
--- a/Configs/pycharm/.bashrc.d/pycharm.bash
+++ /dev/null
@@ -1,6 +0,0 @@
-
-PYCHARM_PATH="/opt/pycharm/bin/"
-
-if [[ ! ":$PATH:" == *:"$PYCHARM_PATH":* ]]; then
- PATH=$PYCHARM_PATH:$PATH
-fi
diff --git a/Configs/pycharm/.local/share/applications/pycharm.desktop b/Configs/pycharm/.local/share/applications/pycharm.desktop
deleted file mode 100644
index 90261b7..0000000
--- a/Configs/pycharm/.local/share/applications/pycharm.desktop
+++ /dev/null
@@ -1,10 +0,0 @@
-[Desktop Entry]
-Type=Application
-Name=PyCharm
-Icon=pycharm
-Comment=The only Python IDE you need
-Exec=/opt/pycharm/bin/pycharm %f
-Terminal=false
-Categories=Development;IDE;Python;
-StartupNotify=true
-StartupWMClass=jetbrains-pycharm
\ No newline at end of file
diff --git a/Configs/ruff/.config/ruff/ruff.toml b/Configs/ruff/.config/ruff/ruff.toml
deleted file mode 100644
index b50619c..0000000
--- a/Configs/ruff/.config/ruff/ruff.toml
+++ /dev/null
@@ -1,46 +0,0 @@
-# Standard ruff linting rules lifted mainly from chats and wiki
-target-version = "py314"
-line-length = 120
-
-[lint]
-select = [
- # https://docs.astral.sh/ruff/rules/
- "RUF", # Ruff specific rules - https://docs.astral.sh/ruff/rules/#ruff-specific-rules-ruf
- "C", # mccabe rules - https://pypi.org/project/mccabe/
- "F", # pyflakes rules - https://pypi.org/project/pyflakes/
- "E", # pycodestyle error rules - https://pypi.org/project/pycodestyle/
- "W", # pycodestyle warning rules - https://pypi.org/project/pycodestyle/
- "N", # Naming - https://pypi.org/project/pep8-naming/
- "A", # builtins - https://pypi.org/project/flake8-builtins/
- "B", # flake8-bugbear rules - https://pypi.org/project/flake8-bugbear/
- "I", # isort rules - https://pypi.org/project/isort/
- "LOG", # logging rules - https://pypi.org/project/flake8-logging/
- "PT", # PyTest - https://pypi.org/project/flake8-pytest-style/
- "INP", # no-pep420 - https://pypi.org/project/flake8-no-pep420/
- "ANN", # annotation rules - https://pypi.org/project/flake8-annotations/
- "UP", # pyupgrade - https://pypi.org/project/pyupgrade/
- "RET", # returns - https://pypi.org/project/flake8-return/
- "SIM", # simplify - https://pypi.org/project/flake8-simplify/
- "PL", # PyLint (ALL) - https://pypi.org/project/pylint/
- "PLC", # PyLint Conventions - https://pypi.org/project/pylint/
- "PLE", # PyLint Error - https://pypi.org/project/pylint/
- "PLR", # PyLint Refactor - https://pypi.org/project/pylint/
- "PLW", # PyLint Warnings - https://pypi.org/project/pylint/
- "FURB", # refurb - https://pypi.org/project/refurb/
- "ASYNC",# async - https://pypi.org/project/flake8-async/
- "DJ", # django - https://pypi.org/project/flake8-django/
- "FAST", # fastapi - https://pypi.org/project/fastapi/
- "AIR", # Airflow rules - https://pypi.org/project/apache-airflow/
-]
-# Ignore specific rules globally, for example, a line-too-long rule
-ignore = ["E501"]
-
-[per-file-ignores]
-"tests/*" = ["PLC0415"] # import-outside-top-level (PLC0415)
-"**/{tests,docs,tools}/*" = ["E402"]
-"__init__.py" = ["F401"]
-
-[flake8-annotations]
-allow-star-arg-any = true
-ignore-fully-untyped = true
-suppress-dummy-args = true
diff --git a/Configs/rumdl/.config/rumdl/rumdl.toml b/Configs/rumdl/.config/rumdl/rumdl.toml
deleted file mode 100644
index 6ab7f7b..0000000
--- a/Configs/rumdl/.config/rumdl/rumdl.toml
+++ /dev/null
@@ -1,21 +0,0 @@
-[global]
-line-length = 120
-disable = ["MD013", "MD041"]
-
-# Exclude files and directories
-exclude = [
- "node_modules",
- "build",
- "dist",
- "*.tmp.md",
- "docs/generated/**",
- ".amazonq/**",
-]
-
-# Include only specific files
-include = [
- "README.md",
- "docs/**/*.md",
- "**/*.markdown",
- "readme.md",
-]
diff --git a/Configs/ssh/.ssh/config b/Configs/ssh/.ssh/config
deleted file mode 100644
index 2bafe9c..0000000
--- a/Configs/ssh/.ssh/config
+++ /dev/null
@@ -1,13 +0,0 @@
-Host *
- ServerAliveInterval 30
- ControlMaster auto
- ControlPath ~/.ssh/control:%h:%p:%r
- ForwardAgent yes
- Compression yes
- ServerAliveCountMax 30
- TCPKeepAlive yes
- ControlPersist 60
- IdentitiesOnly yes
-
-
-Include ~/.ssh/config.d/*
diff --git a/Configs/starship/.bashrc.d/starship.bash b/Configs/starship/.bashrc.d/starship.bash
deleted file mode 100644
index 20de15d..0000000
--- a/Configs/starship/.bashrc.d/starship.bash
+++ /dev/null
@@ -1,3 +0,0 @@
-
-export STARSHIP_CONFIG=~/.starship.toml
-eval "$(starship init bash)"
diff --git a/Configs/starship/.starship.toml b/Configs/starship/.starship.toml
deleted file mode 100644
index e69de29..0000000
diff --git a/Configs/starship/.zshrc.d/starship.zsh b/Configs/starship/.zshrc.d/starship.zsh
deleted file mode 100644
index fc906f6..0000000
--- a/Configs/starship/.zshrc.d/starship.zsh
+++ /dev/null
@@ -1,7 +0,0 @@
-
-if [ command -v starship &>/dev/null ] && [ -f ~/.starship.toml ]; then
-
- export STARSHIP_CONFIG=~/.starship.toml
- eval "$(starship init zsh)"
-
-fi
diff --git a/Configs/tmux/.tmux.conf b/Configs/tmux/.tmux.conf
deleted file mode 100644
index d744ddd..0000000
--- a/Configs/tmux/.tmux.conf
+++ /dev/null
@@ -1,5 +0,0 @@
-new
-neww
-splitw -h
-splitw -v
-set-option -g default-shell /bin/bash
diff --git a/Configs/xonsh/.xonshrc b/Configs/xonsh/.xonshrc
deleted file mode 100644
index e69de29..0000000
diff --git a/Configs/zsh/.zshrc-custom b/Configs/zsh/.zshrc-custom
deleted file mode 100644
index ae63b0f..0000000
--- a/Configs/zsh/.zshrc-custom
+++ /dev/null
@@ -1,15 +0,0 @@
-LOCAL_BIN="$HOME/.local/bin"
-
-if [[ ! ":$PATH:" == *:"$LOCAL_BIN":* ]]; then
- PATH=$LOCAL_BIN:$PATH
-fi
-
-# User specific aliases and functions
-if [ -d ~/.zshrc.d ]; then
- for rc in ~/.zshrc.d/*; do
- if [ -f "$rc" ]; then
- . "$rc"
- fi
- done
-fi
-unset rc
diff --git a/Configs/zsh/.zshrc.d/aliases.zsh b/Configs/zsh/.zshrc.d/aliases.zsh
deleted file mode 100644
index dda1864..0000000
--- a/Configs/zsh/.zshrc.d/aliases.zsh
+++ /dev/null
@@ -1,8 +0,0 @@
-
-function touchpath { mkdir -p "$(dirname "$1")" && touch "$1" ; }
-
-if [ -f ~/.localsettings ]; then
- set -a
- source ~/.localsettings
- set +a
-fi
diff --git a/Hooks/ansible/pre.sh b/Hooks/ansible/pre.sh
deleted file mode 100755
index efa4d46..0000000
--- a/Hooks/ansible/pre.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-fedora() {
- rootdo dnf install -y sshpass
-}
-
-linux() {
- has uv
- uv tool install --with-executables-from ansible-core,ansible-lint \
- --with requests \
- ansible
-}
diff --git a/Hooks/awscli/pre.sh b/Hooks/awscli/pre.sh
deleted file mode 100755
index 573142d..0000000
--- a/Hooks/awscli/pre.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-
-linux() {
- curl -s "https://awscli.amazonaws.com/awscli-exe-linux-$(uname -m).zip" -o "awscliv2.zip"
- unzip awscliv2.zip
- ./aws/install --bin-dir $HOME/.local/bin/ --install-dir $HOME/.local/awscli/ --update
- mkdir -p ~/.aws
-}
diff --git a/Hooks/awscli/rm.sh b/Hooks/awscli/rm.sh
deleted file mode 100755
index 3aabee1..0000000
--- a/Hooks/awscli/rm.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-linux() {
- rm -f ~/.local/bin/aws
- rm -f ~/.local/bin/aws_completer
- rm -rf ~/.local/awscli
-}
diff --git a/Hooks/azure-cli/pre.sh b/Hooks/azure-cli/pre.sh
deleted file mode 100755
index 51604b3..0000000
--- a/Hooks/azure-cli/pre.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-steamos() {
- rootdo pacman -S --noconfirm python-argcomplete
-}
-
-
-fedora() {
- rootdo dnf install -y python3-argcomplete
-}
-
-
-generic() {
- uv_install --prerelease allow azure-cli@latest
-}
diff --git a/Hooks/azure-cli/rm.sh b/Hooks/azure-cli/rm.sh
deleted file mode 100755
index d0c9c67..0000000
--- a/Hooks/azure-cli/rm.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-generic() {
- uv_uninstall azure-cli
-}
diff --git a/Hooks/basedpyright/pre.sh b/Hooks/basedpyright/pre.sh
deleted file mode 100755
index 2d8e629..0000000
--- a/Hooks/basedpyright/pre.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-generic_install() {
- uv_install basedpyright
-}
-
-install_for_os
diff --git a/Hooks/bash-language-server/pre.sh b/Hooks/bash-language-server/pre.sh
deleted file mode 100755
index 4366427..0000000
--- a/Hooks/bash-language-server/pre.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-linux() {
- npm_install bash-language-server
-}
diff --git a/Hooks/bash/pre.sh b/Hooks/bash/pre.sh
deleted file mode 100755
index 4b73791..0000000
--- a/Hooks/bash/pre.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-# Make the completions directory in advance, which will be used for dynamic and static completions
-generic() {
- add_line_to_file "source ~/.bashrc-custom" ~/.bashrc
- mkdir -p ~/.local/share/bash-completion/completions/
- mkdir -p ~/.bashrc.d/
-}
diff --git a/Hooks/bootstrap/post.sh b/Hooks/bootstrap/post.sh
deleted file mode 100755
index 2c2ea7d..0000000
--- a/Hooks/bootstrap/post.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-# $1 - ca destination path
-# $2 - ca update trust bundle command
-# $3 - optional prefix to add to the certificate when copying
-install_certs() {
- LOCAL_CERT_DIR=~/.local/share/certificates
- for cert in $(ls ${LOCAL_CERT_DIR}); do
- if [ -n "$1" ] && [ -n "$2" ]; then
- echo "Importing CA for $OS_ID"
- rootdo cp ${LOCAL_CERT_DIR}/$cert ${1}/$cert${3}
- rootdo $2
- fi
- done
-
-}
-
-fedora() {
- install_certs "/etc/pki/ca-trust/source/anchors" "update-ca-trust" ".pem"
-
- rootdo dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
- rootdo dnf install -y https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
- rootdo dnf install -y git-core jq
-}
-
-debian() {
- rootdo apt install -y jq
- install_certs "/usr/local/share/ca-certificates" "update-ca-certificates" ".crt"
-}
-
-ubuntu() {
- debian
-}
diff --git a/Hooks/bootstrap/pre.sh b/Hooks/bootstrap/pre.sh
deleted file mode 100755
index f8d5de9..0000000
--- a/Hooks/bootstrap/pre.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-macos() {
- brew install coreutils git curl jq
-}
-
-fedora() {
- rootdo dnf install -y https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
- rootdo dnf install -y https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
- rootdo dnf install -y git-core jq curl
-}
-
-debian() {
- rootdo apt install -y jq curl git
-}
-
-steamos() {
- rootdo steamos-readonly disable
- rootdo pacman-key --init
- rootdo pacman-key --populate archlinux
- rootdo pacman-key --populate holo
- rootdo pacman -S --noconfirm jq git curl
-}
-
-generic() {
-
- # link in tuckr and the dots if it hasn't already happened
- # is it safe to assume that this will always be dotfiles? Might need to think about that
- if [ ! -f $HOME/.config/dotfiles/bin/$(uname -s)/$(uname -m)/tuckr ] ; then
- ln -s $HOME/.config/dotfiles/bin/$(uname -s)/$(uname -m)/tuckr ${HOME}/.local/bin/tuckr
- fi
-
- # Lets make these directories ahead of time, since they are used by so many other groups
- mkdir -p ~/.local/share/bash-completion/completions/
- mkdir -p ~/.zshrc.d/
- mkdir -p ~/.bashrc.d/
- mkdir -p ~/.local/share/certificates/
- mkdir -p ~/.gitconfig.d/
-}
diff --git a/Hooks/bump-my-version/pre.sh b/Hooks/bump-my-version/pre.sh
deleted file mode 100755
index 3bb0bee..0000000
--- a/Hooks/bump-my-version/pre.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-generic() {
- uv_install bump-my-version
-}
diff --git a/Hooks/cruft/pre.sh b/Hooks/cruft/pre.sh
deleted file mode 100755
index 71ec7f1..0000000
--- a/Hooks/cruft/pre.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-generic() {
- uv_install cruft
-}
diff --git a/Hooks/delta/pre.sh b/Hooks/delta/pre.sh
deleted file mode 100755
index de2a63d..0000000
--- a/Hooks/delta/pre.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-arch() {
- rootdo pacman -S --noconfirm git-delta
-}
-
-fedora() {
- rootdo dnf install -y git-delta
-}
-
-debian() {
- rootdo apt install -y git-delta
-}
-
-ubuntu() {
- debian
-}
-
-steamos() {
- arch
-}
-
-macos() {
- brew install git-delta
-}
-
-linux() {
- # Fallback for Linux distros without package manager support
- LATEST_VERSION=$(github_latest_tag "dandavison/delta")
- VERSION=${DELTA_VERSION:=$LATEST_VERSION}
- FILENAME="delta-${VERSION}-$(uname -m)-unknown-linux-gnu.tar.gz"
- curl -fOL "https://github.com/dandavison/delta/releases/download/${VERSION}/${FILENAME}"
- tar -xzf ${FILENAME}
- mv delta-${VERSION}-$(uname -m)-unknown-linux-gnu/delta ~/.local/bin/
- chmod +x ~/.local/bin/delta
-}
diff --git a/Hooks/direnv/pre.sh b/Hooks/direnv/pre.sh
deleted file mode 100755
index 02bb291..0000000
--- a/Hooks/direnv/pre.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-fedora() {
- rootdo dnf install -y direnv
-}
diff --git a/Hooks/dive/pre.sh b/Hooks/dive/pre.sh
deleted file mode 100755
index 7d8fa89..0000000
--- a/Hooks/dive/pre.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-fedora() {
- LATEST_VERSION=$(github_latest_tag "wagoodman/dive")
- VERSION=${DIVE_VERSION:=$LATEST_VERSION}
- curl -sfOL https://github.com/wagoodman/dive/releases/download/v${VERSION}/dive_${VERSION}_linux_amd64.rpm
- rootdo dnf install -y dive_${VERSION}_linux_amd64.rpm ncurses
-}
-
-debian() {
- VERSION=$(github_latest_tag "wagoodman/dive")
- curl -sfOL https://github.com/wagoodman/dive/releases/download/v${VERSION}/dive_${VERSION}_linux_amd64.deb
- rootdo apt install ./dive_${VERSION}_linux_amd64.deb
-}
diff --git a/Hooks/docker-cli/pre.sh b/Hooks/docker-cli/pre.sh
deleted file mode 100755
index 7a40c6a..0000000
--- a/Hooks/docker-cli/pre.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-debian() {
- # Add Docker's official GPG key:
- rootdo install -m 0755 -d /etc/apt/keyrings && \
- rootdo curl -fsSL https://download.docker.com/linux/$OS_ID/gpg -o /etc/apt/keyrings/docker.asc && \
- rootdo chmod a+r /etc/apt/keyrings/docker.asc && \
- (rootdo tee /etc/apt/sources.list.d/docker.sources < ${GLOBAL_IGNORE_FILE}
-
- echo "Downloading common gitignores from https://github.com/github/gitignore..."
- for ignore_file in $GLOBAL_IGNORES; do
- echo "" >> ${GLOBAL_IGNORE_FILE}
- echo "## Start ${ignore_file}" >> ${GLOBAL_IGNORE_FILE}
- curl -sL https://raw.githubusercontent.com/github/gitignore/refs/heads/main/${ignore_file} >> ${GLOBAL_IGNORE_FILE}
- echo "## End ${ignore_file}" >> ${GLOBAL_IGNORE_FILE}
- done
-}
diff --git a/Hooks/git/pre.sh b/Hooks/git/pre.sh
deleted file mode 100755
index b0adb4d..0000000
--- a/Hooks/git/pre.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-echo "Gathering some information that will be used for git work or private configurations"
-printf "%-50s\n" "Is this a [work] or [private] configuration? [default private]"
-read conf_type
-printf "%-50s\n" 'Author name for git commits? '
-read git_author
-printf "%-50s\n" 'Email for git commits? '
-read git_email
-printf "%-50s\n" 'Base directory for git clones? [default ~/code/] '
-read default_dir
-
-default_dir=${default_dir:-~/code}
-conf_type=${conf_type:-private}
-conf_type_lower=$(echo $conf_type | tr '[:upper:]' '[:lower:]')
-conf_type_upper=$(echo $conf_type | tr '[:lower:]' '[:upper:]')
-
-add_line_to_file "${conf_type_upper}_GIT_AUTHOR_NAME=\"$git_author\"" ~/.localsettings
-add_line_to_file "${conf_type_upper}_GIT_AUTHOR_EMAIL=\"$git_email\"" ~/.localsettings
-add_line_to_file "DEFAULT_CODE_DIR=$default_dir" ~/.localsettings
-
-echo "Contents of ~/.localsettings"
-cat ~/.localsettings
-echo
-
-cat <~/.gitconfig-${conf_type_lower}
-[user]
- name = ${git_author}
- email = ${git_email}
-EOF
-
-echo "Custom work include for gitconfig has been created at ~/.gitconfig-${conf_type_lower}"
-cat ~/.gitconfig-${conf_type_lower}
diff --git a/Hooks/gitu/pre.sh b/Hooks/gitu/pre.sh
deleted file mode 100755
index 1b1108f..0000000
--- a/Hooks/gitu/pre.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-linux() {
- LATEST_VERSION=$(github_latest_tag "altsem/gitu")
- VERSION=${GITU_VERSION:=$LATEST_VERSION}
- FILENAME="gitu-v${version}-$(uname -m)-unknown-linux-gnu"
- curl -sLO https://github.com/altsem/gitu/releases/download/v${VERSION}/${FILENAME}.zip
- unzip -o ${FILENAME}.zip
- mv ${FILENAME}/gitu ~/.local/bin/
- chmod +x ~/.local/bin/gitu
-}
diff --git a/Hooks/glab/pre.sh b/Hooks/glab/pre.sh
deleted file mode 100755
index 276e9a1..0000000
--- a/Hooks/glab/pre.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-
-linux() {
- VERSION=$(gitlab_latest_tag "gitlab-org%2Fcli")
- FILENAME="glab_${VERSION}_linux_amd64"
-
- curl -Ls https://gitlab.com/gitlab-org/cli/-/releases/v${VERSION}/downloads/${FILENAME}.tar.gz | tar xvzf -
- mv bin/glab ~/.local/bin/glab
-}
diff --git a/Hooks/just-lsp/pre.sh b/Hooks/just-lsp/pre.sh
deleted file mode 100755
index 37e9139..0000000
--- a/Hooks/just-lsp/pre.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-
-linux() {
- LATEST_VERSION=$(github_latest_tag "terror/just-lsp")
- VERSION=${JUST_LSP_VERSION:=$LATEST_VERSION}
-
- FILENAME=just-lsp-${VERSION}-x86_64-unknown-linux-gnu.tar.gz
- curl -sLO https://github.com/terror/just-lsp/releases/download/${VERSION}/${FILENAME}
- tar -xzf ${FILENAME}
- mv just-lsp ~/.local/bin/
- chmod +x ~/.local/bin/just-lsp
-}
diff --git a/Hooks/just-lsp/rm.sh b/Hooks/just-lsp/rm.sh
deleted file mode 100755
index 7d71e77..0000000
--- a/Hooks/just-lsp/rm.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-linux() {
- rm -f ~/.local/bin/just-lsp
-}
diff --git a/Hooks/just/post.sh b/Hooks/just/post.sh
deleted file mode 100755
index 9bc8ce5..0000000
--- a/Hooks/just/post.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-if [ -d ~/.local/share/bash-completion/completions/ ]; then
- just --completions bash > ~/.local/share/bash-completion/completions/just-completions.bash
-fi
-
-if [ -d ~/.zshrc.d/ ]; then
- just --completions zsh > ~/.zshrc.d/just-completions.zsh
-fi
diff --git a/Hooks/just/pre.sh b/Hooks/just/pre.sh
deleted file mode 100755
index 6942bd9..0000000
--- a/Hooks/just/pre.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-generic() {
- uv_install rust-just
-}
diff --git a/Hooks/lazydocker/pre.sh b/Hooks/lazydocker/pre.sh
deleted file mode 100755
index cb8068e..0000000
--- a/Hooks/lazydocker/pre.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-linux() {
- # This works for both linux and macos, however some might prefer to install from homebrew
- curl -sL https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh | bash
-}
-
-macos() {
- brew install jesseduffield/lazydocker/lazydocker
-}
diff --git a/Hooks/marksman/pre.sh b/Hooks/marksman/pre.sh
deleted file mode 100755
index 2b80678..0000000
--- a/Hooks/marksman/pre.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-MARKSMAN_VERSION="2025-11-30"
-
-linux() {
- curl --output-dir ~/.local/bin -o marksman -L --create-dirs https://github.com/artempyanykh/marksman/releases/download/${MARKSMAN_VERSION}/marksman-linux-x64
- chmod +x ~/.local/bin/marksman
-}
-
-macos() {
- brew install marksman
-}
diff --git a/Hooks/nodejs/pre.sh b/Hooks/nodejs/pre.sh
deleted file mode 100755
index 8c642ae..0000000
--- a/Hooks/nodejs/pre.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-fedora() {
- rootdo dnf install -y nodejs-npm
- mkdir -p ~/.local/lib/node_modules
- npm config set prefix '~/.local'
-}
diff --git a/Hooks/nvm/pre.sh b/Hooks/nvm/pre.sh
deleted file mode 100755
index af96b28..0000000
--- a/Hooks/nvm/pre.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-
-has "bash"
-has "curl"
-
-# disable the automatic profile installation because it tampers directly with the ~/.bashrc or ~/.zshrc files
-PROFILE=/dev/null bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash'
diff --git a/Hooks/oras/pre.sh b/Hooks/oras/pre.sh
deleted file mode 100755
index 8e79933..0000000
--- a/Hooks/oras/pre.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-linux() {
-
- LATEST_VERSION="$(github_latest_tag 'oras-project/oras')"
- VERSION=${ORAS_VERSION:=$LATEST_VERSION}
- FILENAME="oras_${VERSION}_linux_amd64"
- curl -fLO "https://github.com/oras-project/oras/releases/download/v${VERSION}/${FILENAME}.tar.gz"
- mkdir -p oras-install/
- tar -zxf ${FILENAME}.tar.gz -C oras-install/
- mv oras-install/oras ~/.local/bin/
-}
diff --git a/Hooks/pandoc/pre.sh b/Hooks/pandoc/pre.sh
deleted file mode 100755
index 716c402..0000000
--- a/Hooks/pandoc/pre.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-fedora() {
- rootdo dnf install -y pandoc
-}
diff --git a/Hooks/poetry/pre.sh b/Hooks/poetry/pre.sh
deleted file mode 100755
index 00d3096..0000000
--- a/Hooks/poetry/pre.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-generic() {
- uv_install poetry
-}
diff --git a/Hooks/pre-commit/pre.sh b/Hooks/pre-commit/pre.sh
deleted file mode 100755
index 51e7d59..0000000
--- a/Hooks/pre-commit/pre.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-generic() {
- uv_install pre-commit
-}
diff --git a/Hooks/pycharm/post.sh b/Hooks/pycharm/post.sh
deleted file mode 100755
index 4245d1a..0000000
--- a/Hooks/pycharm/post.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-
-linux() {
- rootdo cp $HOME/.local/share/applications/pycharm.desktop /usr/local/share/applications/pycharm.desktop
-}
diff --git a/Hooks/pycharm/pre.sh b/Hooks/pycharm/pre.sh
deleted file mode 100755
index 8440499..0000000
--- a/Hooks/pycharm/pre.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-
-linux() {
- VERSION=${PYCHARM_VERSION:-"2025.3.1"}
- curl -sL -o pycharm.tar.gz https://download-cf.jetbrains.com/python/pycharm-${VERSION}.tar.gz
- rootdo tar xzf pycharm.tar.gz -C /opt
- rootdo mv /opt/pycharm-${VERSION}/ /opt/pycharm/
-}
diff --git a/Hooks/pycharm/rm.sh b/Hooks/pycharm/rm.sh
deleted file mode 100755
index 072dc98..0000000
--- a/Hooks/pycharm/rm.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-linux() {
-
- rm -rf ~/.local/pycharm/
- rootdo unlink /usr/local/share/applications/pycharm.desktop
- rootdo rm -rf /opt/pycharm/
-}
diff --git a/Hooks/pyright/pre.sh b/Hooks/pyright/pre.sh
deleted file mode 100755
index 9dbeb78..0000000
--- a/Hooks/pyright/pre.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-generic() {
- uv_install pyright
-}
diff --git a/Hooks/ripgrep/pre.sh b/Hooks/ripgrep/pre.sh
deleted file mode 100755
index b2240c0..0000000
--- a/Hooks/ripgrep/pre.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-fedora() {
- rootdo dnf install -y ripgrep
-}
-
-ubuntu() {
- debian_install
-}
-
-debian() {
- rootdo apt install -y ripgrep
-}
diff --git a/Hooks/ruff/pre.sh b/Hooks/ruff/pre.sh
deleted file mode 100755
index 0cb4ac9..0000000
--- a/Hooks/ruff/pre.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-uv_install ruff
diff --git a/Hooks/rumdl/pre.sh b/Hooks/rumdl/pre.sh
deleted file mode 100755
index 9d1c60e..0000000
--- a/Hooks/rumdl/pre.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-generic() {
- uv_install rumdl
-}
diff --git a/Hooks/shellcheck/pre.sh b/Hooks/shellcheck/pre.sh
deleted file mode 100755
index cf17f3f..0000000
--- a/Hooks/shellcheck/pre.sh
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-
-linux() {
- LATEST_VERSION=$(github_latest_tag "koalaman/shellcheck")
- VERSION=${SHELLCHECK_VERSION:=$LATEST_VERSION}
- FILENAME=shellcheck-v${VERSION}.linux.x86_64.tar.gz
- curl -LO https://github.com/koalaman/shellcheck/releases/download/v${VERSION}/${FILENAME}
- tar zxf $FILENAME
- mv shellcheck-v${VERSION}/shellcheck ~/.local/bin/shellcheck
- chmod +x ~/.local/bin/shellcheck
-}
diff --git a/Hooks/ssh/pre.sh b/Hooks/ssh/pre.sh
deleted file mode 100755
index f8ea0e6..0000000
--- a/Hooks/ssh/pre.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/sh
-
-mkdir -p ~/.ssh/config.d
diff --git a/Hooks/starship/pre.sh b/Hooks/starship/pre.sh
deleted file mode 100755
index 5cc1136..0000000
--- a/Hooks/starship/pre.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-fedora() {
- rootdo dnf -y copr enable chronoscrat/starship
- rootdo dnf install -y starship
-}
-
-debian() {
- rootdo apt install -y starship
-}
-
-ubuntu() {
- debian
-}
-
-steamos() {
- rootdo pacman -S --noconfirm starship
-}
diff --git a/Hooks/terraform/pre.sh b/Hooks/terraform/pre.sh
deleted file mode 100755
index 4a5a019..0000000
--- a/Hooks/terraform/pre.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-fedora() {
- rootdo dnf config-manager addrepo --from-repofile https://rpm.releases.hashicorp.com/$ID/hashicorp.repo
- rootdo dnf update
- rootdo dnf install -y terraform
-}
diff --git a/Hooks/tmux/pre.sh b/Hooks/tmux/pre.sh
deleted file mode 100755
index 5374985..0000000
--- a/Hooks/tmux/pre.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-steamos() {
- rootdo pacman -S --noconfirm tmux
-}
-
-fedora() {
- rootdo dnf install -y tmux
-}
diff --git a/Hooks/trivy/pre.sh b/Hooks/trivy/pre.sh
deleted file mode 100755
index 00a8a3a..0000000
--- a/Hooks/trivy/pre.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-macos() {
- brew install trivy
-}
-
-linux() {
- LATEST_VERSION=$(github_latest_tag "aquasecurity/trivy")
- VERSION=${TRIVY_VERSION:=$LATEST_VERSION}
- FILENAME="trivy_${VERSION}_Linux-64bit.tar.gz"
- curl -sL https://github.com/aquasecurity/trivy/releases/download/v${VERSION}/${FILENAME} | tar -xz
- install -m "0755" ./trivy ~/.local/bin/
- install -d ~/.local/share/trivy/templates/
- install contrib/*.tpl ~/.local/share/trivy/templates/
-}
diff --git a/Hooks/tuckr/pre.sh b/Hooks/tuckr/pre.sh
deleted file mode 100755
index 88524c1..0000000
--- a/Hooks/tuckr/pre.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-linux() {
- if [ ! -f $HOME/.local/bin/tuckr ]; then
- ln -s $(realpath ../../bin/$(uname -s)/$(uname -m)/tuckr) $HOME/.local/bin/tuckr
- else
- echo "link to tuckr in $HOME/.local/bin/tuckr already exists!"
- fi
-
-}
diff --git a/Hooks/ty/pre.sh b/Hooks/ty/pre.sh
deleted file mode 100755
index 443cf3f..0000000
--- a/Hooks/ty/pre.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-generic() {
- uv_install ty
-}
diff --git a/Hooks/uv/pre.sh b/Hooks/uv/pre.sh
deleted file mode 100755
index f7e6271..0000000
--- a/Hooks/uv/pre.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-
-generic() {
- curl -LsSf https://astral.sh/uv/install.sh | sh
-}
diff --git a/Hooks/watchexec/pre.sh b/Hooks/watchexec/pre.sh
deleted file mode 100755
index 47a0794..0000000
--- a/Hooks/watchexec/pre.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-
-fedora() {
- has "curl"
- has "tar"
-
- LATEST_VERSION=$(github_latest_tag "watchexec/watchexec")
- VERSION=${WATCHEXEC_VERSION:=$LATEST_VERSION}
- FILENAME="watchexec-${version}-$(uname -m)-unknown-linux-gnu.rpm"
- curl -fOL "https://github.com/watchexec/watchexec/releases/download/v${VERSION}/${FILENAME}"
- rootdo dnf install -y ${FILENAME}
-}
-
-debian() {
- LATEST_VERSION=$(github_latest_tag "watchexec/watchexec")
- VERSION=${WATCHEXEC_VERSION:=$LATEST_VERSION}
- FILENAME="watchexec-${version}-$(uname -m)-unknown-linux-gnu.deb"
- curl -fOL "https://github.com/watchexec/watchexec/releases/download/v${VERSION}/${FILENAME}"
- rootdo apt install -y ${FILENAME}
-}
diff --git a/Hooks/youtube-dl/pre.sh b/Hooks/youtube-dl/pre.sh
deleted file mode 100755
index e5c7429..0000000
--- a/Hooks/youtube-dl/pre.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-
-steamos() {
- rootdo pacman -S --noconfirm yt-dlp
-}
diff --git a/Hooks/zsh/pre.sh b/Hooks/zsh/pre.sh
deleted file mode 100755
index c777722..0000000
--- a/Hooks/zsh/pre.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-
-. ../../lib/lib.sh
-
-fedora() {
- rootdo dnf install -y zsh
-
- # Support .zshrc.d/ organisation
- add_line_to_file "source ~/.zshrc-custom" ~/.zshrc
- mkdir -p ~/.zshrc.d/ || true
-
-}
-
-debian() {
- rootdo apt install -y zsh
-
- # Support .zshrc.d/ organisation
- add_line_to_file "source ~/.zshrc-custom" ~/.zshrc
- mkdir -p ~/.zshrc.d/ || true
-}
-
-ubuntu() {
- debian
-}
diff --git a/bin/Linux/x86_64/tuckr b/bin/Linux/x86_64/tuckr
deleted file mode 100755
index f1fd00f..0000000
Binary files a/bin/Linux/x86_64/tuckr and /dev/null differ
diff --git a/Configs/emacs/.bashrc.d/emacs.bash b/emacs/config/.bashrc.d/emacs.bash
similarity index 100%
rename from Configs/emacs/.bashrc.d/emacs.bash
rename to emacs/config/.bashrc.d/emacs.bash
diff --git a/Configs/emacs/.emacs.d/early-init.el b/emacs/config/.emacs.d/early-init.el
similarity index 100%
rename from Configs/emacs/.emacs.d/early-init.el
rename to emacs/config/.emacs.d/early-init.el
diff --git a/Configs/emacs/.emacs.d/init.el b/emacs/config/.emacs.d/init.el
similarity index 93%
rename from Configs/emacs/.emacs.d/init.el
rename to emacs/config/.emacs.d/init.el
index d95493b..4f1d742 100644
--- a/Configs/emacs/.emacs.d/init.el
+++ b/emacs/config/.emacs.d/init.el
@@ -310,10 +310,17 @@
)
;; Consolidates project buffers into a tab
-(use-package project-tab-groups
- :ensure t
- :config
- (project-tab-groups-mode 1))
+;;;;(use-package project-tab-groups
+;;;; :ensure t
+;;;; :config
+;;;; (project-tab-groups-mode 1))
+
+(use-package otpp
+ :ensure t
+ :after project
+ :init
+ (otpp-mode 1)
+ (otpp-override-mode 1))
;; Make the tab-bar look more flat, like what's in neovim
@@ -364,9 +371,10 @@
;; Allows auto completion of commands in the command buffer
(use-package ivy
- :ensure t
- :config
+ :ensure t
+ :init
(ivy-mode t)
+ :config
(setq ivy-use-virtual-buffers t)
(setq ivy-count-format "(%d/%d) ")
:bind
@@ -562,17 +570,21 @@
'(company-quickhelp-color-foreground "#DCDCCC")
'(css-indent-offset 4)
'(custom-safe-themes
- '("37768a79b479684b0756dec7c0fc7652082910c37d8863c35b702db3f16000f8" "2dff5f0b44a9e6c8644b2159414af72261e38686072e063aa66ee98a2faecf0e" "3f44e2d33b9deb2da947523e2169031d3707eec0426e78c7b8a646ef773a2077" "aaffceb9b0f539b6ad6becb8e96a04f2140c8faa1de8039a343a4f1e009174fb" "190a9882bef28d7e944aa610aa68fe1ee34ecea6127239178c7ac848754992df" "a4df5d4a4c343b2712a8ed16bc1488807cd71b25e3108e648d4a26b02bc990b3" "8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4" default))
+ '("37768a79b479684b0756dec7c0fc7652082910c37d8863c35b702db3f16000f8"
+ "2dff5f0b44a9e6c8644b2159414af72261e38686072e063aa66ee98a2faecf0e"
+ "3f44e2d33b9deb2da947523e2169031d3707eec0426e78c7b8a646ef773a2077"
+ "aaffceb9b0f539b6ad6becb8e96a04f2140c8faa1de8039a343a4f1e009174fb"
+ "190a9882bef28d7e944aa610aa68fe1ee34ecea6127239178c7ac848754992df"
+ "a4df5d4a4c343b2712a8ed16bc1488807cd71b25e3108e648d4a26b02bc990b3"
+ "8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4" default))
'(js-indent-level 4)
'(newsticker-url-list
- '(("phoronix" "https://www.phoronix.com/phoronix-rss.php" nil nil nil)
- ("hacker news" "https://news.ycombinator.com/rss" nil nil nil)))
- '(package-selected-packages
- '(ace-window ag aggressive-indent all-the-icons-dired color-theme-sanityinc-tomorrow company counsel csv-mode dashboard dired-gitignore dired-subtree docker dockerfile-mode doom-modeline dracula-theme eldoc-box flycheck json-mode just-ts-mode magit makefile-executor markdown-mode material-theme move-text project-tab-groups python-mode restclient spacemacs-theme terraform-mode vim-tab-bar web-mode x509-mode yaml-mode yasnippet))
+ '(("phoronix" "https://www.phoronix.com/phoronix-rss.php" nil nil nil)
+ ("hacker news" "https://news.ycombinator.com/rss" nil nil nil)))
+ '(package-selected-packages nil)
'(pdf-view-midnight-colors '("#DCDCCC" . "#383838"))
'(safe-local-variable-values '((just-ts-indent-offset . 4)))
'(sgml-basic-offset 4)
-
'(warning-suppress-types '((comp))))
(custom-set-faces
;; custom-set-faces was added by Custom.
diff --git a/Configs/emacs/.emacs.d/snippets/csharp-mode/xml-summary.yas b/emacs/config/.emacs.d/snippets/csharp-mode/xml-summary.yas
similarity index 100%
rename from Configs/emacs/.emacs.d/snippets/csharp-mode/xml-summary.yas
rename to emacs/config/.emacs.d/snippets/csharp-mode/xml-summary.yas
diff --git a/Configs/emacs/.emacs.d/snippets/python-mode/block-comment.yas b/emacs/config/.emacs.d/snippets/python-mode/block-comment.yas
similarity index 100%
rename from Configs/emacs/.emacs.d/snippets/python-mode/block-comment.yas
rename to emacs/config/.emacs.d/snippets/python-mode/block-comment.yas
diff --git a/Configs/emacs/.emacs.d/snippets/python-mode/future-annotations.yas b/emacs/config/.emacs.d/snippets/python-mode/future-annotations.yas
similarity index 100%
rename from Configs/emacs/.emacs.d/snippets/python-mode/future-annotations.yas
rename to emacs/config/.emacs.d/snippets/python-mode/future-annotations.yas
diff --git a/Configs/emacs/.emacs.d/snippets/python-mode/logger.yas b/emacs/config/.emacs.d/snippets/python-mode/logger.yas
similarity index 100%
rename from Configs/emacs/.emacs.d/snippets/python-mode/logger.yas
rename to emacs/config/.emacs.d/snippets/python-mode/logger.yas
diff --git a/Configs/emacs/.emacs.d/snippets/python-mode/tdd-comment.yas b/emacs/config/.emacs.d/snippets/python-mode/tdd-comment.yas
similarity index 100%
rename from Configs/emacs/.emacs.d/snippets/python-mode/tdd-comment.yas
rename to emacs/config/.emacs.d/snippets/python-mode/tdd-comment.yas
diff --git a/Configs/emacs_wsl/.bashrc.d/emacs_wsl.bash b/emacs/config_wsl/.bashrc.d/emacs_wsl.bash
similarity index 100%
rename from Configs/emacs_wsl/.bashrc.d/emacs_wsl.bash
rename to emacs/config_wsl/.bashrc.d/emacs_wsl.bash
diff --git a/emacs/config_wsl/.config/gtk-3.0/gtk.css b/emacs/config_wsl/.config/gtk-3.0/gtk.css
new file mode 100644
index 0000000..1ef7edb
--- /dev/null
+++ b/emacs/config_wsl/.config/gtk-3.0/gtk.css
@@ -0,0 +1,45 @@
+/* Place in ~/.config/gtk-3.0/gtk.css */
+
+/* Inspired by: https://ogbe.net/blog/gnome_titles */
+/* shrink headerbars (don't forget semicolons after each property) */
+headerbar {
+ min-height: 0px;
+ padding-left: 2px; /* same as childrens vertical margins for nicer proportions */
+ padding-right: 2px;
+ background-color: #2d2d2d;
+ font-size: 10px;
+ font-weight: normal;
+ font-weight: lighter;
+}
+
+headerbar entry,
+headerbar spinbutton,
+headerbar button,
+headerbar separator {
+ margin-top: 0px; /* same as headerbar side padding for nicer proportions */
+ margin-bottom: 0px;
+}
+
+/* shrink ssd titlebars */
+.default-decoration {
+ min-height: 0; /* let the entry and button drive the titlebar size */
+ padding: 3px;
+ background-color: #2d2d2d;
+}
+
+.default-decoration .titlebutton {
+ min-height: 0px; /* tweak these two props to reduce button size */
+ min-width: 0px;
+}
+
+window.ssd headerbar.titlebar {
+ padding-top: 3px;
+ padding-bottom: 3px;
+ min-height: 0;
+}
+
+window.ssd headerbar.titlebar button.titlebutton {
+ padding-top: 3px;
+ padding-bottom:3px;
+ min-height: 0;
+}
diff --git a/Hooks/emacs/pre.sh b/emacs/hooks/pre.sh
similarity index 96%
rename from Hooks/emacs/pre.sh
rename to emacs/hooks/pre.sh
index 8664d91..cdb6cf3 100755
--- a/Hooks/emacs/pre.sh
+++ b/emacs/hooks/pre.sh
@@ -1,6 +1,5 @@
#!/bin/sh
-. ../../lib/lib.sh
fedora() {
installs="emacs-pgtk aspell aspell-en"
diff --git a/install.sh b/install.sh
deleted file mode 100755
index eaaae83..0000000
--- a/install.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-
-CLONE_URL=${CLONE_URL:="https://github.com/vasdee/dotfiles.git"}
-LOCAL_CLONE_PATH=${LOCAL_CLONE_PATH:=~/.config/dotfiles}
-DOTFILES_TAG=""
-LOCAL_BIN="$HOME/.local/bin"
-
-echo "Starting dotfile install"
-
-echo "Cloning $CLONE_URL to $CLONE_DIR"
-mkdir -p $LOCAL_CLONE_PATH $LOCAL_BIN
-
-GIT_OPTIONS=""
-if [ -n "${DOTFILES_TAG}" ]; then
- GIT_OPTIONS="--branch $DOTFILES_TAG"
-fi
-git clone $GIT_OPTIONS $CLONE_URL $LOCAL_CLONE_PATH
-
-echo "linking tuckr to ~/.local/bin/tuckr - make sure this is set in your path or run bash or zsh hooks"
-ln -s $LOCAL_CLONE_PATH/bin/$(uname -s)/$(uname -m)/tuckr ~/.local/bin/tuckr
-
-# Add the path temporarily
-export PATH=$LOCAL_BIN:$PATH
-
-echo "Finished install!"
-echo "$HOME/.local/bin has been added to PATH for the current session only."
-echo "Consider adding ~/.local/bin permanently to your PATH or; "
-echo "run tuckr set bash ( or zsh ) to get it linked in for you now"
diff --git a/lib/lib.sh b/lib/lib.sh
deleted file mode 100644
index 77a76df..0000000
--- a/lib/lib.sh
+++ /dev/null
@@ -1,164 +0,0 @@
-# $1 - line to conditionally add
-# $2 - file path to add
-add_line_to_file() {
- mkdir -p $(dirname $2)
- touch $2
- if ! grep -q "${1}" ${2}; then
- echo "${1}" >> ${2}
- echo "Added ${1} to ${2}"
- else
- echo "$1 already exists in ${2}....skipping"
- fi
-}
-
-# $1 name or path to executable
-has() {
- if command -v $1 &>/dev/null; then
- echo "$1 exists and is executable."
- else
- echo "$1 does not exist or is not executable"
- echo "you might need to run `tuckr set $1` to install it"
- exit 1
- fi
-}
-
-# Checks if a given function $1 exists and executes
-# with remaining parameters
-check_and_exec_function() {
- func_name=$1
- if type $func_name > /dev/null 2>&1; then
- shift 1
- eval $func_name $*
- fi
-}
-
-# This helper function can be used for installing tools via uv
-# If a corresponding env var of the form $_VERSION exists, then this is assumed to be
-# a version number required for the package. It will be appended to the uv install command via the == syntax
-# $1 name of the tool to install via uv
-uv_install() {
-
- has uv
- PACKAGE=$1
- shift 1
- PACKAGE_UPPERCASE=$(echo "$PACKAGE" | tr '[:lower:]' '[:upper:]' | tr '-' '_')
- PACKAGE_VERSION_VARNAME="${PACKAGE_UPPERCASE}_VERSION"
- PACKAGE_VERSION=$(eval echo "\$$PACKAGE_VERSION_VARNAME")
-
- if [ -n "$PACKAGE_VERSION" ]; then
- PACKAGE="$PACKAGE==$PACKAGE_VERSION"
- fi
- uv tool install --upgrade $PACKAGE $*
-}
-
-# Removes a package via a uv tool install
-uv_uninstall() {
- uv tool uninstall $@
-}
-
-# Install a package via npm.
-# You should ensure that the nodejs hook has been run previously, otherwise packages will be
-# installed to non-shell aware locations
-# $1 name of the package
-npm_install() {
- has npm
- PACKAGE=$1
- shift 1
- PACKAGE_UPPERCASE=$(echo "$PACKAGE" | tr '[:lower:]' '[:upper:]' | tr '-' '_')
- PACKAGE_VERSION_VARNAME="${PACKAGE_UPPERCASE}_VERSION"
- PACKAGE_VERSION=$(eval echo "\$$PACKAGE_VERSION_VARNAME")
-
- if [ -n "$PACKAGE_VERSION" ]; then
- PACKAGE="${PACKAGE}@${PACKAGE_VERSION}"
- fi
- npm install --global $PACKAGE $*
-}
-
-# Removes a managed package via npm
-npm_uninstall() {
- npm uninstall --global $@
-}
-
-# Gets the latest github tag from a given repo
-# Note: this function removes any optional v prefix of the tag, which seems to be a github convention
-# $1 repo path
-github_latest_tag() {
- echo $(curl -sL https://api.github.com/repos/${1}/releases/latest | jq -r | grep '"tag_name":' | sed -E 's/.*"v?([^"]+)".*/\1/')
-}
-
-# Gets the latest tag for a given gitlab repository
-# Note: this function removes any optional v prefix of the tag, which seems to be a github convention
-# $1 project name or id
-gitlab_latest_tag() {
- echo $(curl -sL https://gitlab.com/api/v4/projects/${1}/releases?per_page=1 | jq -r | grep '"tag_name":' | sed -E 's/.*"v?([^"]+)".*/\1/')
-}
-
-
-# A wrapper function for elevating to sudo if required.
-# This function helps during container builds, as usually the container runs as root and sudo isn't installed.
-# This negates the need to add sudo, but must be run as root now
-rootdo() {
- # If this is not run as an elevated user, then attempt to run the entire script again as sudo
- if [ "$(id -u)" -ne 0 ]; then
- sudo $@
- else
- $@
- fi
-}
-
-
-# Generic install script for installing per OS_ID based on the above global
-# variables that determine cross platform OS infomation
-#
-# *_install functions are considered hooks, and should be developed per pre.sh or post.sh script as
-# required
-run() {
-
- echo "Running $SCRIPT_ACTION hook for $SCRIPT_GROUP on ${OS_TYPE}/${OS_ID}($OS_ARCH)"
-
- TMP_DIR=$(mktemp -d)
- cd ${TMP_DIR}
- case "$OS_TYPE" in
- Linux)
- # Run the specific OS installers before the general purpose linux one
- check_and_exec_function ${OS_ID}
-
- check_and_exec_function linux
- ;;
- Darwin)
- check_and_exec_function macos
- ;;
- *)
- echo "Not a supported OS"
- exit 1
- ;;
- esac
-
- # perhaps there's a generic install for all operating systems. Eg uv
- check_and_exec_function generic
-
- # clean up the tempdir
- rm -rf ${TMP_DIR}
-}
-
-# Get the script name
-SCRIPT_ACTION=$(basename "$0" ".sh")
-SCRIPT_GROUP=$(basename "$(dirname "$0")")
-
-# Some global variables tha will be useful for performing actions based on specific flavours of linux / osx
-OS_TYPE=$(uname -s)
-OS_ID=""
-OS_VERSION_ID=""
-OS_ARCH=$(uname -m)
-
-if [ ${OS_TYPE} = "Linux" ]; then
- . /etc/os-release
- OS_ID=${ID}
- OS_VERSION_ID=${VERSION_ID}
-
-elif [ ${OS_TYPE} = "Darwin" ]; then
- OS_ID=$(sw_vers -productName)
- OS_VERSION_ID=$(sw_vers -productVersion)
-fi
-
-trap run EXIT
diff --git a/readme.md b/readme.md
index 199aa5c..1f1efbe 100644
--- a/readme.md
+++ b/readme.md
@@ -1,423 +1,7 @@
-# Dotfiles
+# dotfiles (using caifs)
-
+My personal supplemental dotfiles using (caifs)
-Dotfiles and general purpose installers for various flavours of linux (and macos).
+It is basically a personal emacs configuration, as everything is standard in https://github.com/caifs-org/caifs-common
-Uses [tuckr](https://github.com/RaphGL/Tuckr) under the hood to provide the symlinking and pre/post/hook running
-Currently Fedora/RHEL, Debian/Ubuntu and SteamOS are supported
-
-It has cross platform support, so volunteers who want to add OSX support are welcome to contribute to that side of
-things.
-
-## Why would you use this?
-
-* Because you can't remember where that work proxy certificate needs to be before you call that update-ca command you
- can't remember either...
-* Because you can't remember how to officially install docker within your chosen distro, then change it for container
- builds...
-* Because you aren't sure if you should install pre-commit manually via your package manager or some other way...
-* Because you want to consistently install software locally and in pipelines or docker builds...
-* Because you gaslit yourself with the average notes you left yourself last time you did this...
-
-## Install
-
-Yolo it onto your system via a single command
-
-``` bash
-curl -sL https://raw.githubusercontent.com/vasdee/dotfiles/install.sh | sh
-```
-
-Or run the guts of the install manually
-
-```bash
-CLONE_URL=https://github.com/vasdee/dotfiles.git
-CLONE_DIR=~/.config/dotfiles
-mkdir -p $CLONE_DIR
-git clone $CLONE_URL $CLONE_DIR
-cd $CLONE_DIR
-ln -s $PWD/bin/$(uname -s)/$(uname -m)/tuckr ~/.local/bin/tuckr
-```
-
-## Some opinionated notes
-
-## ~/.localsettings
-
-There is nothing stopping you from using multiple `tuckr` profiles and running things like
-`tuckr -p mydots my-emacs-config` alongside this dotfiles repo. However, for those small configuration choices where
-another fullblown dotfile repo isn't required, then you can use the `~/.localsettings` to provide whatever variable
-customisations you require.
-
-Currently it holds the `DEFAULT_CODE_DIR` and `git` usernames and emails for work/private configurations.
-
-## Shell directories
-
-Where possible, `config.d` practices are adopted for including separate config files. This is generally a good practice
-everywhere, as it allows your most "top-most" config file, say `~/.bashrc`, `~/.zshrc` or `~/.ssh/config` to not be
-manipulated by this library. Often a default is provided by your distro of choice, or you may version control your own
-dot file. Either way, this library will avoid touching these files when possible and support the use of `config.d` style
-includes, which provide minimal impact to your top-most config files.
-
-> [!TIP]
-> each group that sets a config file in either `~/.bashrc.d/` or `~/.zshrc.d` will use the practice of using the group
-> name of the thing being installed as the config file name.
-> E.g. `tuckr add starship` will add a `~/.bashrc.d/starship.bash` config file via symlink
-
-## Git'isms and DEFAULT_CODE_DIR
-
-The git config provided prompts for a `DEFAULT_CODE_DIR` location, which is typically a directory where all your repos
-get cloned to. You do clone all your repos to a single directory right? And not to the desktop and all over the place??
-
-This git config takes it a step further and separates "work" from "private" locations and includes username and email
-credentials based on this structure.
-
-For example, if you take the default `DEFAULT_CODE_DIR=~/code` setting. Then this gitconfig will assume all your 'work'
-repos sit under `~/code/work` and similarly all your private repos are under `~/code/private`.
-
-To take it another step further, the gitconfig supplied offers some nice function aliases to provide further
-organisation.
-
-`git clone-private` and `git clone-work` will clone the supplied repository, with the full path, under the respective
-`~/code/private` and `~/code/work` directories.
-
-For example, running the following on this repo (which is where the installer will put it by default)
-
-```bash
-git clone-private https://github.com/vasdee/dotfiles.git
-
-```
-
-Will result in the `dotfiles` repo being located at `~/code/private/github.com/vasdee/dotfiles`
-
-Is it a bit java and dotnetty namespace looking? Kinda. Does it make things easier when you are dealing with a lot of
-enterprise level repositories scattered all over the place? Absolutely!
-
-To make it even easier to navigate, if you are using `bash` or `zsh` via this repo, you will get a nice interactive
-navigator via the alias, `gitchooser`
-
-> [!NOTE]
-> The git group prompts during the run of tuckr set git for the variables to populate localsettings
-> You can always manually edit this file
-
-## Passwords
-
-I like using a `~/.netrc` file as my single source of truth for credential management. Others might not, but either
-way I like to keep the contents of that file within a dedicated password manager, rather than keep it within these dots,
-which is an option with `tuckr`
-
-## Supported installs
-
-| Software group | Description |
-|:---------------------|:------------------------------------------------------------------------------------|
-| azure-cli | Official Azure CLI |
-| awscli | Official AWS CLI |
-| docker | Docker community edition engine & CLI tooling |
-| docker-cli | Docker CE CLI tooling only, no engine install |
-| uv | Python dependency management |
-| ruff | extremely fast linter for python |
-| just | a command runner, inspired by make but much better |
-| starship | a terminal prompt prettier, written in rust |
-| ripgrep | A faster, enhanced version of grep. Often integrated into editors |
-| nvm | manage multiple node versions |
-| pre-commit | run checks and validation before committing to git |
-| poetry | a perfectly fine python project management tool, but deprecated in favour of uv now |
-| trivy | container image scanning tool |
-| bash | some nice, minimal configuration for bash shells |
-| zsh | some nice, minimal configuration for zsh shells |
-| lazydocker | tui for managing local docker containers |
-| gitu | TUI for git interaction, based on magit |
-| editorConfig | default editor configurations for maintaining consistency between teams |
-| direnv | manage environment variables per directory |
-| git | some nice configuration specifically for work |
-| oras | CLI tool for interfacing with OCI objects |
-| bump-my-version | CLI for applying semver practices to git repos |
-| cruft | CookieCutter template manager |
-| ansible | Configuration automation tool for |
-| dive | TUI tool for inspecting docker images |
-| pandoc | Markup conversion tool |
-| watchexec | monitor file changes and run commands |
-| glab | gitlab CLI tool for interacting with gitlab apis |
-| pyright | M$ Python Language server |
-| basedpyright | A based version of the pyright lang server with saner defaults |
-| rumdl | A modern Markdown linter and formatter, built for speed with Rust |
-| nodejs | Javascript runtime (mainly used for managing packages via this tool) see NVM |
-| ty | An extremely fast python type checker and language server from astral |
-| bash-language-server | LSP server for bash and sh |
-| just-lsp | LSP server for Just |
-| tmux | A terminal multiplexer |
-| fd | fd is a fast find alternative written in rust |
-| fzf | fast fuzzy finder utility |
-| shellcheck | a static analysis tool for shell scripts |
-| delta | a syntax-highlighting pager for git, diff, and grep output |
-| | |
-
-> [!TIP]
-> All can be installed and configured via `tuckr set `
-
-## Notes on Install
-
-Some of the installs might prompt or include some extras that you did not know about. Anything of note
-is detailed below.
-
-### Installing specific versions
-
-While the most common use case for these dots if or bootstrapping a local dev machine, there is a potential use case for
-using these dot installers within a container build.
-
-For local dev, it is usually perfectly fine to install the latest of whatever software you are installing, and that is
-why it is the default. For those odd times where you require a specific version of a piece of software, then _most_ of
-the installs support installing a specific version via supplying an env var of the form `$_VERSION`
-
-For example, the following will attempt to install `poetry` version 1.8.2, in this case via `uv`
-
-`POETRY_VERSION=1.8.2 tuckr set poetry`
-
-### Docker community edition
-
-Installs docker engine, cli and all the bits and pieces required for docker development.
-
-The docker install occurs via the recommended way via
-
-`tuckr set docker`
-
-If you want just the CLI tooling for docker, minus the engine - particularly useful in docker pipeline builds,
-then the docker-cli target is an alternative.
-
-### Install uv
-
-Installing uv is a requirement for other tools, such as pre-commit, ruff, poetry and just.
-
-The install occurs via the currently recommended way on
-
-`tuckr set uv`
-
-### Various UV tools
-
-Tools like pre-commit, just, ruff, ansible etc which can be installed via the `uv tool install`.
-
-This is considered best practice for non system wide installs and hence is the preferred method when available
-
-> [!Note]
-> Once tools are installed this way, be sure to periodically update them via_ `uv tool update`
-> or by running the _set_ hook again for that group.
-
-### editorConfig
-
-A root level editorConfig is supplied and will be installed in `$DEFAULT_CODE_DIR`
-
-> [!IMPORTANT]
-> In order for this root revel editorConfig to take effect, any custom editorConfigs within your
-> repo ( or other locations ) should set `root = false` in order for these defaults to be discovered.
-> The most simplest form of this is to add a blank `.editorconfig` into your repo
-
-### Shells BASH and ZSH
-
-Both can be installed and basically configured via their respective groups `bash` and `zsh`
-
-Other tools that require bash or zsh integration manage their own configuration for the shells, for instance
-`starship`. In order to keep this consistent, the generally well accepted practice of organsing your custom
-import shell scripts under a specifc directory is adopted and setup during the first run
-
-For bash, custom scripts should be placed in `~/.bashrc.d/` while for zsh, it is `~/.zshrc.d/`
-
-Some distributions already adopt this practice, in which case nothing else needs to be done. For those that don't,
-the addition is contained with a `.bashrc-custom` or `.zshrc-custom` file and the source line is automatically appended
-to `.bashrc` or `.zshrc`.
-
-### Git config
-
-On the off chance you want to work with work and personal accounts on the same machine, provisions have been made to
-cater for both configs.
-
-This repository assumes that you will use the `git clone-work` or `git clone-private` alias to clone ALL repositories,
-both personal and work related. This will make organising mostly straight forward as _most_ people will use github.com
-for personal and gitlab.com for work related.
-
-### Global gitignore
-
-The git hook also downloads and consolidates common `.gitignore` rules into `$HOME/.config/git/ignore`
-
-The list comes from and the currently consolidated ones can be added to within the
-[Hooks/git/post.sh](Hooks/git/post.sh) hook script
-
-> [!NOTE]
-> The global ignore can always be tailored to suit a per-project `.gitignore` by negating a rule
-> using the ! operator
-
-### Pandoc
-
-Gitlab and Github both use extensions to markdown that are not 100% compatible.
-
-Unless you want to jump back and forth between the online Gitlab markdown editor, you can also get a decent
-representation via using `pandoc`
-
-Installing `pandoc` will also install the github html rendering template, which is much better than stock standard.
-
-For a "good enough" local verification of a readme file that will render in Gitlab, you can run the following.
-
-```shell
-pandoc \
- --metadata=title=markdown \
- --template=GitHub.html5 \
- --from gfm \
- --to html5 \
- --mathjax \
- --highlight-style=pygments \
- --standalone \
- -o preview.html
- readme.md
-```
-
-which is also provided as an alias, provided you have installed the bash or zsh group previously:
-
-```shell
-pandoc-preview readme.md
-```
-
-For bonus points, you can also run `watchexec` and have the preview.html auto-reload in your browser
-
-```shell
-watchexec readme.md pandoc-preview readme.md
-```
-
-### Ruff
-
-A global `ruff.toml` file is provided within `~/.config/ruff/ruff.toml` which contains some commonly accepted standards.
-
-Consider extending the global file when developing in order to not have to duplicate the same settings across projects.
-
-An example project level `pyproject.toml`
-
-``` toml
-[tool.ruff]
-# Extend the `pyproject.toml` file in the user config directory...
-extend = "~/.config/ruff/pyproject.toml"
-```
-
-OR
-
-An example project level `ruff.toml`
-
-``` toml
-# Extend the `ruff.toml` file in the user config directory...
-extend = "~/.config/ruff/ruff.toml"
-
-# ...but use a different line length.
-line-length = 100
-```
-
-See here for more information on the limits of how this config file discovery works
-
-
-
-### Rumdl
-
-Rumdl is a fast markdown linter and LSP server. It is backwards compatible with `markdownlint`, aka `mdl`.
-
-A global `rumdl.toml` is provided as part of the install. Unlike ruff, it cannot be extended in a per-project basis, so
-it might not be as useful.
-
-A potential pattern for using `rumdl` within `pre-commit` checks in a pipeline for instance, is to install the `rumdl`
-config during the pipeline
-
-### Emacs
-
-Run these after first boot of emacs `M-x all-the-icons-install ` and `M-x nerd-icons-install `
-
-## Usage within docker builds
-
-``` dockerfile
-FROM debian:trixie as build
-
-RUN curl -sL https://raw.githubusercontent.com/vasdee/dotfiles/install.sh | bash && \
- tuckr set uv pre-commit ruff
-
-FROM debian:trixe as run
-
-RUN cp --from build
-
-```
-
-## Adding new Hooks and Configs
-
-For anything that requires more than just a config file, use the hooks features to provide installs.
-
-`lib/lib.sh` will give you a good starting point for how to structure installs based on the linux distro or osx
-
-Before adding anything extra into the basics group, consider if it is truly required. Otherwise make it optional in its
-own group
-
-If root privileges are required for any installs, rather than specifying `sudo`, considering using the provided function
-`rootdo`, which will check if the current user is root, and run the command with or without sudo depending on the user.
-
-This is very useful particularly when using it within dockerfiles, which typically are built with root
-
-The following is the list of supported hooks that can be used for installing software. The name of the hook is
-based on the `ID` field from `/etc/os-release` on linux, or `sw_vers -productName` on MacOS
-
-`fedora() {}` - fedora specific install, using dnf for example
-
-`debian() {}` - debian specific install, using apt for example
-
-`ubuntu() {}` - ubuntu specific install, often this can just call `debian`
-
-`steamos() {}` - steam os specific install, which is built on arch
-
-`macos() {}` - macos specific install hook. Could use brew install if required
-
-`linux() {}` - a linux installer, useful for things that might use a pre-compiled linux binary for instance
-
-`generic() {}` - a generic installer hook, when doing curl-sudo-pipe-bash installs or perhaps when using `uv tool` as
-the install target
-
-If using `uv tool` to install software, a convenience function is provided that will ensure `uv` is installed.
-
-```bash
-uv_install() {
- has uv
- ...
- uv tool install $*
-}
-```
-
-> [!NOTE]
-> The `uv tool` install also respects package versions, which can be set via `$_VERSION`
-> For example, `RUFF_VERSION=1.0.0 tuckr set ruff` will install the equivalent of `uv tool install ruff==1.0.0`
-
-If using `npm` to install software, then a convenience function is provided that will ensure `npm` is installed and
-packages end up on the standard `~/.local/` prefix
-
-``` bash
-npm_install() {
- has npm
- ...
- npm install --global ...
-}
-```
-
-> [!NOTE]
-> The `npm install --global` install also respects package versions, which can be set via `$_VERSION`
-> For example, `BASH_LANGUAGE_SERVER_VERSION=1.0.0 tuckr set bash-language-server` will install the equivalent of
-> `npm install --global bash-language-server@1.0.0`
-
-For `npm` and `uv` based installs, an equivalent of `npm_uninstall` and `uv_uninstall` exists to be used within removal
-scripts.
-
-## lib.sh functions
-
-There are some handy functions included in [lib/lib.sh](lib/lib.sh) that are worth exploring but included here as well
-
-## Updating local tuckr as new version emerge
-
-Will differ depending on OS flavour, but the general gist is to have cargo installed and build tuckr.
-
-This then gets copied to the appropriate bin location
-
-```text
-sudo dnf install cargo
-cargo install tuckr
-mv ~/.cargo/bin/tuckr ~/.config/dotfiles/bin/$(uname -s)/$(uname -m)/
-TUCKR_VERSION=$(tuckr --version)
-git commit -m "updated ${TUCKR_VERSION// /-}"
-```