diff --git a/.chezmoiexternal.toml b/.chezmoiexternal.toml
new file mode 100644
index 0000000..a107be7
--- /dev/null
+++ b/.chezmoiexternal.toml
@@ -0,0 +1,45 @@
+["antigen.zsh"]
+ type = "file"
+ url = "https://git.io/antigen"
+ refreshPeriod = "168h"
+
+[".local/share/fonts/meslolgs-nf-regular.ttf"]
+ type = "file"
+ url = "https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf"
+ refreshPeriod = "168h"
+
+[".local/share/fonts/meslolgs-nf-bold.ttf"]
+ type = "file"
+ url = "https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf"
+ refreshPeriod = "168h"
+
+[".local/share/fonts/meslolgs-nf-italic.ttf"]
+ type = "file"
+ url = "https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf"
+ refreshPeriod = "168h"
+
+[".local/share/fonts/meslolgs-nf-bold-italic.ttf"]
+ type = "file"
+ url = "https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf"
+ refreshPeriod = "168h"
+
+# [".local/share/fonts/fira-code-bold.ttf"]
+# type = "file"
+# url = "https://github.com/tonsky/FiraCode/releases/download/6.2/Fira_Code_v6.2.zip"
+# [".local/share/fonts/fira-code-bold.ttf".filter]
+# command = "unzip"
+# args = ["-p", "/dev/stdin", "ttf/FiraCode-Bold.ttf"]
+
+# [".local/share/fonts/fira-code-medium.ttf"]
+# type = "file"
+# url = "https://github.com/tonsky/FiraCode/releases/download/6.2/Fira_Code_v6.2.zip"
+# [".local/share/fonts/fira-code-medium.ttf".filter]
+# command = "unzip"
+# args = ["-p", "/dev/stdin", "ttf/FiraCode-Medium.ttf"]
+
+# [".local/share/fonts/fira-code-regular.ttf"]
+# type = "file"
+# url = "https://github.com/tonsky/FiraCode/releases/download/6.2/Fira_Code_v6.2.zip"
+# [".local/share/fonts/fira-code-regular.ttf".filter]
+# command = "unzip"
+# args = ["-p", "/dev/stdin", "ttf/FiraCode-Regular.ttf"]
diff --git a/dot_aliases b/dot_aliases
deleted file mode 100644
index 9951889..0000000
--- a/dot_aliases
+++ /dev/null
@@ -1,30 +0,0 @@
-# Only create aliases if the underlying programs are available
-# This allows portability between machines in different states
-alias_if_exists () {
- ALIAS=${1}
- COMMAND=${2}
- ARGS=${3}
- if [ $(command -v $COMMAND) ]; then
- if [ -n "$ARGS" ]; then
- alias $ALIAS="$COMMAND $ARGS"
- else
- alias $ALIAS="$COMMAND"
- fi
- fi
-}
-
-# Context-sensitive aliases
-alias_if_exists bat batcat
-alias_if_exists cat bat
-alias_if_exists ls lsd
-
-# Universal aliases
-alias config='git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
-alias please='sudo $(fc -ln -1)'
-alias nrun='__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus="NVIDIA_only"'
-
-# Alias-like functions
-nd () {
- mkdir "$1"
- cd "$1"
-}
diff --git a/dot_aliases.tmpl b/dot_aliases.tmpl
new file mode 100644
index 0000000..ec25204
--- /dev/null
+++ b/dot_aliases.tmpl
@@ -0,0 +1,32 @@
+# Context-sensitive aliases
+{{- if lookPath "batcat" }}
+alias bat=batcat
+{{- end }}
+{{- if or (lookPath "bat") (lookPath "batcat") }}
+alias cat=bat
+{{- end }}
+{{- if lookPath "lsd" }}
+alias ls=lsd
+{{- end }}
+{{- if and (lookPath "codium") (not (lookPath "code")) }}
+alias code=codium
+{{- end }}
+
+# Platform-specific aliases
+{{- if eq .chezmoi.os "darwin" }}
+alias nproc='sysctl -n hw.logicalcpu'
+{{- end }}
+
+# Universal aliases
+alias config='git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
+alias please='sudo $(fc -ln -1)'
+alias nrun='__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia __VK_LAYER_NV_optimus="NVIDIA_only"'
+alias grim='git rebase -i --autosquash $(git_main_branch)'
+alias grid='git rebase -i --autosquash $(git_develop_branch)'
+alias gpub='git push --set-upstream origin $(git rev-parse --abbrev-ref HEAD)'
+
+# Alias-like functions
+nd () {
+ mkdir "$1"
+ cd "$1"
+}
diff --git a/dot_condarc b/dot_condarc
index fab3508..9a57598 100644
--- a/dot_condarc
+++ b/dot_condarc
@@ -1,2 +1,2 @@
auto_activate_base: false
-changeps1: false
+changeps1: true
diff --git a/private_dot_librewolf/.keep b/dot_config/.keep
similarity index 100%
rename from private_dot_librewolf/.keep
rename to dot_config/.keep
diff --git a/dot_config/private_VSCodium/User/settings.json b/dot_config/private_VSCodium/User/settings.json
new file mode 100644
index 0000000..e536218
--- /dev/null
+++ b/dot_config/private_VSCodium/User/settings.json
@@ -0,0 +1,222 @@
+{
+ "breadcrumbs.enabled": true,
+ "editor.bracketPairColorization.enabled": true,
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
+ "editor.guides.bracketPairs": "active",
+ "editor.inlineSuggest.enabled": true,
+ "editor.linkedEditing": true,
+ "editor.minimap.enabled": false,
+ "editor.quickSuggestions": {
+ "comments": false
+ },
+ "editor.renderWhitespace": "boundary",
+ "editor.rulers": [80, 120],
+ "editor.tabCompletion": "on",
+ "editor.wrappingIndent": "deepIndent",
+ "editor.unicodeHighlight.ambiguousCharacters": false,
+ "extensions.ignoreRecommendations": true,
+ "files.trimFinalNewlines": true,
+ "files.trimTrailingWhitespace": true,
+ "prettier.resolveGlobalModules": true,
+ "workbench.editor.closeOnFileDelete": true,
+ "workbench.editor.enablePreview": false,
+ "workbench.editor.enablePreviewFromQuickOpen": false,
+ "workbench.startupEditor": "none",
+
+ "telemetry.telemetryLevel": "off",
+ "update.mode": "none",
+ "workbench.enableExperiments": false,
+
+ "diffEditor.ignoreTrimWhitespace": false,
+ "git.autofetch": true,
+ "git.confirmSync": false,
+ "git.enableCommitSigning": true,
+ "git.enableSmartCommit": true,
+ "git.inputValidation": "always",
+ "git.inputValidationLength": 75,
+ "git.inputValidationSubjectLength": null,
+
+ "explorer.confirmDelete": false,
+ "explorer.confirmDragAndDrop": false,
+ "files.exclude": {
+ "**/tmp/**": true,
+ "**/node_modules/**": true,
+ "**/.sif": true,
+ "**/.sif.**/**": true,
+ "**/.git/objects/**": true,
+ "**/.git": true,
+ "**/.svn": true,
+ "**/.hg": true,
+ "**/CVS": true,
+ "**/.DS_Store": true
+ },
+ "files.insertFinalNewline": true,
+ "search.smartCase": true,
+ "search.followSymlinks": false,
+ "search.exclude": {
+ "**/node_modules": true,
+ "**/bower_components": true,
+ "**/*.code-search": true,
+ "**/tmp/**": true,
+ "**/dist/**": true,
+ "**/*.sif/**": true,
+ "**/.git/objects/**": true,
+ "**/.git/subtree-cache/**": true
+ },
+ "security.workspace.trust.enabled": false,
+ "files.watcherExclude": {
+ "**/.git/objects/**": true,
+ "**/.git/subtree-cache/**": true,
+ "**/node_modules/*/**": true,
+ "**/.hg/store/**": true,
+ "**/.nextflow/**": true,
+ "**/work/**": true
+ },
+
+ "editor.fontFamily": "Fira Code",
+ "editor.fontLigatures": true,
+ "window.menuBarVisibility": "visible",
+ "window.zoomLevel": -1,
+ "workbench.colorTheme": "Default Dark+",
+ "workbench.iconTheme": "vscode-great-icons",
+
+ "terminal.integrated.allowChords": false,
+ "terminal.integrated.cursorBlinking": true,
+ "terminal.integrated.cursorStyle": "line",
+ "terminal.integrated.defaultProfile.windows": "Cmder",
+ "terminal.integrated.fontFamily": "'MesloLGS NF'",
+ "terminal.integrated.persistentSessionReviveProcess": "never",
+ "terminal.integrated.gpuAcceleration": "off",
+ "terminal.integrated.profiles.windows": {
+ "Cmder": {
+ "path": [
+ "${env:windir}\\Sysnative\\cmd.exe",
+ "${env:windir}\\System32\\cmd.exe"
+ ],
+ "env": {
+ "CMDER_ROOT": "C:\\tools\\Cmder"
+ },
+ "args": ["/k", "%CMDER_ROOT%\\vendor\\bin\\vscode_init.cmd"]
+ },
+ "PowerShell": {
+ "source": "PowerShell",
+ "icon": "terminal-powershell"
+ },
+ "Command Prompt": {
+ "path": [
+ "${env:windir}\\Sysnative\\cmd.exe",
+ "${env:windir}\\System32\\cmd.exe"
+ ],
+ "args": [],
+ "icon": "terminal-cmd"
+ },
+ "Git Bash": {
+ "source": "Git Bash"
+ }
+ },
+ "terminal.integrated.defaultProfile.linux": "zsh",
+ "terminal.integrated.profiles.linux": {
+ "bash": {
+ "path": "bash"
+ },
+ "zsh": {
+ "path": "zsh"
+ },
+ "fish": {
+ "path": "fish"
+ },
+ "tmux": {
+ "path": "tmux",
+ "icon": "terminal-tmux"
+ },
+ "screen": {
+ "path": "screen",
+ "icon": "terminal-tmux"
+ },
+ "pwsh": {
+ "path": "pwsh",
+ "icon": "terminal-powershell"
+ }
+ },
+ "terminal.external.windowsExec": "C:\\Tools\\Cmder\\cmder.exe",
+ "terminal.external.linuxExec": "yakuake",
+
+ "[shellscript]": {
+ "files.eol": "\n",
+ "editor.tabSize": 2,
+ "files.insertFinalNewline": true,
+ "files.trimFinalNewlines": true,
+ "files.trimTrailingWhitespace": true,
+ "editor.rulers": [80, 92, 120]
+ },
+ "shellcheck.customArgs": ["-x"],
+
+ "[html]": {
+ "editor.tabSize": 2
+ },
+
+ "[javascript]": {
+ "editor.tabSize": 2
+ },
+
+ "[json]": {
+ "editor.tabSize": 2
+ },
+
+ "[julia]": {
+ "editor.detectIndentation": false,
+ "editor.insertSpaces": true,
+ "editor.tabSize": 4,
+ "files.insertFinalNewline": true,
+ "files.trimFinalNewlines": true,
+ "files.trimTrailingWhitespace": true,
+ "editor.rulers": [92],
+ "editor.defaultFormatter": "julialang.language-julia"
+ },
+ "julia.enableCrashReporter": false,
+ "julia.enableTelemetry": false,
+ "julia.NumThreads": 8,
+ "julia.symbolCacheDownload": true,
+ "terminal.integrated.commandsToSkipShell": ["language-julia.interrupt"],
+
+ "latex-workshop.view.pdf.viewer": "tab",
+
+ "[markdown]": {
+ "editor.tabSize": 2
+ },
+ "files.associations": {
+ "README": "markdown"
+ },
+ "markdown-preview-github-styles.colorTheme": "light",
+
+ "[nextflow]": {
+ "editor.rulers": [80, 84, 120]
+ },
+
+ "[python]": {
+ "editor.rulers": [72, 79, 99]
+ },
+ "python.formatting.provider": "black",
+ "python.formatting.blackPath": "black",
+
+ "[r]": {
+ "editor.defaultFormatter": "Ikuyadeu.r"
+ },
+
+ "[typescript]": {
+ "editor.tabSize": 2
+ },
+
+ "[yaml]": {
+ "editor.tabSize": 2
+ },
+ "redhat.telemetry.enabled": false,
+
+ "sync.autoDownload": true,
+ "sync.gist": "ac23d90cbe13499f59ed319c101b4b13",
+ "sync.quietSync": true,
+ "workbench.editorAssociations": {
+ "*.pdf": "latex-workshop-pdf-hook"
+ },
+ "terminal.integrated.tabs.title": "${cwdFolder}${separator}${process}"
+ }
diff --git a/dot_config/private_konsolerc b/dot_config/private_konsolerc
new file mode 100644
index 0000000..7f417e8
--- /dev/null
+++ b/dot_config/private_konsolerc
@@ -0,0 +1,9 @@
+[Desktop Entry]
+DefaultProfile=My Default.profile
+
+[MainWindow]
+StatusBar=Disabled
+ToolBarsMovable=Disabled
+
+[UiSettings]
+ColorScheme=Default
diff --git a/dot_config/private_yakuakerc b/dot_config/private_yakuakerc
new file mode 100644
index 0000000..6bdff87
--- /dev/null
+++ b/dot_config/private_yakuakerc
@@ -0,0 +1,16 @@
+[Desktop Entry]
+DefaultProfile=My Default.profile
+
+[Dialogs]
+FirstRun=false
+
+[Shortcuts]
+next-session=Shift+Right; Ctrl+Shift+Tab
+previous-terminal=none
+
+[Window]
+DynamicTabTitles=true
+Height=60
+Screen=1
+ShowSystrayIcon=false
+Width=60
diff --git a/dot_envvar b/dot_envvar
deleted file mode 100644
index 37e1a33..0000000
--- a/dot_envvar
+++ /dev/null
@@ -1,46 +0,0 @@
-# Enable pipx completions
-if [ $(command -v pipx) ]; then
- eval "$(register-python-argcomplete pipx)"
-fi
-
-# Preferred editor for local and remote sessions
-if [ $(command -v nano) ]; then
- export EDITOR=nano
-elif [ $(command -v emacs) ]; then
- export EDITOR='emacs -nw'
-elif [ $(command -v vim) ]; then
- export EDITOR=vim
-fi
-
-if [ $(command -v kate) ]; then
- export VISUAL=kate
-elif [ $(command -v code) ]; then
- export VISUAL=code
-elif [ $(command -v emacs) ]; then
- export VISUAL=emacs
-fi
-
-# Set a cool new pager with color support
-if [[ $(command -v most) ]]; then
- export PAGER=most
-fi
-
-
-# Replace cat with bat
-if [[ $(command -v bat) ]]; then
- export BAT_PAGER="less -RF"
- export MANPAGER="sh -c 'col -bx | bat -l man -p'"
- export MANROFFOPT="-c"
-fi
-
-# Add notification support for long-running processes
-if [[ $(command -v ntfy) ]]; then
- eval "$(ntfy shell-integration --longer-than 30)"
- export AUTO_NTFY_DONE_IGNORE="vim nano emacs kate zshconfig screen tmux ssh top htop less more most nethogs 'singularity shell' julia man"
-fi
-
-# Set the Nextflow enviroment caches
-export NXF_HOME="$HOME/.nextflow"
-export NXF_CONDA_CACHEDIR="$NXF_HOME/conda"
-export NXF_SINGULARITY_CACHEDIR="$NXF_HOME/singularity"
-export NXF_CHARLIECLOUD_CACHEDIR="$NXF_HOME/charlie"
diff --git a/dot_envvar.tmpl b/dot_envvar.tmpl
new file mode 100644
index 0000000..b3a78b0
--- /dev/null
+++ b/dot_envvar.tmpl
@@ -0,0 +1,60 @@
+{{- if lookPath "pipx" }}
+# Enable pipx completions
+eval "$(register-python-argcomplete pipx)"
+{{- end }}
+
+{{- if lookPath "nvim" }}
+# Preferred editor for local and remote sessions
+export EDITOR=nvim
+{{- end }}
+
+{{- if lookPath "kate" }}
+export VISUAL=kate
+{{- else if lookPath "codium" }}
+export VISUAL=codium
+{{- else if lookPath "code" }}
+export VISUAL=code
+{{- end }}
+
+{{- if lookPath "most" }}
+# Set a cool new pager with color support
+export PAGER=most
+{{- end }}
+
+{{- if or (lookPath "bat") (lookPath "catbat") }}
+# Replace cat with bat
+export BAT_PAGER="less -SRF"
+export MANPAGER="sh -c 'col -bx | bat -l man -p'"
+export MANROFFOPT="-c"
+{{- end }}
+
+# Add notification support for long-running processes
+{{- if lookPath "ntfy" }}
+eval "$(ntfy shell-integration --longer-than 30)"
+export AUTO_NTFY_DONE_IGNORE="vim nano emacs kate zshconfig screen tmux ssh top htop less more most nethogs 'singularity shell' julia man glances"
+{{- end }}
+
+# Set the Nextflow enviroment caches
+export NXF_HOME="$HOME/.nextflow"
+{{ if (eq .cluster "scinet") }}
+NXF_CACHE=/90daydata/shared/$USER/.nextflow
+{{ else }}
+NXF_CACHE=$NXF_HOME
+{{ end }}
+export NXF_CONDA_CACHEDIR="$NXF_CACHE/conda"
+export NXF_SINGULARITY_CACHEDIR="$NXF_CACHE/singularity"
+export NXF_CHARLIECLOUD_CACHEDIR="$NXF_CACHE/charlie"
+
+{{ if (eq .cluster "scinet") }}
+# Set the Singularity image cache
+export SINGULARITY_CACHEDIR=/90daydata/shared/$USER/.singularity
+{{ end }}
+
+# Give Julia full CPU access
+export JULIA_NUM_THREADS=$(nproc)
+
+# Make Julia use preinstalled Git
+JULIA_PKG_USE_CLI_GIT=true
+
+# Make NCBI happy
+export NCBI_API_KEY='{{ (bitwarden "item" "NCBI API Key").login.password }}'
diff --git a/dot_hooks b/dot_hooks
deleted file mode 100644
index a7d3a2b..0000000
--- a/dot_hooks
+++ /dev/null
@@ -1,10 +0,0 @@
-if [ -f $HOME/.rbenv/bin/rbenv ]; then
- export PATH="$HOME/.rbenv/bin:$PATH"
- eval "$(rbenv init -)"
- export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"
-fi
-
-if [ $(command -v n) ]; then
- export N_PREFIX=$HOME/.n
- export PATH="$HOME/.n/bin:$PATH"
-fi
diff --git a/dot_hooks.tmpl b/dot_hooks.tmpl
new file mode 100644
index 0000000..71a5e17
--- /dev/null
+++ b/dot_hooks.tmpl
@@ -0,0 +1,39 @@
+# shellcheck shell=sh
+# >>> conda initialize >>>
+# !! Contents within this block are managed by 'conda init' !!
+__conda_setup="$($HOME/miniconda3/bin/conda shell.$SH 'hook' 2> /dev/null)"
+if [ $? -eq 0 ]; then
+ eval "$__conda_setup"
+else
+ if [ -f "$HOME/miniconda3/etc/profile.d/conda.sh" ]; then
+ . "$HOME/miniconda3/etc/profile.d/conda.sh"
+ else
+ export PATH="$HOME/miniconda3/bin:$PATH"
+ fi
+fi
+unset __conda_setup
+
+if [ -f "$HOME/miniconda3/etc/profile.d/mamba.sh" ]; then
+ . "$HOME/miniconda3/etc/profile.d/mamba.sh"
+fi
+# <<< conda initialize <<<
+
+{{- if lookPath "direnv" }}
+eval "$(direnv hook $SH)"
+{{- end }}
+
+if [ -f $HOME/.ion/bin/ion ]; then
+ export PATH="$HOME/.ion/bin/ion:$PATH"
+ export FPATH="$HOME/.ion/completions:$FPATH"
+fi
+
+# Import GNU parallel
+if [ $(command -v env_parallel.$SH) ]; then
+ source $(which env_parallel.$SH)
+fi
+
+{{- if eq .machinetype "workstation" }}
+export GPG_TTY="$(tty)"
+export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
+gpgconf --launch gpg-agent
+{{- end }}
diff --git a/private_dot_librewolf/native-messaging-hosts/.keep b/dot_local/.keep
similarity index 100%
rename from private_dot_librewolf/native-messaging-hosts/.keep
rename to dot_local/.keep
diff --git a/dot_local/share/.keep b/dot_local/share/.keep
new file mode 100644
index 0000000..e69de29
diff --git a/dot_local/share/applications/executable_org.kde.kate.desktop b/dot_local/share/applications/executable_org.kde.kate.desktop
new file mode 100644
index 0000000..8bde499
--- /dev/null
+++ b/dot_local/share/applications/executable_org.kde.kate.desktop
@@ -0,0 +1,197 @@
+[Desktop Action Session eb0a191797624dd3a48fa681d3061212]
+Exec=kate -s master
+Name=master
+
+[Desktop Entry]
+Actions=Session eb0a191797624dd3a48fa681d3061212;
+Categories=Qt;KDE;Utility;TextEditor;
+Comment[en_US]=KDE Advanced Text Editor
+Comment=KDE Advanced Text Editor
+Comment[ar]=كيت محرّر النّصوص المتقدّم
+Comment[ast]=Editor avanzáu de testu de KDE
+Comment[az]=Əlavə KDE mətn redaktoru
+Comment[ca@valencia]=Editor avançat de text pel KDE
+Comment[ca]=Editor avançat de text pel KDE
+Comment[cs]=Pokročilý textový editor pro KDE
+Comment[da]=KDE Avanceret Tekst Editor
+Comment[de]=Erweiterter Texteditor für KDE
+Comment[el]=Προχωρημένος επεξεργαστής κειμένου για το KDE
+Comment[en_GB]=KDE Advanced Text Editor
+Comment[es]=Editor de texto avanzado de KDE
+Comment[et]=KDE täiustatud tekstiredaktor
+Comment[eu]=KDE testu-editore aurreratua
+Comment[fi]=KDE:n kehittynyt tekstimuokkain
+Comment[fr]=Éditeur de texte avancé de KDE
+Comment[gl]=Editor avanzado de textos de KDE
+Comment[he]=עורך טקסט מתקדם של KDE
+Comment[hu]=Speciális szövegszerkesztő
+Comment[ia]=KDE Advanced Text Editor, i.e. Editor avantiate de texto de KDE
+Comment[id]=Pengedit Teks KDE Tingkat Lanjut
+Comment[it]=Editor di testi avanzato di KDE
+Comment[ko]=KDE 고급 텍스트 편집기
+Comment[lt]=Sudėtingesnė KDE rašyklė
+Comment[nb]=Avansert skriveprogram for KDE
+Comment[nl]=KDE geavanceerde tekstbewerker
+Comment[nn]=Avansert skriveprogram for KDE
+Comment[pa]=KDE ਤਕਨੀਕੀ ਟੈਕਸਟ ਐਡੀਟਰ
+Comment[pl]=Rozbudowany edytor tekstu KDE
+Comment[pt]=Editor de Texto Avançado do KDE
+Comment[pt_BR]=Editor de texto avançado do KDE
+Comment[ro]=Redactor de text avansat KDE
+Comment[ru]=Улучшенный текстовый редактор от KDE
+Comment[sk]=KDE pokročilý textový editor
+Comment[sl]=Napreden urejevalnik besedil za KDE
+Comment[sr@ijekavian]=КДЕ‑ов напредни уређивач текста
+Comment[sr@ijekavianlatin]=KDE‑ov napredni uređivač teksta
+Comment[sr@latin]=KDE‑ov napredni uređivač teksta
+Comment[sr]=КДЕ‑ов напредни уређивач текста
+Comment[sv]=KDE avancerad texteditor
+Comment[tg]=Муҳаррири матнии KDE (Васеъшуда)
+Comment[tr]=KDE Gelişmiş Metin Düzenleyici
+Comment[uk]=Потужний текстовий редактор KDE
+Comment[vi]=Trình biên tập văn bản nâng cao của KDE
+Comment[x-test]=xxKDE Advanced Text Editorxx
+Comment[zh_CN]=KDE 高级文本编辑器
+Comment[zh_TW]=KDE 進階文字編輯器
+Exec=kate -s master %U
+GenericName[en_US]=Advanced Text Editor
+GenericName=Advanced Text Editor
+GenericName[ar]=محرّر نصوص متقدّم
+GenericName[ast]=Editor avanzáu de testu
+GenericName[az]=Əlavə mətn redaktoru
+GenericName[bg]=Усъвършенстван текстов редактор
+GenericName[bs]=Napredni uređivač teksta
+GenericName[ca@valencia]=Editor de text avançat
+GenericName[ca]=Editor de text avançat
+GenericName[cs]=Pokročilý textový editor
+GenericName[da]=Avanceret teksteditor
+GenericName[de]=Erweiterter Texteditor
+GenericName[el]=Προχωρημένος επεξεργαστής κειμένου
+GenericName[en_GB]=Advanced Text Editor
+GenericName[es]=Editor de texto avanzado
+GenericName[et]=Täiustatud tekstiredaktor
+GenericName[eu]=Testu-editore aurreratua
+GenericName[fi]=Kehittynyt tekstimuokkain
+GenericName[fr]=Éditeur de texte avancé
+GenericName[ga]=Ardeagarthóir Téacs
+GenericName[gl]=Editor avanzado de textos
+GenericName[he]=עורך טקסט מתקדם
+GenericName[hr]=Napredni uređivač teksta
+GenericName[hu]=Speciális szövegszerkesztő
+GenericName[ia]=Editor avantiate de texto
+GenericName[id]=Pengedit Teks Tingkat Lanjut
+GenericName[is]=Þróaður textaritill
+GenericName[it]=Editor di testi avanzato
+GenericName[ja]=高度なテキストエディタ
+GenericName[kk]=Үздік мәтін редакторы
+GenericName[km]=កម្មវិធីនិពន្ធអត្ថបទកម្រិតខ្ពស់
+GenericName[ko]=고급 텍스트 편집기
+GenericName[lt]=Sudėtingesnis teksto redaktorius
+GenericName[lv]=Jaudīgs teksta redaktors
+GenericName[mr]=प्रगत पाठ्य संपादक
+GenericName[nb]=Avansert skriveprogram
+GenericName[nds]=Verwiedert Texteditor
+GenericName[ne]=उन्नत पाठ सम्पादक
+GenericName[nl]=Geavanceerde teksteditor
+GenericName[nn]=Avansert skriveprogram
+GenericName[pa]=ਤਕਨੀਕੀ ਟੈਕਸਟ ਐਡੀਟਰ
+GenericName[pl]=Rozbudowany edytor tekstu
+GenericName[pt]=Editor de Texto Avançado
+GenericName[pt_BR]=Editor de textos avançado
+GenericName[ro]=Redactor de text avansat
+GenericName[ru]=Улучшенный текстовый редактор
+GenericName[si]=උසස් පෙළ සකසනය
+GenericName[sk]=Pokročilý textový editor
+GenericName[sl]=Napreden urejevalnik besedil
+GenericName[sr@ijekavian]=Напредни уређивач текста
+GenericName[sr@ijekavianlatin]=Napredni uređivač teksta
+GenericName[sr@latin]=Napredni uređivač teksta
+GenericName[sr]=Напредни уређивач текста
+GenericName[sv]=Avancerad texteditor
+GenericName[tg]=Муҳаррири матнӣ (Васеъшуда)
+GenericName[tr]=Gelişmiş Metin Düzenleyici
+GenericName[ug]=ئالىي تېكىست تەھرىرلىگۈچ
+GenericName[uk]=Потужний текстовий редактор
+GenericName[vi]=Trình biên tập văn bản nâng cao
+GenericName[x-test]=xxAdvanced Text Editorxx
+GenericName[zh_CN]=高级文本编辑器
+GenericName[zh_TW]=進階文字編輯器
+Icon=kate
+InitialPreference=9
+MimeType=text/plain;
+Name[en_US]=Kate
+Name=Kate
+Name[ar]=كيت
+Name[ast]=Kate
+Name[az]=Kate
+Name[be]=Kate
+Name[bg]=Kate
+Name[bs]=Kate
+Name[ca@valencia]=Kate
+Name[ca]=Kate
+Name[cs]=Kate
+Name[da]=Kate
+Name[de]=Kate
+Name[el]=Kate
+Name[en_GB]=Kate
+Name[eo]=Kate
+Name[es]=Kate
+Name[et]=Kate
+Name[eu]=Kate
+Name[fi]=Kate
+Name[fr]=Kate
+Name[ga]=Kate
+Name[gl]=Kate
+Name[he]=Kate
+Name[hu]=Kate
+Name[ia]=Kate
+Name[id]=Kate
+Name[it]=Kate
+Name[ja]=Kate
+Name[kk]=Kate
+Name[km]=Kate
+Name[ko]=Kate
+Name[lt]=Kate
+Name[lv]=Kate
+Name[mr]=केट
+Name[ms]=Kate
+Name[nb]=Kate
+Name[nds]=Kate
+Name[ne]=केट
+Name[nl]=Kate
+Name[nn]=Kate
+Name[pa]=ਕੇਟ
+Name[pl]=Kate
+Name[pt]=Kate
+Name[pt_BR]=Kate
+Name[ro]=Kate
+Name[ru]=Kate
+Name[si]=Kate
+Name[sk]=Kate
+Name[sl]=Kate
+Name[sr@ijekavian]=Кејт
+Name[sr@ijekavianlatin]=Kate
+Name[sr@latin]=Kate
+Name[sr]=Кејт
+Name[sv]=Kate
+Name[tg]=Кейт
+Name[tr]=Kate
+Name[ug]=Kate
+Name[uk]=Kate
+Name[vi]=Kate
+Name[wa]=Kate
+Name[x-test]=xxKatexx
+Name[zh_CN]=Kate
+Name[zh_TW]=Kate
+Path=
+StartupNotify=true
+StartupWMClass=kate
+Terminal=false
+TerminalOptions=
+Type=Application
+X-DBUS-ServiceName=org.kde.kate
+X-DBUS-StartupType=multi
+X-DocPath=kate/index.html
+X-KDE-HasTempFileOption=true
+X-KDE-SubstituteUID=false
+X-KDE-Username=
diff --git a/dot_local/share/icons/breeze-dark/places/16/folder-stable.svg b/dot_local/share/icons/breeze-dark/places/16/folder-stable.svg
new file mode 100644
index 0000000..24084b6
--- /dev/null
+++ b/dot_local/share/icons/breeze-dark/places/16/folder-stable.svg
@@ -0,0 +1,40 @@
+
+
+
+
diff --git a/dot_local/share/icons/breeze-dark/places/22/folder-stable.svg b/dot_local/share/icons/breeze-dark/places/22/folder-stable.svg
new file mode 100644
index 0000000..4b6599f
--- /dev/null
+++ b/dot_local/share/icons/breeze-dark/places/22/folder-stable.svg
@@ -0,0 +1,41 @@
+
+
+
+
diff --git a/dot_local/share/icons/breeze-dark/places/32/folder-stable.svg b/dot_local/share/icons/breeze-dark/places/32/folder-stable.svg
new file mode 100644
index 0000000..96f23aa
--- /dev/null
+++ b/dot_local/share/icons/breeze-dark/places/32/folder-stable.svg
@@ -0,0 +1,122 @@
+
+
+
+
diff --git a/dot_local/share/icons/breeze-dark/places/48/folder-stable.svg b/dot_local/share/icons/breeze-dark/places/48/folder-stable.svg
new file mode 100644
index 0000000..10ba115
--- /dev/null
+++ b/dot_local/share/icons/breeze-dark/places/48/folder-stable.svg
@@ -0,0 +1,122 @@
+
+
+
+
diff --git a/dot_local/share/icons/breeze-dark/places/64/folder-stable.svg b/dot_local/share/icons/breeze-dark/places/64/folder-stable.svg
new file mode 100644
index 0000000..c6f1643
--- /dev/null
+++ b/dot_local/share/icons/breeze-dark/places/64/folder-stable.svg
@@ -0,0 +1,122 @@
+
+
+
+
diff --git a/dot_local/share/konsole/.keep b/dot_local/share/konsole/.keep
new file mode 100644
index 0000000..e69de29
diff --git a/dot_local/share/konsole/private_My Default.profile b/dot_local/share/konsole/private_My Default.profile
new file mode 100644
index 0000000..68254a0
--- /dev/null
+++ b/dot_local/share/konsole/private_My Default.profile
@@ -0,0 +1,20 @@
+[Appearance]
+ColorScheme=Breeze
+Font=MesloLGS NF,10,-1,5,50,0,0,0,0,0
+TabColor=255,255,255
+
+[Cursor Options]
+CursorShape=1
+
+[General]
+Name=My Default
+Parent=FALLBACK/
+RemoteTabTitleFormat=[SSH] %H
+
+[Interaction Options]
+CopyTextAsHTML=false
+MouseWheelZoomEnabled=false
+UnderlineFilesEnabled=true
+
+[Terminal Features]
+BlinkingCursorEnabled=true
diff --git a/dot_local/share/kservices5/ServiceMenus/kate.desktop b/dot_local/share/kservices5/ServiceMenus/kate.desktop
new file mode 100644
index 0000000..0649c10
--- /dev/null
+++ b/dot_local/share/kservices5/ServiceMenus/kate.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Actions=OpenWithKate
+Icon=kate
+ServiceTypes=KonqPopupMenu/Plugin
+MimeType=application/octet-stream;
+Type=Service
+X-KDE-Priority=TopLevel
+
+[Desktop Action OpenWithKate]
+Exec=kate -s master %u
+Icon=kate
+Name=Edit with Kate
diff --git a/dot_local/share/kservices5/ServiceMenus/vlc.desktop b/dot_local/share/kservices5/ServiceMenus/vlc.desktop
new file mode 100644
index 0000000..c05a30f
--- /dev/null
+++ b/dot_local/share/kservices5/ServiceMenus/vlc.desktop
@@ -0,0 +1,23 @@
+[Desktop Entry]
+Actions=VLCPlayFolder
+Icon=vlc
+ServiceTypes=KonqPopupMenu/Plugin,inode/directory,inode/directory-locked
+Type=Service
+X-KDE-Priority=TopLevel
+
+[Desktop Entry]
+Actions=AppendVLCPlaylist
+Icon=vlc
+MimeType=application/ogg;application/x-ogg;audio/ogg;audio/vorbis;audio/x-vorbis;audio/x-vorbis+ogg;video/ogg;video/x-ogm;video/x-ogm+ogg;video/x-theora+ogg;video/x-theora;audio/x-speex;audio/opus;application/x-flac;audio/flac;audio/x-flac;audio/x-ms-asf;audio/x-ms-asx;audio/x-ms-wax;audio/x-ms-wma;video/x-ms-asf;video/x-ms-asf-plugin;video/x-ms-asx;video/x-ms-wm;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvx;video/x-msvideo;audio/x-pn-windows-acm;video/divx;video/msvideo;video/vnd.divx;video/avi;video/x-avi;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/vnd.rn-realaudio;audio/x-pn-realaudio;audio/x-pn-realaudio-plugin;audio/x-real-audio;audio/x-realaudio;video/vnd.rn-realvideo;audio/mpeg;audio/mpg;audio/mp1;audio/mp2;audio/mp3;audio/x-mp1;audio/x-mp2;audio/x-mp3;audio/x-mpeg;audio/x-mpg;video/mp2t;video/mpeg;video/mpeg-system;video/x-mpeg;video/x-mpeg2;video/x-mpeg-system;application/mpeg4-iod;application/mpeg4-muxcodetable;application/x-extension-m4a;application/x-extension-mp4;audio/aac;audio/m4a;audio/mp4;audio/x-m4a;audio/x-aac;video/mp4;video/mp4v-es;video/x-m4v;application/x-quicktime-media-link;application/x-quicktimeplayer;video/quicktime;application/x-matroska;audio/x-matroska;video/x-matroska;video/webm;audio/webm;audio/3gpp;audio/3gpp2;audio/AMR;audio/AMR-WB;video/3gp;video/3gpp;video/3gpp2;x-scheme-handler/mms;x-scheme-handler/mmsh;x-scheme-handler/rtsp;x-scheme-handler/rtp;x-scheme-handler/rtmp;x-scheme-handler/icy;x-scheme-handler/icyx;application/x-cd-image;x-content/video-vcd;x-content/video-svcd;x-content/video-dvd;x-content/audio-cdda;x-content/audio-player;application/ram;application/xspf+xml;audio/mpegurl;audio/x-mpegurl;audio/scpls;audio/x-scpls;text/google-video-pointer;text/x-google-video-pointer;video/vnd.mpegurl;application/vnd.apple.mpegurl;application/vnd.ms-asf;application/vnd.ms-wpl;application/sdp;audio/dv;video/dv;audio/x-aiff;audio/x-pn-aiff;video/x-anim;video/x-nsv;video/fli;video/flv;video/x-flc;video/x-fli;video/x-flv;audio/wav;audio/x-pn-au;audio/x-pn-wav;audio/x-wav;audio/x-adpcm;audio/ac3;audio/eac3;audio/vnd.dts;audio/vnd.dts.hd;audio/vnd.dolby.heaac.1;audio/vnd.dolby.heaac.2;audio/vnd.dolby.mlp;audio/basic;audio/midi;audio/x-ape;audio/x-gsm;audio/x-musepack;audio/x-tta;audio/x-wavpack;audio/x-shorten;application/x-shockwave-flash;application/x-flash-video;misc/ultravox;image/vnd.rn-realpix;audio/x-it;audio/x-mod;audio/x-s3m;audio/x-xm;application/mxf;
+Type=Service
+ServiceTypes=KonqPopupMenu/Plugin
+
+[Desktop Action VLCPlayFolder]
+Exec=vlc %f
+Icon=vlc
+Name=Play Folder with VLC
+
+[Desktop Action AppendVLCPlaylist]
+Exec=vlc --one-instance --playlist-enqueue %U
+Icon=vlc
+Name=Append to VLC Playlist
diff --git a/dot_nextflow/config.tmpl b/dot_nextflow/config.tmpl
index 722e129..a4291d4 100644
--- a/dot_nextflow/config.tmpl
+++ b/dot_nextflow/config.tmpl
@@ -1,4 +1,10 @@
+{{ if ne .machinetype "workstation" }}
tower {
enabled = true
- accessToken = {{ (bitwarden "item" "d41ac952-d8b5-4d20-a42a-ad8e0174d152").login.password }}
+ accessToken = '{{ (bitwarden "item" "Nextflow Tower Access Token").login.password }}'
+}
+{{ end }}
+
+conda {
+ useMamba = true
}
diff --git a/dot_nextflow/scm.tmpl b/dot_nextflow/scm.tmpl
new file mode 100644
index 0000000..6f58cd0
--- /dev/null
+++ b/dot_nextflow/scm.tmpl
@@ -0,0 +1,6 @@
+providers {
+ github {
+ user = '{{ .githubuser }}'
+ password = '{{ (bitwarden "item" "GitHub Nextflow Token").login.password }}'
+ }
+}
diff --git a/dot_p10k.zsh b/dot_p10k.zsh
index e06909b..66c9fa5 100644
--- a/dot_p10k.zsh
+++ b/dot_p10k.zsh
@@ -1,8 +1,8 @@
-# Generated by Powerlevel10k configuration wizard on 2021-04-21 at 10:28 MDT.
-# Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh, checksum 32822.
+# Generated by Powerlevel10k configuration wizard on 2023-01-17 at 18:32 CST.
+# Based on romkatv/powerlevel10k/config/p10k-rainbow.zsh, checksum 15312.
# Wizard options: nerdfont-complete + powerline, small icons, rainbow, unicode,
-# slanted separators, sharp heads, blurred tails, 1 line, compact, many icons, concise,
-# instant_prompt=quiet.
+# slanted separators, sharp heads, round tails, 1 line, compact, many icons, concise,
+# transient_prompt, instant_prompt=quiet.
# Type `p10k configure` to generate another config.
#
# Config for Powerlevel10k with powerline prompt style with colorful background.
@@ -46,14 +46,14 @@
command_execution_time # duration of the last command
background_jobs # presence of background jobs
direnv # direnv status (https://direnv.net/)
- # asdf # asdf version manager (https://github.com/asdf-vm/asdf)
+ asdf # asdf version manager (https://github.com/asdf-vm/asdf)
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
anaconda # conda environment (https://conda.io/)
- # pyenv # python environment (https://github.com/pyenv/pyenv)
- # goenv # go environment (https://github.com/syndbg/goenv)
- # nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
- # nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
- # nodeenv # node.js environment (https://github.com/ekalinin/nodeenv)
+ pyenv # python environment (https://github.com/pyenv/pyenv)
+ goenv # go environment (https://github.com/syndbg/goenv)
+ nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
+ nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
+ nodeenv # node.js environment (https://github.com/ekalinin/nodeenv)
node_version # node.js version
# go_version # go version (https://golang.org)
# rust_version # rustc version (https://www.rust-lang.org)
@@ -63,28 +63,32 @@
# java_version # java version (https://www.java.com/)
# package # name@version from package.json (https://docs.npmjs.com/files/package.json)
rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv)
- # rvm # ruby version from rvm (https://rvm.io)
- # fvm # flutter version management (https://github.com/leoafarias/fvm)
- # luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv)
- # jenv # java version from jenv (https://github.com/jenv/jenv)
- # plenv # perl version from plenv (https://github.com/tokuhirom/plenv)
- # phpenv # php version from phpenv (https://github.com/phpenv/phpenv)
- # scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv)
- # haskell_stack # haskell version from stack (https://haskellstack.org/)
- # kubecontext # current kubernetes context (https://kubernetes.io/)
- # terraform # terraform workspace (https://www.terraform.io)
- # aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
- # aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)
- # azure # azure account name (https://docs.microsoft.com/en-us/cli/azure)
- # gcloud # google cloud cli account and project (https://cloud.google.com/)
- # google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production)
+ rvm # ruby version from rvm (https://rvm.io)
+ fvm # flutter version management (https://github.com/leoafarias/fvm)
+ luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv)
+ jenv # java version from jenv (https://github.com/jenv/jenv)
+ plenv # perl version from plenv (https://github.com/tokuhirom/plenv)
+ perlbrew # perl version from perlbrew (https://github.com/gugod/App-perlbrew)
+ phpenv # php version from phpenv (https://github.com/phpenv/phpenv)
+ scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv)
+ haskell_stack # haskell version from stack (https://haskellstack.org/)
+ kubecontext # current kubernetes context (https://kubernetes.io/)
+ terraform # terraform workspace (https://www.terraform.io)
+ # terraform_version # terraform version (https://www.terraform.io)
+ aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
+ aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)
+ azure # azure account name (https://docs.microsoft.com/en-us/cli/azure)
+ gcloud # google cloud cli account and project (https://cloud.google.com/)
+ google_app_cred # google application credentials (https://cloud.google.com/docs/authentication/production)
+ toolbox # toolbox name (https://github.com/containers/toolbox)
context # user@hostname
- # nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
- # ranger # ranger shell (https://github.com/ranger/ranger)
+ nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
+ ranger # ranger shell (https://github.com/ranger/ranger)
nnn # nnn shell (https://github.com/jarun/nnn)
+ xplr # xplr shell (https://github.com/sayanarijit/xplr)
vim_shell # vim shell indicator (:sh)
- # midnight_commander # midnight commander shell (https://midnight-commander.org/)
- # nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)
+ midnight_commander # midnight commander shell (https://midnight-commander.org/)
+ nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)
vi_mode # vi mode (you don't need this if you've enabled prompt_char)
vpn_ip # virtual private network indicator
# load # CPU load
@@ -138,7 +142,7 @@
# Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or
# '─'. The last two make it easier to see the alignment between left and right prompt and to
# separate prompt from command output. You might want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false
- # for more compact prompt if using using this option.
+ # for more compact prompt if using this option.
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' '
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_BACKGROUND=
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_GAP_BACKGROUND=
@@ -165,9 +169,9 @@
# The left end of right prompt.
typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\uE0B2'
# The left end of left prompt.
- typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL='░▒▓'
+ typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\uE0B6'
# The right end of right prompt.
- typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL='▓▒░'
+ typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B4'
# Left prompt terminator for lines without any segments.
typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=
@@ -341,14 +345,14 @@
# typeset -g POWERLEVEL9K_DIR_PREFIX='in '
#####################################[ vcs: git status ]######################################
- # Version control system colors.
+ # Version control background colors.
typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=2
typeset -g POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=3
typeset -g POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=2
typeset -g POWERLEVEL9K_VCS_CONFLICTED_BACKGROUND=3
typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=8
- # Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon.
+ # Branch icon. Set this parameter to '\UE0A0 ' for the popular Powerline branch icon.
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON='\uF126 '
# Untracked files icon. It's really a question mark, your font isn't broken.
@@ -357,7 +361,7 @@
# Formatter for Git status.
#
- # Example output: master ⇣42⇡42 *42 merge ~42 +42 !42 ?42.
+ # Example output: master wip ⇣42⇡42 *42 merge ~42 +42 !42 ?42.
#
# You can edit the function to customize how Git status looks.
#
@@ -414,6 +418,11 @@
res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}"
fi
+ # Display "wip" if the latest commit's summary contains "wip" or "WIP".
+ if [[ $VCS_STATUS_COMMIT_SUMMARY == (|*[^[:alnum:]])(wip|WIP)(|[^[:alnum:]]*) ]]; then
+ res+=" ${modified}wip"
+ fi
+
# ⇣42 if behind the remote.
(( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}"
# ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
@@ -477,7 +486,7 @@
# Show status of repositories of these types. You can add svn and/or hg if you are
# using them. If you do, your prompt may become slow even when your current directory
- # isn't in an svn or hg reposotiry.
+ # isn't in an svn or hg repository.
typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)
##########################[ status: exit code of the last command ]###########################
@@ -734,6 +743,13 @@
# Custom icon.
# typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ ##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]##################
+ # xplr shell color.
+ typeset -g POWERLEVEL9K_XPLR_FOREGROUND=0
+ typeset -g POWERLEVEL9K_XPLR_BACKGROUND=6
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_XPLR_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
###########################[ vim_shell: vim shell indicator (:sh) ]###########################
# Vim shell indicator color.
typeset -g POWERLEVEL9K_VIM_SHELL_FOREGROUND=0
@@ -974,10 +990,10 @@
#
# The default format has the following logic:
#
- # 1. Display "$P9K_CONTENT $P9K_PYENV_PYTHON_VERSION" if $P9K_PYENV_PYTHON_VERSION is not
- # empty and unequal to $P9K_CONTENT.
- # 2. Otherwise display just "$P9K_CONTENT".
- typeset -g POWERLEVEL9K_PYENV_CONTENT_EXPANSION='${P9K_CONTENT}${${P9K_PYENV_PYTHON_VERSION:#$P9K_CONTENT}:+ $P9K_PYENV_PYTHON_VERSION}'
+ # 1. Display just "$P9K_CONTENT" if it's equal to "$P9K_PYENV_PYTHON_VERSION" or
+ # starts with "$P9K_PYENV_PYTHON_VERSION/".
+ # 2. Otherwise display "$P9K_CONTENT $P9K_PYENV_PYTHON_VERSION".
+ typeset -g POWERLEVEL9K_PYENV_CONTENT_EXPANSION='${P9K_CONTENT}${${P9K_CONTENT:#$P9K_PYENV_PYTHON_VERSION(|/*)}:+ $P9K_PYENV_PYTHON_VERSION}'
# Custom icon.
# typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
@@ -1180,6 +1196,16 @@
# Custom icon.
# typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ ###########[ perlbrew: perl version from perlbrew (https://github.com/gugod/App-perlbrew) ]############
+ # Perlbrew color.
+ typeset -g POWERLEVEL9K_PERLBREW_FOREGROUND=67
+ # Show perlbrew version only when in a perl project subdirectory.
+ typeset -g POWERLEVEL9K_PERLBREW_PROJECT_ONLY=true
+ # Don't show "perl-" at the front.
+ typeset -g POWERLEVEL9K_PERLBREW_SHOW_PREFIX=false
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_PERLBREW_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############
# PHP color.
typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=0
@@ -1259,10 +1285,20 @@
typeset -g POWERLEVEL9K_TERRAFORM_OTHER_BACKGROUND=0
# typeset -g POWERLEVEL9K_TERRAFORM_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ #############[ terraform_version: terraform version (https://www.terraform.io) ]##############
+ # Terraform version color.
+ typeset -g POWERLEVEL9K_TERRAFORM_VERSION_FOREGROUND=4
+ typeset -g POWERLEVEL9K_TERRAFORM_VERSION_BACKGROUND=0
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_TERRAFORM_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
+
+ ################[ terraform_version: It shows active terraform version (https://www.terraform.io) ]#################
+ typeset -g POWERLEVEL9K_TERRAFORM_VERSION_SHOW_ON_COMMAND='terraform|tf'
+
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
- # Show kubecontext only when the the command you are typing invokes one of these tools.
+ # Show kubecontext only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show kubecontext.
- typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|fluxctl|stern'
+ typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern|kubeseal|skaffold'
# Kubernetes context classes for the purpose of using different colors, icons and expansions with
# different contexts.
@@ -1349,7 +1385,7 @@
# typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='at '
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#
- # Show aws only when the the command you are typing invokes one of these tools.
+ # Show aws only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show aws.
typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|terraform|pulumi|terragrunt'
@@ -1384,6 +1420,12 @@
typeset -g POWERLEVEL9K_AWS_DEFAULT_BACKGROUND=1
# typeset -g POWERLEVEL9K_AWS_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ # AWS segment format. The following parameters are available within the expansion.
+ #
+ # - P9K_AWS_PROFILE The name of the current AWS profile.
+ # - P9K_AWS_REGION The region associated with the current AWS profile.
+ typeset -g POWERLEVEL9K_AWS_CONTENT_EXPANSION='${P9K_AWS_PROFILE//\%/%%}${P9K_AWS_REGION:+ ${P9K_AWS_REGION//\%/%%}}'
+
#[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]#
# AWS Elastic Beanstalk environment color.
typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=2
@@ -1392,7 +1434,7 @@
# typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]##########
- # Show azure only when the the command you are typing invokes one of these tools.
+ # Show azure only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show azure.
typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt'
# Azure account name color.
@@ -1402,9 +1444,9 @@
# typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'
##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########
- # Show gcloud only when the the command you are typing invokes one of these tools.
+ # Show gcloud only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show gcloud.
- typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs'
+ typeset -g POWERLEVEL9K_GCLOUD_SHOW_ON_COMMAND='gcloud|gcs|gsutil'
# Google cloud color.
typeset -g POWERLEVEL9K_GCLOUD_FOREGROUND=7
typeset -g POWERLEVEL9K_GCLOUD_BACKGROUND=4
@@ -1444,7 +1486,7 @@
# typeset -g POWERLEVEL9K_GCLOUD_VISUAL_IDENTIFIER_EXPANSION='⭐'
#[ google_app_cred: google application credentials (https://cloud.google.com/docs/authentication/production) ]#
- # Show google_app_cred only when the the command you are typing invokes one of these tools.
+ # Show google_app_cred only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show google_app_cred.
typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_SHOW_ON_COMMAND='terraform|pulumi|terragrunt'
@@ -1498,6 +1540,17 @@
# Note: ${VARIABLE//\%/%%} expands to ${VARIABLE} with all occurrences of '%' replaced by '%%'.
typeset -g POWERLEVEL9K_GOOGLE_APP_CRED_DEFAULT_CONTENT_EXPANSION='${P9K_GOOGLE_APP_CRED_PROJECT_ID//\%/%%}'
+ ##############[ toolbox: toolbox name (https://github.com/containers/toolbox) ]###############
+ # Toolbox color.
+ typeset -g POWERLEVEL9K_TOOLBOX_FOREGROUND=0
+ typeset -g POWERLEVEL9K_TOOLBOX_BACKGROUND=3
+ # Don't display the name of the toolbox if it matches fedora-toolbox-*.
+ typeset -g POWERLEVEL9K_TOOLBOX_CONTENT_EXPANSION='${P9K_TOOLBOX_NAME:#fedora-toolbox-*}'
+ # Custom icon.
+ # typeset -g POWERLEVEL9K_TOOLBOX_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ # Custom prefix.
+ # typeset -g POWERLEVEL9K_TOOLBOX_PREFIX='in '
+
###############################[ public_ip: public IP address ]###############################
# Public IP color.
typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=7
@@ -1529,13 +1582,15 @@
# The following parameters are accessible within the expansion:
#
# Parameter | Meaning
- # ----------------------+---------------
- # P9K_IP_IP | IP address
- # P9K_IP_INTERFACE | network interface
- # P9K_IP_RX_BYTES | total number of bytes received
- # P9K_IP_TX_BYTES | total number of bytes sent
- # P9K_IP_RX_RATE | receive rate (since last prompt)
- # P9K_IP_TX_RATE | send rate (since last prompt)
+ # ----------------------+-------------------------------------------
+ # P9K_IP_IP | IP address
+ # P9K_IP_INTERFACE | network interface
+ # P9K_IP_RX_BYTES | total number of bytes received
+ # P9K_IP_TX_BYTES | total number of bytes sent
+ # P9K_IP_RX_BYTES_DELTA | number of bytes received since last prompt
+ # P9K_IP_TX_BYTES_DELTA | number of bytes sent since last prompt
+ # P9K_IP_RX_RATE | receive rate (since last prompt)
+ # P9K_IP_TX_RATE | send rate (since last prompt)
typeset -g POWERLEVEL9K_IP_CONTENT_EXPANSION='${P9K_IP_RX_RATE:+⇣$P9K_IP_RX_RATE }${P9K_IP_TX_RATE:+⇡$P9K_IP_TX_RATE }$P9K_IP_IP'
# Show information for the first network interface whose name matches this regular expression.
# Run `ifconfig` or `ip -4 a show` to see the names of all network interfaces.
@@ -1562,7 +1617,7 @@
typeset -g POWERLEVEL9K_BATTERY_STAGES='\uf58d\uf579\uf57a\uf57b\uf57c\uf57d\uf57e\uf57f\uf580\uf581\uf578'
# Don't show the remaining time to charge/discharge.
typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false
- typeset -g POWERLEVEL9K_BATTERY_BACKGROUND=237
+ typeset -g POWERLEVEL9K_BATTERY_BACKGROUND=0
#####################################[ wifi: wifi speed ]#####################################
# WiFi color.
@@ -1647,7 +1702,7 @@
# - always: Trim down prompt when accepting a command line.
# - same-dir: Trim down prompt when accepting a command line unless this is the first command
# typed after changing current working directory.
- typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=off
+ typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=always
# Instant prompt mode.
#
diff --git a/dot_profile b/dot_profile
deleted file mode 100644
index 34f15a1..0000000
--- a/dot_profile
+++ /dev/null
@@ -1,19 +0,0 @@
-# User specific environment
-if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
-then
- export PATH="$HOME/.local/bin:$HOME/bin:$PATH"
-fi
-
-# Linuxbrew setup
-if [ -d $HOME/../linuxbrew/.linuxbrew ]; then
- BREWPATH=$HOME/../linuxbrew/.linuxbrew
-elif [ -d $HOME/.linuxbrew ]; then
- BREWPATH=$HOME/.linuxbrew
-fi
-
-if [ -n "$BREWPATH" ]; then
- if [[ "$SHELL" =~ "zsh" ]]; then
- export fpath+=($BREWPATH/share/zsh/site-functions)
- fi
- eval "$($BREWPATH/bin/brew shellenv)"
-fi
diff --git a/dot_profile.tmpl b/dot_profile.tmpl
new file mode 100644
index 0000000..035d52a
--- /dev/null
+++ b/dot_profile.tmpl
@@ -0,0 +1,17 @@
+# shellcheck shell=sh
+# User specific environment
+export PATH="$HOME/.local/bin:$HOME/bin:$PATH"
+
+# juliaup setup
+export PATH="$HOME/.julia/bin:$PATH"
+export PATH="$HOME/.julia/juliaup/bin:$PATH"
+export PATH="$HOME/.juliaup/bin:$PATH"
+
+{{ if eq .chezmoi.os "darwin" }}
+# Homebrew setup
+eval "$(/opt/homebrew/bin/brew shellenv)"
+{{ end }}
+
+if [ -e "$HOME/.nix-profile/etc/profile.d/nix.sh" ]; then
+ . "$HOME/.nix-profile/etc/profile.d/nix.sh"
+fi
diff --git a/dot_screenrc b/dot_screenrc
index 8c2d2ae..5528458 100644
--- a/dot_screenrc
+++ b/dot_screenrc
@@ -1,4 +1,3 @@
-shell /usr/bin/zsh
startup_message off
hardstatus alwayslastline
hardstatus string "%{= KW} %H %{= Kw}|%{-} %-Lw%{= bW}%n%f %t%{-}%+Lw %=%C%a %Y-%M-%d"
diff --git a/dot_tmux.conf b/dot_tmux.conf
deleted file mode 100644
index 542c418..0000000
--- a/dot_tmux.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-set -g default-terminal "xterm-256color"
-source "/usr/share/tmux/powerline.conf"
diff --git a/dot_tmux.conf.tmpl b/dot_tmux.conf.tmpl
new file mode 100644
index 0000000..28546d2
--- /dev/null
+++ b/dot_tmux.conf.tmpl
@@ -0,0 +1,8 @@
+set -g default-terminal "tmux-256color"
+{{- if eq .chezmoi.os "linux" }}
+{{ if (eq .chezmoi.osRelease.id "debian") }}
+source "/usr/share/powerline/bindings/tmux/powerline.conf"
+{{ else }}
+source "/usr/share/tmux/powerline.conf"
+{{ end }}
+{{- end }}
diff --git a/dot_zshenv.tmpl b/dot_zshenv.tmpl
new file mode 100644
index 0000000..320c25b
--- /dev/null
+++ b/dot_zshenv.tmpl
@@ -0,0 +1,24 @@
+# shellcheck shell=bash
+
+{{ if (or (eq .chezmoi.hostname "Atlas-login-1") (eq .chezmoi.hostname "Atlas-login-2")) -}}
+# Workaround for SCINet admins clobbering fpath
+fpath+=($HOME/.local/share/zsh/5.8/functions)
+{{- end }}
+
+# juliaup setup
+export PATH="$HOME/.julia/bin:$PATH"
+export PATH="$HOME/.julia/juliaup/bin:$PATH"
+export PATH="$HOME/.juliaup/bin:$PATH"
+fpath+=($HOME/.julia/completions)
+
+# Linuxbrew setup
+if [ -d $HOME/../linuxbrew/.linuxbrew ]; then
+ BREWPATH=$HOME/../linuxbrew/.linuxbrew
+elif [ -d $HOME/.linuxbrew ]; then
+ BREWPATH=$HOME/.linuxbrew
+fi
+
+if [ -n "$BREWPATH" ]; then
+ fpath+=($BREWPATH/share/zsh/site-functions)
+ export fpath
+fi
diff --git a/executable_dot_bash_profile b/executable_dot_bash_profile
index 70bd631..9ede22c 100644
--- a/executable_dot_bash_profile
+++ b/executable_dot_bash_profile
@@ -1 +1,4 @@
-source $HOME/.profile
+# shellcheck shell=bash
+# shellcheck source=dot_profile
+source "${HOME}/.profile"
+source "${HOME}/.bashrc"
diff --git a/executable_dot_bashrc b/executable_dot_bashrc
deleted file mode 100644
index 7e8104c..0000000
--- a/executable_dot_bashrc
+++ /dev/null
@@ -1,37 +0,0 @@
-# .bashrc
-
-# Source global definitions
-if [ -f /etc/bashrc ]; then
- . /etc/bashrc
-fi
-
-# Hook virtual environment modifers
-source $HOME/.hooks
-
-# User specific aliases and functions
-source $HOME/.aliases
-
-# >>> conda initialize >>>
-# !! Contents within this block are managed by 'conda init' !!
-__conda_setup="$('$HOME/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
-if [ $? -eq 0 ]; then
- eval "$__conda_setup"
-else
- if [ -f "$HOME/miniconda3/etc/profile.d/conda.sh" ]; then
- . "$HOME/miniconda3/etc/profile.d/conda.sh"
- else
- export PATH="$HOME/miniconda3/bin:$PATH"
- fi
-fi
-unset __conda_setup
-conda config --set changeps1 true
-# <<< conda initialize <<<
-
-# >>> direnv initalize >>>
-eval "$(direnv hook bash)"
-# <<< direnv initalize <<<
-
-source $HOME/.envvar
-
-# Make the prompt pretty, just in case we're stuck in bash land
-export PS1="[\[\e[32m\]\u\[\e[m\]@\[\e[33m\]\h\[\e[m\] \[\e[34m\]\W\[\e[m\]] \\$ "
diff --git a/executable_dot_bashrc.tmpl b/executable_dot_bashrc.tmpl
new file mode 100644
index 0000000..619df33
--- /dev/null
+++ b/executable_dot_bashrc.tmpl
@@ -0,0 +1,18 @@
+# shellcheck shell=bash
+# .bashrc
+export SH=bash
+
+if [ -f "$HOME/.modules" ]; then
+ source $HOME/.modules
+fi
+
+# User specific aliases and functions
+source $HOME/.aliases
+
+# Hook virtual environment modifers
+source $HOME/.hooks
+
+source $HOME/.envvar
+
+# Make the prompt pretty, just in case we're stuck in bash land
+export PS1="[\[\e[32m\]\u\[\e[m\]@\[\e[33m\]\h\[\e[m\] \[\e[34m\]\W\[\e[m\]] \\$ "
diff --git a/executable_dot_gitconfig.tmpl b/executable_dot_gitconfig.tmpl
index b79eb05..35a2da7 100644
--- a/executable_dot_gitconfig.tmpl
+++ b/executable_dot_gitconfig.tmpl
@@ -1,9 +1,9 @@
[user]
- name = {{ .name }}
- email = {{ .email }}
- signingkey = {{ .pubkey }}
+ name = "Thomas A. Christensen II"
+ email = "25492070+MillironX@users.noreply.github.com"
+ signingkey = 0xD5F50D10552A4BEC
[core]
- editor = nano
+ editor = nvim
[credential]
helper = store
[color]
@@ -12,7 +12,13 @@
defaultBranch = master
[github]
user = MillironX
-{{- if eq .chezmoi.osRelease.id "fedora" }}
+[pull]
+ rebase = false
+[safe]
+ directory = /var/docker
+{{- if eq .machinetype "workstation" }}
+[commit]
+ gpgsign = true
[diff]
tool = kdiff3
[merge]
diff --git a/executable_dot_zshrc b/executable_dot_zshrc
deleted file mode 100644
index e1f5bd9..0000000
--- a/executable_dot_zshrc
+++ /dev/null
@@ -1,98 +0,0 @@
-# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
-# Initialization code that may require console input (password prompts, [y/n]
-# confirmations, etc.) must go above this block; everything else may go below.
-if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
- source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
-fi
-
-# Load the antigen library
-if [[ ! -f "$HOME/.antigen.zsh" ]]; then
- curl -L git.io/antigen > $HOME/.antigen.zsh
-fi
-source "$HOME/.antigen.zsh"
-
-# Load the oh-my-zsh library
-antigen use oh-my-zsh
-
-# Default bundles
-antigen bundle git
-antigen bundle gitignore
-antigen bundle colored-man-pages
-antigen bundle cp
-antigen bundle screen
-antigen bundle npm
-antigen bundle bundler
-antigen bundle extract
-
-# Custom bundles
-antigen bundle zsh-users/zsh-syntax-highlighting
-antigen bundle zsh-users/zsh-autosuggestions
-antigen bundle zsh-users/zsh-completions
-antigen bundle esc/conda-zsh-completion
-antigen bundle RobSis/zsh-completion-generator
-antigen bundle kloetzl/biozsh
-antigen bundle millironx/cowsay-cows
-
-DEFAULT_USER="$USER"
-
-# Theming: if I have a nerd fond, use it to the fullest extent possible
-# If not, check for basic powerline, then fall back to text-based
-# The presence of nerd fonts and/or powerline fonts will be designated
-# by the presence of a ".nf" and ".powerline" file in the home directory,
-# respectively
-source /etc/os-release
-if [[ -f "$HOME/.nf" ]]; then
- # Nerd font config flag set
- antigen theme romkatv/powerlevel10k
-else
- if [[ -f "$HOME/.powerline" ]]; then
- # Powerline config flag set
- antigen theme https://gist.github.com/e95df0a0aa6d1721e85b905399971515.git believer
- else
- # Powerline config flag not set
- antigen theme https://gist.github.com/efde5e8d507bd3e1e046198b69d579f8.git gianu-improved
- fi
-fi
-
-# oh-my-zsh configuration settings
-HYPHEN_INSENSITIVE="true"
-ENABLE_CORRECTION="true"
-COMPLETION_WAITING_DOTS="true"
-
-source $HOME/.hooks
-
-# >>> conda initialize >>>
-# !! Contents within this block are managed by 'conda init' !!
-__conda_setup="$('$HOME/miniconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
-if [ $? -eq 0 ]; then
- eval "$__conda_setup"
-else
- if [ -f "$HOME/miniconda3/etc/profile.d/conda.sh" ]; then
- . "$HOME/miniconda3/etc/profile.d/conda.sh"
- else
- export PATH="$HOME/miniconda3/bin:$PATH"
- fi
-fi
-unset __conda_setup
-# <<< conda initialize <<<
-
-# >>> direnv initalize >>>
-eval "$(direnv hook zsh)"
-# <<< direnv initalize <<<
-
-# Tell Antigen that you're done
-antigen apply
-
-# User configuration
-# Setup bash completion support
-# (zsh completion support is handled by oh-my-zsh)
-autoload -U bashcompinit
-bashcompinit
-
-source $HOME/.envvar
-
-alias zshconfig="$EDITOR ~/.zshrc"
-source $HOME/.aliases
-
-# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
-[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
diff --git a/executable_dot_zshrc.tmpl b/executable_dot_zshrc.tmpl
new file mode 100644
index 0000000..210e161
--- /dev/null
+++ b/executable_dot_zshrc.tmpl
@@ -0,0 +1,81 @@
+export SH=zsh
+{{ if or (eq .chezmoi.os "linux") (eq .chezmoi.os "darwin") }}
+{{- if or
+ (eq .machinetype "workstation")
+ (eq .chezmoi.osRelease.id "fedora")
+ (and (eq .chezmoi.osRelease.id "almalinux" "centos" "rhel") (gt (atoi .chezmoi.osRelease.versionID) 7))
+ (and (eq .chezmoi.osRelease.id "debian") (gt (atoi .chezmoi.osRelease.versionID) 9 )) -}}
+# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
+# Initialization code that may require console input (password prompts, [y/n]
+# confirmations, etc.) must go above this block; everything else may go below.
+if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
+ source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
+fi
+{{- end }}
+{{- end }}
+
+# User specific environment
+if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
+then
+ export PATH="$HOME/.local/bin:$HOME/bin:$PATH"
+fi
+
+# Load the antigen library
+source "$HOME/antigen.zsh"
+
+# Load the oh-my-zsh library
+antigen use oh-my-zsh
+
+# Default bundles
+antigen bundle git
+antigen bundle screen
+antigen bundle extract
+
+# Custom bundles
+antigen bundle zsh-users/zsh-syntax-highlighting
+antigen bundle zsh-users/zsh-autosuggestions
+antigen bundle zsh-users/zsh-completions
+antigen bundle esc/conda-zsh-completion
+antigen bundle millironx/cowsay-cows
+
+{{ if or
+ (eq .machinetype "workstation")
+ (eq .chezmoi.osRelease.id "fedora")
+ (and (eq .chezmoi.osRelease.id "almalinux" "centos" "rhel") (gt (atoi .chezmoi.osRelease.versionID) 7))
+ (and (eq .chezmoi.osRelease.id "debian") (gt (atoi .chezmoi.osRelease.versionID) 9 )) -}}
+antigen theme romkatv/powerlevel10k
+{{- else -}}
+antigen theme https://gist.github.com/efde5e8d507bd3e1e046198b69d579f8.git gianu-improved
+{{- end }}
+
+# oh-my-zsh configuration settings
+HYPHEN_INSENSITIVE="true"
+COMPLETION_WAITING_DOTS="true"
+
+alias zshconfig="$EDITOR ~/.zshrc"
+source $HOME/.aliases
+
+source $HOME/.hooks
+
+# Tell Antigen that you're done
+antigen apply
+
+# User configuration
+# Setup bash completion support
+# (zsh completion support is handled by oh-my-zsh)
+autoload -U bashcompinit
+bashcompinit
+
+source $HOME/.envvar
+
+
+{{ if or (eq .chezmoi.os "linux") (eq .chezmoi.os "darwin") }}
+{{ if or
+ (eq .machinetype "workstation")
+ (eq .chezmoi.osRelease.id "fedora")
+ (and (eq .chezmoi.osRelease.id "almalinux" "centos" "rhel") (gt (atoi .chezmoi.osRelease.versionID) 7))
+ (and (eq .chezmoi.osRelease.id "debian") (gt (atoi .chezmoi.osRelease.versionID) 9 )) -}}
+# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
+[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
+{{- end }}
+{{- end }}
diff --git a/private_dot_gnupg/private_gpg-agent.conf b/private_dot_gnupg/private_gpg-agent.conf
index 918e9f9..ca45c6f 100644
--- a/private_dot_gnupg/private_gpg-agent.conf
+++ b/private_dot_gnupg/private_gpg-agent.conf
@@ -1,2 +1,4 @@
-default-cache-ttl 10000
-max-cache-ttl 86400
+enable-ssh-support
+ttyname $GPG_TTY
+default-cache-ttl 60
+max-cache-ttl 120
diff --git a/private_dot_librewolf/native-messaging-hosts/org.kde.plasma.browser_integration.json b/private_dot_librewolf/native-messaging-hosts/org.kde.plasma.browser_integration.json
deleted file mode 100644
index e316dcb..0000000
--- a/private_dot_librewolf/native-messaging-hosts/org.kde.plasma.browser_integration.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "name": "org.kde.plasma.browser_integration",
- "description": "Native connector for KDE Plasma",
- "path": "/usr/bin/plasma-browser-integration-host",
- "type": "stdio",
- "allowed_extensions": ["plasma-browser-integration@kde.org"]
-}
diff --git a/private_dot_ssh/config.tmpl b/private_dot_ssh/config.tmpl
new file mode 100644
index 0000000..cde6ce3
--- /dev/null
+++ b/private_dot_ssh/config.tmpl
@@ -0,0 +1,36 @@
+Host *
+ IdentitiesOnly yes
+ IdentityFile {{ if and (eq .machinetype "workstation") (ne .chezmoi.os "windows") }}~/.ssh/id_rsa_yubikey.pub{{ else }}~/.ssh/id_ed25519{{ end }}
+
+Host anderson
+ HostName anderson.millironx.com
+ User millironx
+
+Host aahz
+ HostName nistac-108-37.dhcp.ksu.edu
+ User tchristensen
+
+Host skeeve
+ HostName 129.130.108.157
+ User tchristensen
+
+Host ceres
+ HostName ceres.scinet.usda.gov
+ User thomas.christensen
+ TCPKeepAlive yes
+ ServerAliveInterval 20
+ ServerAliveCountMax 30
+ IdentitiesOnly no
+
+Host atlas
+ HostName Atlas-login-1.hpc.msstate.edu
+ User thomas.christensen
+ TCPKeepAlive yes
+ ServerAliveInterval 20
+ ServerAliveCountMax 30
+ IdentitiesOnly no
+
+Host atlas-dtn
+ HostName Atlas-dtn.hpc.msstate.edu
+ User thomas.christensen
+ IdentitiesOnly no
diff --git a/private_dot_ssh/private_id_rsa_yubikey.pub b/private_dot_ssh/private_id_rsa_yubikey.pub
new file mode 100644
index 0000000..b381025
--- /dev/null
+++ b/private_dot_ssh/private_id_rsa_yubikey.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDVBH9pG48bCNgULtWwUYu3JCIlRXrRTR/vszgmDm5cu30fFvHvgcOp8yojdB9IjIjdTNF7HtOuzWUVdEk8acTVRQwBOV5u4OPtb6BXJR77mQDgciB2lO3IAKLr7ePxQx/cqSzB3eU947tsJ4Ww/Fx6ZSnKWjOU8L2yrbdj84FyWK3941de2DRSxF5N/DkhztrYu+M20Gm+yb44pKv4QqSzNVB259irTJm1LrlRaa2lF4WeJUM2dAv86l/tmtYsjKZNbzERnMuNl1c5yaIacLvw5t98Bh6nJWu3YYtPz6aEFNDfUp4JtAFHFXS96Xn+woqrXF3YjDIl2RuPBIH8rmIf4dGALuDjneDcNbX95g3IEW350gzyAJgbxwEA9Tw85QT+g+ZBvgEkze9vXIXPsGh8Dhte5ctpfDPCvRYzPrLhf7tydOQx9l6HFofzsnrnCV2CZtIyH1wniCjRnO55gup6TDNMLHZbNsg+oj3eNeNZFsuMGv3PWyVrfIJqutQGJZWvwNky6oz/BIN95WKbPvenvJ8oA7R77kUP6PYBvWvKCJa86sE5QjkxzvGe+uQkfcm5OXtlgige+pulFGTk4gKtEM6X4xFqEcz16btycAA7aOKeMMgnS8budB9TW31tP00AVsbwSmB5DQQ0X+jDpoJaMl9Fovc2mT8DpaqwT8+l9w== cardno:18 319 764
diff --git a/run_once_install_mamba.sh.tmpl b/run_once_install_mamba.sh.tmpl
new file mode 100644
index 0000000..a17e22f
--- /dev/null
+++ b/run_once_install_mamba.sh.tmpl
@@ -0,0 +1,12 @@
+#!/bin/bash
+{{ if eq .chezmoi.os "linux" }}
+{{ $mambaURL := print "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-pypy3-Linux-x86_64.sh" }}
+{{ if lookPath "wget" }}
+wget -qO- "{{ $mambaURL }}" > mamba.sh
+{{ else }}
+curl -L "{{ $mambaURL }}" > mamba.sh
+{{ end }}
+chmod +x mamba.sh
+./mamba.sh -b -u -p $HOME/miniconda3
+rm mamba.sh
+{{ end }}