Skip to content

Latest commit

 

History

History
83 lines (59 loc) · 2.32 KB

README.md

File metadata and controls

83 lines (59 loc) · 2.32 KB

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,}'