Skip to content

💻 Elegant defaults for my macOS experience.

Notifications You must be signed in to change notification settings

lukeify/dotfiles

Repository files navigation

Dotfiles

✨ Stuff I need to do all the things ✨

git clone git@github.com:lukeify/dotfiles.git
cd dotfiles
./dotfiles.sh

Running

./dotfiles.sh expects that arguments will be provided to determine which aspects of the system should be configured. This explicitly requires you to read the documentation under ./dotfiles.sh --help to gain an understanding of the implications of each aspect to be configured. These aspects can be enabled with the following flags:

  1. APPS=1 will install brew, associated apps, packages, and casks.
  2. DEFAULTS=1 will set system-wide defaults using defaults write.
  3. DOCK=1 will configure the dock using dockutil.
  4. HOME=1 configures many services in your home directory (zsh, vim, ssh, etc).
  5. TEXT_REPLACEMENTS=1 will generate a Text Substitutions.plist file that can be manully dropped into the System Settings.app > Keyboard > Text pane.

Useful resources

Thanks to the following people for inspiration and configuration ideas:

Notes

Text replacements errata

Text replacements in macOS are backed by CloudKit and synced across your iCloud account. These are written out to NSGlobalDomain under preference NSUserDictionaryReplacementItems; however CloudKit will not sync any changes you make to this preference, instead, you must write a row to the ZTEXTREPLACEMENTSENTRY table in the ~/Library/KeyboardServices/TextReplacements.db SQLite database, setting ZNEEDSSAVETOCLOUD to 1, while also defining the ZPHRASE and ZSHORTCUT.

These changes are not synced to iCloud immediately and may require a system restart.

Todos

  • Implement both Terminal.app and iTerm2.app themes (and iTerm2.app configures).
  • Create application shortcut adjustements.
  • Properly implement text replacements.
  • Configure the Finder sidebar.
  • Configure Transmission properly.
  • Set the desktop background, even.
  • Configure pmset.
  • Remove prerequisites for both yarn and node existing on the system to run dotfiles.sh, by migrating to Rust.
  • Try to follow the patterns set out by dotfiles.github.io.
  • Configure ~/.ssh/config and ~/.git/config.
  • Configure vim config.
  • Investigate hushlogin.
  • Investigate neofetch configuration.