diff --git a/.dotter/global.toml b/.dotter/global.toml index 3ea2fed..6fcfa77 100644 --- a/.dotter/global.toml +++ b/.dotter/global.toml @@ -7,7 +7,7 @@ header = ".dotter/handlebars_helpers/header.rhai" # CLI package [cli] -depends = ["nvim", "zsh"] +depends = ["nvim", "zsh", "fzf", "starship"] [cli.variables] nerd_font = "JetBrainsMono" @@ -15,7 +15,6 @@ nerd_font = "JetBrainsMono" [cli.files] "config/bat" = "~/.config/bat" "config/sesh" = "~/.config/sesh" -"config/starship.toml" = "~/.config/starship.toml" "config/tmux" = "~/.config/tmux" "config/yazi" = "~/.config/yazi" "config/zellij" = "~/.config/zellij" @@ -34,8 +33,13 @@ depends = ["rust"] "config/zsh/aliases" = {target = "~/.config/zsh/aliases", type="symbolic"} "config/zsh/completions" = {target = "~/.config/zsh/completions", type = "symbolic"} "config/zsh/functions" = "~/.config/zsh/functions" + +[fzf.files] "config/fzf" = "~/.config/fzf" +[starship.files] +"config/starship.toml" = "~/.config/starship.toml" + [nushell.files] "config/nushell" = "~/.config/nushell" @@ -44,3 +48,6 @@ depends = ["rust"] [rust.variables] cargo.packages = [] + +[mise.files] +"config/mise" = "~/.config/mise" diff --git a/.dotter/post_deploy.sh b/.dotter/post_deploy.sh new file mode 100644 index 0000000..db1b97d --- /dev/null +++ b/.dotter/post_deploy.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +sha256sum .dotter/cache/.dotter/pre_deploy.sh >.dotter/cache/pre_deploy.checksum diff --git a/.dotter/pre_deploy.sh b/.dotter/pre_deploy.sh index f767eb5..9b30d7a 100644 --- a/.dotter/pre_deploy.sh +++ b/.dotter/pre_deploy.sh @@ -2,6 +2,15 @@ # shellcheck disable=all # This is a handlerbars template, so ignore issues + +checksum_file=".dotter/cache/pre_deploy.checksum" + +if [[ -e "$checksum_file" ]] && sha256sum --check "$checksum_file" >/dev/null 2>&1; then + echo "Pre deploy script has not changed, skiping script execution" + echo "To override this, remove the checksum file: $checksum_file" + exit 0 +fi + {{!~ Detect the distribution ~}} {{~ assign "distro" (trim (command_output "awk -F= '/^ID=/ {print $2}' /etc/os-release | tr -d '\"'")) ~}} diff --git a/.dotter/work-laptop.toml b/.dotter/work-laptop.toml index 8e15648..9b0a673 100644 --- a/.dotter/work-laptop.toml +++ b/.dotter/work-laptop.toml @@ -1,5 +1,5 @@ includes = [".dotter/machines/fedora.toml"] -packages = ["cli", "dev"] +packages = ["cli", "dev", "mise"] [files] diff --git a/config/zsh/zshrc b/config/zsh/zshrc index c0cdda6..21c40f2 100644 --- a/config/zsh/zshrc +++ b/config/zsh/zshrc @@ -115,6 +115,9 @@ setopt hist_find_no_dups # case insensitive completion zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" + +{{ #if dotter.packages.fzf }} + zstyle ':completion:*' menu no zstyle ':fzf-tab:*' show-group full zstyle ':fzf-tab:*' continuous-trigger '/' @@ -153,6 +156,8 @@ zstyle ':fzf-tab:complete:git-checkout:*' fzf-preview \ # TLDR zstyle ':fzf-tab:complete:tldr:argument-1' fzf-preview 'tldr --color always $word' +{{ /if }} + # ╭──────────────────────────────────────────────────────────╮ # │ ZSH Options │ # ╰──────────────────────────────────────────────────────────╯ @@ -163,7 +168,10 @@ setopt GLOB_DOTS # ╭──────────────────────────────────────────────────────────╮ # │ Source other files │ # ╰──────────────────────────────────────────────────────────╯ + +{{ #if dotter.packages.fzf }} source $HOME/.config/fzf/fzfrc +{{ /if }} # this prevents errors and not loading some files for file in $HOME/.config/zsh/**/*.zsh; do @@ -173,7 +181,19 @@ done # ╭──────────────────────────────────────────────────────────╮ # │ Init external programs │ # ╰──────────────────────────────────────────────────────────╯ + +{{ #if dotter.packages.fzf }} eval "$(fzf --zsh)" +{{ /if ~}} + +{{ #if (is_executable "zoxide") }} eval "$(zoxide init --cmd cd zsh)" +{{ /if ~}} + +{{ #if dotter.packages.starship }} eval "$(starship init zsh)" +{{ /if ~}} + +{{ #if dotter.packages.mise }} eval "$(mise activate zsh)" +{{ /if ~}}