diff --git a/.chezmoiexternal.toml b/.chezmoiexternal.toml index a107be7..c58bdfc 100644 --- a/.chezmoiexternal.toml +++ b/.chezmoiexternal.toml @@ -1,6 +1,7 @@ -["antigen.zsh"] +[".local/bin/n"] type = "file" - url = "https://git.io/antigen" + url = "https://raw.githubusercontent.com/tj/n/master/bin/n" + executable = true refreshPeriod = "168h" [".local/share/fonts/meslolgs-nf-regular.ttf"] diff --git a/dot_aliases.tmpl b/dot_aliases similarity index 50% rename from dot_aliases.tmpl rename to dot_aliases index 45b6949..e21d69f 100644 --- a/dot_aliases.tmpl +++ b/dot_aliases @@ -1,16 +1,22 @@ +# 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 -{{- 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 }} +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' @@ -18,7 +24,6 @@ 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 () { diff --git a/dot_condarc b/dot_condarc index 9a57598..fab3508 100644 --- a/dot_condarc +++ b/dot_condarc @@ -1,2 +1,2 @@ auto_activate_base: false -changeps1: true +changeps1: false diff --git a/dot_envvar.tmpl b/dot_envvar.tmpl index 206ff7b..42346d3 100644 --- a/dot_envvar.tmpl +++ b/dot_envvar.tmpl @@ -1,38 +1,45 @@ -{{- if lookPath "pipx" }} # Enable pipx completions -eval "$(register-python-argcomplete pipx)" -{{- end }} +if [ $(command -v pipx) ]; then + eval "$(register-python-argcomplete pipx)" +fi -{{- if lookPath "nvim" }} # Preferred editor for local and remote sessions -export EDITOR=nvim -{{- end }} +if [ $(command -v nvim) ]; then + export EDITOR=nvim +elif [ $(command -v nano) ]; then + export EDITOR=nano +elif [ $(command -v vim) ]; then + export EDITOR=vim +elif [ $(command -v emacs) ]; then + export EDITOR='emacs -nw' +fi -{{- if lookPath "kate" }} -export VISUAL=kate -{{- else if lookPath "codium" }} -export VISUAL=codium -{{- else if lookPath "code" }} -export VISUAL=code -{{- end }} +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 -{{- if lookPath "most" }} # Set a cool new pager with color support -export PAGER=most -{{- end }} +if [ $(command -v most) ]; then + export PAGER=most +fi + -{{- 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 }} +if [ $(command -v bat) ]; then + export BAT_PAGER="less -SRF" + export MANPAGER="sh -c 'col -bx | bat -l man -p'" + export MANROFFOPT="-c" +fi # 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 }} +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 glances" +fi # Set the Nextflow enviroment caches export NXF_HOME="$HOME/.nextflow" diff --git a/dot_hooks.tmpl b/dot_hooks.tmpl index 29097e0..7af0c42 100644 --- a/dot_hooks.tmpl +++ b/dot_hooks.tmpl @@ -1,36 +1,19 @@ -# >>> conda initialize >>> -# !! Contents within this block are managed by 'conda init' !! -__conda_setup="$($HOME/miniconda3/bin/conda shell.$(basename $0) '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 +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 -unset __conda_setup -if [ -f "$HOME/miniconda3/etc/profile.d/mamba.sh" ]; then - . "$HOME/miniconda3/etc/profile.d/mamba.sh" +if [ $(command -v n) ]; then + export N_PREFIX=$HOME/.n + export PATH="$HOME/.n/bin:$PATH" fi -# <<< conda initialize <<< - -{{- if lookPath "direnv" }} -eval "$(direnv hook $(basename $0))" -{{- 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.$(basename $0)) ]; then - source $(which env_parallel.$(basename $0)) -fi - {{- if eq .machinetype "workstation" }} export GPG_TTY="$(tty)" export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) diff --git a/dot_profile b/dot_profile index 9079577..17df7a2 100644 --- a/dot_profile +++ b/dot_profile @@ -3,8 +3,22 @@ export PATH="$HOME/.local/bin:$HOME/bin:$PATH" # juliaup setup -export PATH="$HOME/.julia/juliaup/bin:$PATH" -export PATH="$HOME/.juliaup/bin:$PATH" +if [ -d $HOME/.julia/juliaup/bin ]; then + export PATH="$HOME/.julia/juliaup/bin:$PATH" +fi + +# >>> juliaup initialize >>> + +# !! Contents within this block are managed by juliaup !! + +case ":$PATH:" in + *:/home/millironx/.juliaup/bin:*) + ;; + *) + export PATH=/home/millironx/.juliaup/bin${PATH:+:${PATH}} + ;; +esac +# <<< juliaup initialize <<< # Linuxbrew setup if [ -d $HOME/../linuxbrew/.linuxbrew ]; then @@ -18,7 +32,3 @@ if [ -n "$BREWPATH" ]; then export HOMEBREW_MAKE_JOBS=1 export HOMEBREW_NO_ANALYTICS=1 fi - -if [ -e "$HOME/.nix-profile/etc/profile.d/nix.sh" ]; then - . "$HOME/.nix-profile/etc/profile.d/nix.sh" -fi diff --git a/dot_tmux.conf.tmpl b/dot_tmux.conf.tmpl index 4f55050..1c3c442 100644 --- a/dot_tmux.conf.tmpl +++ b/dot_tmux.conf.tmpl @@ -1,6 +1,6 @@ set -g default-terminal "tmux-256color" -{{ if (eq .chezmoi.osRelease.id "debian") }} +{{- if (eq .chezmoi.osRelease.id "debian") }} source "/usr/share/powerline/bindings/tmux/powerline.conf" -{{ else }} +{{- else -}} source "/usr/share/tmux/powerline.conf" -{{ end }} +{{- end }} diff --git a/executable_dot_bashrc.tmpl b/executable_dot_bashrc.tmpl index 34b39c0..7782a56 100644 --- a/executable_dot_bashrc.tmpl +++ b/executable_dot_bashrc.tmpl @@ -11,7 +11,33 @@ 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 >>> +if [ $(command -v direnv) ]; then + eval "$(direnv hook bash)" +fi +# <<< direnv initalize <<< + source $HOME/.envvar +if [ $(command -v env_parallel.bash) ]; then + source $(which env_parallel.bash) +fi + # 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_zshrc.tmpl b/executable_dot_zshrc.tmpl index 4bf3d42..5c42c92 100644 --- a/executable_dot_zshrc.tmpl +++ b/executable_dot_zshrc.tmpl @@ -18,6 +18,9 @@ then 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 @@ -51,6 +54,27 @@ 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 >>> +if [ $(command -v direnv) ]; then + eval "$(direnv hook zsh)" +fi +# <<< direnv initalize <<< + # Tell Antigen that you're done antigen apply @@ -65,6 +89,11 @@ source $HOME/.envvar alias zshconfig="$EDITOR ~/.zshrc" source $HOME/.aliases +# Import GNU parallel +if [ $(command -v env_parallel.zsh) ]; then + source $(which env_parallel.zsh) +fi + {{ if or (eq .machinetype "workstation") (eq .chezmoi.osRelease.id "fedora") diff --git a/private_dot_gnupg/private_gpg-agent.conf b/private_dot_gnupg/private_gpg-agent.conf index ca45c6f..918e9f9 100644 --- a/private_dot_gnupg/private_gpg-agent.conf +++ b/private_dot_gnupg/private_gpg-agent.conf @@ -1,4 +1,2 @@ -enable-ssh-support -ttyname $GPG_TTY -default-cache-ttl 60 -max-cache-ttl 120 +default-cache-ttl 10000 +max-cache-ttl 86400 diff --git a/private_dot_ssh/config.tmpl b/private_dot_ssh/config.tmpl index 1288e19..ca7432b 100644 --- a/private_dot_ssh/config.tmpl +++ b/private_dot_ssh/config.tmpl @@ -1,6 +1,6 @@ Host * IdentitiesOnly yes - IdentityFile {{ if and (eq .machinetype "workstation") (ne .chezmoi.os "windows") }}~/.ssh/id_rsa_yubikey.pub{{ else }}~/.ssh/id_ed25519{{ end }} + IdentityFile {{ if and (eq .machinetype "workstation") (ne .chezmoi.os "windows") }}~/.ssh/id_rsa_yubikey.pub{{ else }}~/.ssh/id_ed25519.pub{{ end }} Host aahz HostName 129.130.108.37 diff --git a/run_once_install_mamba.sh.tmpl b/run_once_install_mamba.sh.tmpl deleted file mode 100644 index a17e22f..0000000 --- a/run_once_install_mamba.sh.tmpl +++ /dev/null @@ -1,12 +0,0 @@ -#!/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 }}