Skip to content

Latest commit

 

History

History
127 lines (102 loc) · 4.9 KB

File metadata and controls

127 lines (102 loc) · 4.9 KB

dotfiles

Make development environment for every machines

Currently, I use chezmoi as the management tool.

Getting Started

MacOS

# TODO: eventually we don't these "manual" steps
brew install chezmoi age
uv tool install ansible-core    # Installs all ansible executables
ansible-galaxy collection install community.general  # For homebrew module

chezmoi init git@github.com:daviddwlee84/dotfiles.git

Ubuntu


Alternatives

  • Nix
  • GNU Stow

Todo

  • oh-my-zsh
  • NeoVim + LazyVim
  • LazyGit, ...?
  • Tmux / Zellij
  • alacritty.toml
  • environment variables for API keys (encrypt)
  • improve ~/.zshrc that check command first (if/exists guard)
  • "tags" for different profile
  • Compare different alternatives
  • separate different function in different shell script (and source them in the rc file)
  • Install just
    • Use package manager for each platform Packages - Just Programmer's Manual
    • Maybe use the https://just.systems/install.sh installation script and set the target location to ~/.local/bin/just?
    • If without "sudo" permission, can we install to user-space?!
  • Pueue
    • Homebrew
    • linux (build from cargo / download binary + setup systemd service?)
  • Mirror

advanced

Resources

Examples

docker run --rm -it ubuntu:latest bash
export GITHUB_USERNAME=logandonley
# NOTE: if you prefer to use the system package manager to install chezmoi, then don't use this script
apt update -y && apt install curl -y
sh -c "$(curl -fsLS get.chezmoi.io/lb)" -- init --apply git@github.com:$GITHUB_USERNAME/dotfiles.git
# or wget
apt update -y && apt install wget -y
sh -c "$(wget -qO- https://get.chezmoi.io/lb)" -- init --apply "git@github.com:$GITHUB_USERNAME/dotfiles.git"
# To test, you can run:
chezmoi state delete-bucket --bucket=scriptState  # Clear script state to re-run
chezmoi apply -v
# Test Claude Code notification hook
echo '{"hook_event_name":"Stop"}' | ~/.claude/hooks/notify.sh
echo '{"hook_event_name":"Notification","title":"Test Title","message":"Test message","notification_type":"info"}' | ~/.claude/hooks/notify.sh