Skip to content

tungd/dotfiles

Repository files navigation

macOS Setup

Bootstrap

Install my SSH and GPG keys

Fix macOS Sierra ssh-agent issue

cat >> ~/.ssh/config <<EOF
Host *
    IdentityFile ~/.ssh/id_rsa
    AddKeysToAgent yes
EOF

Clone the dotfiles

mkdir -p ~/Projects
git clone git@github.com:tungd/dotfiles-lean.git ~/Projects/dotfiles

Making aliases

mkdir -p ~/.local/bin

ln -s ~/Projects/dotfiles/.bash_profile ~/.bash_profile
ln -s ~/Projects/dotfiles/.bashrc ~/.bashrc
ln -s ~/Projects/dotfiles/.emacs.d ~/.emacs.d
ln -s ~/Projects/dotfiles/.gitconfig ~/.gitconfig
ln -s ~/Projects/dotfiles/.npmrc ~/.npmrc
ln -s ~/Projects/dotfiles/.eslintrc ~/.eslintrc

Install apps and utilities

XCode

xcode-select --install

macports

Global CLI tools are managed by MacPorts again. The Makefile keeps the common package set and custom Emacs port wired together:

make macports

Local ports live in this repo under ports/, but MacPorts reads them from a mirror outside $HOME so its macports build user can access them:

sudo mkdir -p /opt/local/var/macports/sources/local
sudo cp -R /Users/tung/Projects/dotfiles/ports /opt/local/var/macports/sources/local/dotfiles-ports
sudo chown -R tung:staff /opt/local/var/macports/sources/local/dotfiles-ports

Add this source before the default source in /opt/local/etc/macports/sources.conf:

file:///opt/local/var/macports/sources/local/dotfiles-ports [nosync]
rsync://rsync.macports.org/macports/release/tarballs/ports.tar.gz [default]

After that, make emacs-weekly keeps the mirror updated with rsync and reruns portindex there.

nix

No longer used for the global profile. If Determinate Nix is still installed on the machine, remove it after MacPorts has the required tools:

/nix/nix-installer uninstall

I also maintained a separate port for building Emacs. I have it updated weekly.

The weekly Emacs build is managed through the local MacPorts port under ports/editors/emacs-weekly:

make emacs-weekly

AWS Session Manager plugin

cd /tmp
curl "https://s3.amazonaws.com/session-manager-downloads/plugin/latest/mac_arm64/sessionmanager-bundle.zip" -o "sessionmanager-bundle.zip"
unzip sessionmanager-bundle.zip
./sessionmanager-bundle/install -i ~/.local/lib/aws-ssm -b ~/.local/bin/session-manager-plugin
curl -L https://raw.githubusercontent.com/qoomon/aws-ssm-ec2-proxy-command/master/aws-ssm-ec2-proxy-command.sh -o ~/.local/aws-ssm-ec2-proxy-command.sh
chmod +x  ~/.local/aws-ssm-ec2-proxy-command.sh
cat >> ~/.ssh/config <<EOF
Host i-* mi-*
  IdentityFile ~/.ssh/id_rsa
  ProxyCommand aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'
  StrictHostKeyChecking no
EOF

System configuration

Keyboard configuration

Decrease repeat delay, increase repeat rate and disable Emoji.

defaults write -g ApplePressAndHoldEnabled -bool false
# defaults write -g InitialKeyRepeat -int 10
defaults write -g KeyRepeat -int 1
defaults write -g NSUserKeyEquivalents -dict-add 'Emoji & Symbols' '@^j'

No shadow on window capture (Cmd-S-4 SPC)

defaults write com.apple.screencapture disable-shadow -bool true

Disable font-smoothing, works better with 2k external display (provided web pages are zoomed & editors uses medium fonts)

defaults -currentHost write -g AppleFontSmoothing -int 2

Experimental build of emacs-mac (Mituharu’s port)

git clone https://github.com/jdtsmith/emacs-mac.git
cd emacs-macs
./autogen.sh
CFLAGS="-O3 -mcpu=native -mtune=native -fomit-frame-pointer -DFD_SETSIZE=10000 -DDARWIN_UNLIMITED_SELECT" ./configure --with-native-compilation=aot --with-tree-sitter --enable-mac-app=yes --prefix=$HOME/.local --with-modules --enable-mac-self-contained --without-dbus
make -j10
cp -R native-lisp mac/Emacs.app/Contents
make install
cp -R mac/Emacs.app ~/Applications

About

Minimum viable dotfiles

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors