Skip to content

My personal dotfiles to configure my development machines

License

Notifications You must be signed in to change notification settings

wrightbradley/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

fastfetch

Setups and configures various dotfiles, installs packages, and configures the host machine. This repo strives to be as declarative and idempotent as possible while keeping configurations up-to-date and in sync across many different hosts.

To facilitate these goals, this repo uses chezmoi and ansible.

To Execute

You need to create a chezmoi config file under the XDG Base Directory. For macOS, that would be: ~/.config/chezmoi/chezmoi.toml Chezmoi supports different file formats, but I currently use TOML.

My config file for chezmoi is pretty simple. There are a few unique components related to GPG encryption support for chezmoi. (NOTE: replace the example email address with the correct email address used for the GPG keys)

encryption = "gpg"
pager = "delta"

[edit]
command = "nvim"

[gpg]
symmetric = false
recipient = "[email protected]"

[pinentry]
command = "pinentry"

[data]
system = "personal"
email_work = "[email protected]"
email_personal = "[email protected]"
ghuser = "wrightbradley"
hwkey = "0xABCDEF1234567XYZ"

With this config in place, you can then install chezmoi and use your GitHub dotfiles repo to bootstrap a new machine:

# To bootstrap chezmoi and run ansible:
curl -sSL https://raw.githubusercontent.com/wrightbradley/dotfiles/refs/heads/main/ansible/bootstrap.sh | GITHUB_USERNAME=wrightbradley bash

# To bootstrap chezmoi without ansible:
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --exclude=encrypted --apply $GITHUB_USERNAME

Task List

  • Hook Ansible into chezmoi bootstrap step
  • Identify how to install homebrew-less casks: ATEM Mini Pro, Akai Professional MPK Mini III Program Editor, MPK mini Software Manager
  • Generate inventory file for Ansible

Info Gathering

MAS Info Gathering

mas list

Homebrew Info Gathering

List installed formulae

brew info --json=v2 --installed | jq -r '.formulae[]|{name:select(any(.installed[]; .installed_on_request)).full_name, desc: .desc, homepage:.homepage}'

List installed casks

brew info --json=v2 --installed | jq -r '.casks[]|{name:.full_token, full_name:.name, desc:.desc, homepage:.homepage,}'