softwareupdate --list-full-installers
softwareupdate --fetch-full-installer --full-installer-version VERSION
sudo '/Applications/Install macOS Sequoia.app/Contents/Resources/createinstallmedia' --volume /Volumes/Untitled --nointeraction
softwareupdate --list
softwareupdate --all --install --force
xcode-select --install
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew tap homebrew/cask
brew tap miccal/miccal
HOMEBREW_CASK_OPTS="--no-quarantine" brew install m-little-snitch
cd "$(brew --caskroom)"; rm -r m-little-snitch; cd
HOMEBREW_CASK_OPTS="--no-quarantine" brew install bash curl ghostscript git pass pinentry-mac vim m-dropbox m-keepingyouawake m-rectangle-pro
cd "$(brew --caskroom)"; rm -r m-dropbox; cd
HOMEBREW_CASK_OPTS="--no-quarantine" brew install m-mactex
cd "$(brew --caskroom)"; rm -r m-mactex; cd
HOMEBREW_CASK_OPTS="--no-quarantine" brew install aspell gh gnuplot jupyterlab mas pdftoipe pwgen rsync m-apparency m-folx m-google-chrome m-launchcontrol m-libreoffice m-mathpix-snipping-tool m-microsoft-defender m-microsoft-outlook m-microsoft-teams m-mpv m-obs m-omnidisksweeper m-onedrive m-processspy m-proxyman m-sagemath m-slack m-suspicious-package m-tex-live-utility m-texshop m-textbuddy m-tor-browser m-vmware-horizon-client m-wolfram-engine m-zoomus
brew update && brew outdated --greedy --verbose && brew upgrade --dry-run && brew cleanup -s && rm -r -f "$(brew --cache)"
brew deps --installed --tree
List current shells:
cat /etc/shells
Add homebrew bash:
sudo vim /etc/shells
Add to last line for Intel:
/usr/local/bin/bash
or for Arm:
/opt/homebrew/bin/bash
Check list:
cat /etc/shells
Set default shell for Intel:
chsh -s /usr/local/bin/bash miccal
or for Arm:
chsh -s /opt/homebrew/bin/bash miccal
ln -s ~/Library/CloudStorage/Dropbox/.homebrew_github_api_token ~/.homebrew_github_api_token
ln -s ~/Library/CloudStorage/Dropbox/.password-store ~/.password-store
pass init GPGID
pass insert -m NAME
pass generate -f -n GEN LENGTH
pass NAME
pass remove NAME
pass edit NAME
gpg --full-generate-key
gpg --export GPGID > ~/Library/CloudStorage/Dropbox/.public.key
gpg --export-secret-key GPGID > ~/Library/CloudStorage/Dropbox/.private.key
gpg --import ~/Library/CloudStorage/Dropbox/.public.key
gpg --allow-secret-key-import --import ~/Library/CloudStorage/Dropbox/.private.key
gpg --list-keys --keyid-format short
gpg --list-secret-keys --keyid-format long
gpg --armor --export GPGID
gpg --edit-key GPGID
trust
If gpg: WARNING: unsafe permissions on homedir '~/.gnupg'
is shown, run
chmod 700 ~/.gnupg
Create configuration file:
cd ~/.gnupg; touch gpg-agent.conf; textedit gpg-agent.conf
Add the following lines:
default-cache-ttl 0
max-cache-ttl 0
Reload gpg-agent
:
gpgconf --kill gpg-agent; gpgconf --launch gpg-agent
Add pinentry-mac
:
echo "pinentry-program $(which pinentry-mac)" >> ~/.gnupg/gpg-agent.conf
Note that for Intel:
|-> which pinentry-mac
/usr/local/bin/pinentry-mac
while for Arm:
|-> which pinentry-mac
/opt/homebrew/bin/pinentry-mac
For brew
:
cd "$(brew --repository)"
git config --global user.email "miccal.matthews@gmail.com"
git config --global user.name "miccal"
git config --global user.signingKey 'Miccal Matthews <miccal.matthews@gmail.com>'
git config --global commit.gpgSign true
git config --global gpg.program $(which gpg)
For homebrew-cask
:
cd "$(brew --repository)"/Library/Taps/homebrew/homebrew-cask
git config --global user.email "miccal.matthews@gmail.com"
git config --global user.name "miccal"
git config --global user.signingKey 'Miccal Matthews <miccal.matthews@gmail.com>'
git config --global commit.gpgSign true
git config --global gpg.program $(which gpg)
For homebrew-core
:
cd "$(brew --repository)"/Library/Taps/homebrew/homebrew-core
git config --global user.email "miccal.matthews@gmail.com"
git config --global user.name "miccal"
git config --global user.signingKey 'Miccal Matthews <miccal.matthews@gmail.com>'
git config --global commit.gpgSign true
git config --global gpg.program $(which gpg)
Note that for Intel:
|-> which gpg
/usr/local/bin/gpg
while for Arm:
|-> which gpg
/opt/homebrew/bin/gpg
For brew
:
cd "$(brew --repository)"
git remote -v
Expected output:
origin https://github.com/Homebrew/brew (fetch)
origin https://github.com/Homebrew/brew (push)
For homebrew-cask
:
cd "$(brew --repository)"/Library/Taps/homebrew/homebrew-cask
git remote -v
Expected output:
origin https://github.com/homebrew/homebrew-cask (fetch)
origin https://github.com/homebrew/homebrew-cask (push)
For homebrew-core
:
cd "$(brew --repository)"/Library/Taps/homebrew/homebrew-core
git remote -v
Expected output:
origin https://github.com/Homebrew/homebrew-core (fetch)
origin https://github.com/Homebrew/homebrew-core (push)
After cd
'ing into the relevant directory:
git status
git checkout -b BRANCH
touch FILE.rb
textedit FILE.rb
git add FILE.rb
git rm FILE.rb
git commit --message "PR TITLE"
git commit --all --message "PR TITLE"
git commit --amend --message "PR TITLE"
git push BRANCH
git fetch --all
git fetch origin pull/ID/head:BRANCH
git rebase --interactive origin/master # squash
git push --force BRANCH
git push --force-with-lease BRANCH
git checkout master
git branch
git branch --delete --force BRANCH
git branch -a
git remote prune origin
Example:
git ls-remote https://gitlab.com/MasterPassword/MasterPassword.git
Show/hide hidden files
defaults write com.apple.finder AppleShowAllFiles TRUE; killall Finder
defaults write com.apple.finder AppleShowAllFiles FALSE; killall Finder
List enabled users:
sudo fdesetup list
Remove Guest
user:
sudo fdesetup remove -user Guest
defaults write com.apple.dock tilesize -integer 40; killall Dock