Skip to content

nathanielvarona/dotfiles

Repository files navigation

dotfiles

My Dotfiles Collection

Features

  • A collection of dotfiles for easy setup and configuration of my development environment
  • Managed using GNU stow to symlink dotfiles to my home directory $HOME or ~/

Quick Setup

# Clone the Dotfiles
git clone https://github.com/nathanielvarona/dotfiles.git \
  ~/.dotfiles && cd ~/.dotfiles

# Stow
stow --stow --verbose .

# Unstow
stow --delete --verbose .

# Restow (like Unstow followed by Stow)
stow --restow --verbose .

Tip

Use the GNU stow option --simulate for dry run and evalute possible changes before the real one.

Packages Installation

Homebrew Packages

Dump List of Packages

brew bundle dump --no-lock --describe \
  --force --file ./Brewfile

Install Packages

brew bundle install \
  --file ./Brewfile

ASDF Plugins

Dump List of Plugins

asdf plugin list > ./asdf-plugins

Installation

egrep -v '^(;|#|//)' ./asdf-plugins | 
  xargs -I {} asdf plugin add {}

Poetry Apps (Python Packages)

Installation

egrep -v '^(;|#|//)' ./pipx-apps | 
  xargs -I {} pipx install {}

Perl CPAN Packages

Requirement

cpan App::cpanminus

Installation

cpanm --installdeps ./

Ollama Models

Dump Model List

ollama list | 
  awk 'NR>1 { print $1 }' > ./ollama-models

Pull Models

egrep -v '^(;|#|//)' ./ollama-models |
  xargs -I {} ollama pull {}

Hugging Face Models

Download Models

while IFS= read -r model_name; do
  repo_id="${model_name%% *}"
  filename="${model_name#* }"
  huggingface-cli download "$repo_id" "$filename"
done < <(egrep -v '^(;|#|//)' ./hugging-face-models)

GNU Pretty Good Privacy (PGP) package and Password manager

Passphrase entry dialog utilizing the Assuan protocol

defaults write org.gpgtools.common UseKeychain false

Shell Scripts Linting and Formatting

To ensure consistency and cleanliness, use:

  • Run editorconfig-checker to check for EditorConfig errors
  • Run shfmt --indent 2 --write ./<path>/<to>/<script>.sh to format shell scripts