Automatic setup
- Follow ooloth/dotfiles README steps
- update software via system preferences, not command line (update repo instructions)
Manual setup
Automate as many of the following as possible. (Find a link to a reference for all settings commands…?)
Terminal
- Run
ssh -T git@github.com
to confirm I can ssh to github- If I see “Permission denied (public key).”, the public key I entered in GitHub doesn’t match the private key on my Mac. Try adding it again, making sure to include everything in my
~/.ssh/id_rsa
file.
- If I see “Permission denied (public key).”, the public key I entered in GitHub doesn’t match the private key on my Mac. Try adding it again, making sure to include everything in my
- Set up
gh
…- run
gh auth login
- choose GitHub.com
- choose SSH
- choose existing public SSH key
- run
- copilot cli: how to automate setup steps? https://www.npmjs.com/package/@githubnext/github-copilot-cli
- Install
yarn
…- Follow these official instructions
- Clone active repos in
recursionpharma
and/orooloth
folders- e.g.
gh repo clone ooloth/m
ichaeluloth.com
- e.g.
System preferences
- iCloud…
- Sign in
- Add “Desktop & Documents Folders” to apps that store data in iCloud
- (It may take an hour or so for the remote iCloud folder to show up)
- General > Software update > Advanced…
- Enable “Check for updates”
- Enable “Download new updates when available”
- Enable “Install app updates from the App Store”
- Appearance
- Set “Appearance” to “Dark”
- Set “Click in the scroll bar to” to “Jump to the spot that’s clicked”
- Accessibility:
- Display: Enable “Reduce motion”
- Siri: disable if not wanted
- Control Center > Menu Bar Only:
- Spotlight: enable “Don’t Show in Menu Bar”
- Siri & Spotlight:
- enable/disable “Ask Siri” as preferred
- Privacy & Security:
- Microphone: enable Zoom, Slack
- Camera: enable Zoom, Slack
- Full Disk access: enable Alfred, Kitty, Terminal, VS Code
- Accessibility: enable Alfred 5, HyperKey, Rectangle
- Screen Recording: enable Zoom, Slack
- Developer Tools: enable Terminal, Kitty and VS Code so macOS will let me open apps installed with Homebrew ==- if I do this early in the setup process, will I be able to open vs code and install its extensions + symlink my preference files?==
- Desktop & Dock
- Enable “Automatically hide and show the Dock”
- Disable “Show recent applications in Dock”
- Windows & Apps:
- set “Prefer tabs when opening documents” to “Always”
- disable “Close windows when quitting an application”
- Mission Control: disable “Automatically rearrange Spaces based on most recent use”
- Touch ID & Password: add right + left index fingers
- Keyboard > Keyboard Shortcuts… > Spotlight:
- Disable “Show Spotlight search”
- Disable “Show Finder search window”
Apps
Dock:
- Manually remove all apps (only Finder +K the open ones should appear)
Alfred:
- Enter Alfred 5 PowerPack license code
- Alfred Preferences > Powerpack > Copy License, or
- search email for “Your Alfred 5 Powerpack Upgrade order”
- System Settings > Keyboard > Spotlight
- disable “Show Spotlight search”
- disable “Show Finder search window”
- Preferences:
- General:
- set Alfred Hotkey to command-space
- set “Where are you” to “Canada”
- disable “use .com for Google searches”
- Features:
- Default Results > Essentials: disable Contacts
- Web Bookmarks: enable Safari Bookmarks
- Workflows:
- install & configure Shimmering Obsidian
- Preferences (“Configure workflow”):
- Set “Vault Path”
- Set “Ignore Heading Levels” to “h1 h2 h3 h4 h5 h6” (i.e. ignore all headings)
- Disable “Open Note After Appending”
- Set “Appending Prefix” to ”- ”
- Set “New Note Location” to “/writing”
- Set “Scratchpad Note Path” to “/writing/_scratchpad”
- Set “Scratchpad Append Prefix” to ”- ”
- Press “Save”
- Workflow diagram:
- main search:
- swap “fn” and “ctrl” branches of the search workflow (so ctrl-enter appends to a note)
- main search:
- Preferences (“Configure workflow”):
- install & configure Shimmering Obsidian
- Appearance > Options:
- Enable “Hide hat on Alfred window”
- Enable “Hide menu bar icon”
- Set “Show result subtext” to “Only for Alternative Actions”
- Advanced > Syncing: set preferences folder to iCloud Drive > Alfred
- General:
1Password:
- download v8 from website
- scan setup code by holding phone up to Mac camera
- set to open in the background when I log in
- Preferences:
- General > Menu bar: Disable “Show 1Password in the menu bar”
- Security > Auto-lock:
- Disable “Lock after computer is idle for X minutes”
- Watchtower:
- Enable “Check for vulnerable passwords”
Hyperkey:
- Download from Hyperkey
- Preferences:
- Enable “Remap caps lock to left control”
- Enable “Quick press caps lock to execute “esc”
- Then change from “esc” to anything else
- Then change back to “esc”
- Press “esc” to confim the caps lock light is not enabled (if so, continue toggling and adjusting dropdown until fixed)
- Enable “Launch on login”
- Enable “Check for updates automatically”
- Enable “Hide menu bar icon”
Safari:
- Preferences:
- General:
- Disable “Open ‘safe’ files after downloading”
- AutoFill: disable…
- “Using information from my contacts”
- “User names and passwords”
- “Credit cards”
- Extensions:
- enable Notion Web Clipper
- enable 1Password
- enable Subscribe with Reeder
- enable Vimari
- Advanced:
- enable “Press Tab to highlight each item on a webpage”
- enable “Show Develop menu in menu bar”
- General:
- Toolbar: move icons to preferred spots (most on right side)
- View menu:
- Show Favorites Bar
Chrome/Brave:
- Install extensions…
- Vimium
- React Developer Tools
- yorkxin/copy-as-markdown: Copying Link, Image and Tab(s) as Markdown Much Easier.
- Chrome Preferences > On startup: enable “Continue where you left off”
Rectangle:
- System Preferences > Privacy: enable accessibility permissions
- Select “Recommended” shortcuts (rather than Spectacle)
- Enable “Launch on login”
- Enable “Hide menu bar icon”
- Enable “Check for updates automatically”
- Set “Repeated commands” to “cycle 1/2, 2/3 and 1/3 on half actions”
Finder:
- Add these to setup script?
- Preferences:
- General:
- New finder windows show “Recents”
- Tags:
- disable all
- Sidebar:
- Enable home folder
- Disable “Recent Tags”
- Advanced:
- enable “show all filename extensions”
- disable “show warning before changing an extension”
- enable both “keep folders on top” settings
- General:
- View menu:
- Show path bar
- Show status bar
- Click on each sidebar item, set to column view, then “Show view options” (Cmd-j):
- enable “always open in column view”
- group by “Kind” (except sort Recents, Desktop + Downloads by “Date modified” + Apps by “Name”)
- sort by “Name”
Notion:
- Settings & Members > My notifications & settings > Appearance: Dark
- Safari > Preferences > Extensions: enable Notion Web Clipper
VS Code:
- ⚠️ Add missing
.env
or.env.local
files to each repo now! ⚠️- (before deleting them on old computer)
- Test that each repo’s important scripts work (e.g.
build
anddev
)
Amphetamine:
- Don’t show intro wizard again
- Triggers: enable from 9am-5pm on work computer
- Appearance:
- Set “Menu Bar Image” to “Caffeine”
- Enable “Use low opacity when inactive”
Reeder:
- Add Feedbin Feeds
- Sign into Feedbin account
- Enable “Sync on wake up from sleep”
- Set “Keep read items” to “Always”
- Set “Sort subscriptions” to “Feeds first”
- Preferences:
- General
- Enable “Open links in background”
- Set “Sort unread items” to “Oldest first”
- Appearance
- Font size: “L”
- Image previews: “Large”
- Bionic reading: disable “Show in toolbar”
- Gestures:
- Set “Swipe right” to “Toggle read” (but use “m” instead!)
- Set “Swipe left to “Starred” (but use “s” instead!)
- Actions and Sharing:
- Enable “Copy Link” + set shortcut to “l”
- General
- Feedbin > Settings > General > Sources:
- Drag “Save to Feedbin” bookmarklet to bookmarks bar of all relevant browsers
- System Preferences > Keyboard > Keyboard Shortcuts… > App Shortcuts > Google Chrome/Brave/Safare: set “Send to Feedbin” to ctrl-f
Slack:
- choose dark theme (other settings should be synced)
Things:
- Preferences:
- Quick Entry
- Enable “Enable shortcut for Quick Entry: Control-Space”
- Enable “Enable shortcut for Quick Entry with Autofill: Control-Option-Space”
- Click link to download page
- Download zip file
- Double-click .zip file
- Move “Things Helper” to Applications
- Double-click “Things Helper”
- Reminders:
- Enable “Show to-dos from “Inbox” in Inbox
- Calendar:
- Enable: “Show Calendar Events in Today and Upcoming lists”
- Enable all iCloud calendars
- Quick Entry
Prepros:
- Download v6 from Frequently Asked Questions • Homebrew cask automatically installs v7+ which I don’t have a license for • Prepros 🛠️
- License is in email history
Zoom:
- System Settings: give permission to share screen (how?)
- Preferences:
- General:
- Enable “Use dual monitors”
- Disable “Enter full screen when starting or joining a meeting”
- Enable “Always show meeting controls”
- Disable “Ask me to confirm when I leave a meeting”
- Enable “Show meeting timers”
- Disable “Add Zoom to macOS menu bar”
- Enable “Stop my video and audio when my display is off or screen saver begins”
- Set skin tone
- Enable “Play audio chime when someone has raised their hand”
- (add more)
- General:
AppCleaner:
- Preferences:
- SmartDelete: set to “On”
- Updates: enable “Check updates automatically”
Docker:
- Preferences
- General: enable “Start Docker Desktop when you log in”
- Software updates: enable “Always download updates”
FIXME: Issues from last run
SSH:
**Info:** Adding keys to ssh-agent and Keychain
WARNING: The -K and -A flags are deprecated and have been replaced
by the --apple-use-keychain and --apple-load-keychain
flags, respectively. To suppress this warning, set the
environment variable APPLE_SSH_ADD_BEHAVIOR as described in
the ssh-add(1) manual page.
Identity added: /Users/michael.uloth/.ssh/id_rsa (michael.uloth@MULO-JQ97NW-MBP)”
Dotfiles:
- recursively duplicates config subfolder subfolders (e.g. “mu”, “colorscheme”, “skins”, “colours” directories) when symlinking (fix that)
Homebrew:
Warning: 'arl/arl/gitmux' formula is unreadable: No available formula with the name "arl/arl/gitmux".
Please tap it and then try again: brew tap arl/arl
Warning: 'yqrashawn/goku/goku' formula is unreadable: No available formula with the name "yqrashawn/goku/goku".
Warning: 'jesseduffield/lazygit/lazygit' formula is unreadable: No available formula with the name "jesseduffield/lazygit/lazygit".
Please tap it and then try again: brew tap jesseduffield/lazygit
Zsh:
**Info:** Changing your shell to zsh...
set_up_zsh:11: command not found: laptop_echo
Installing node and general global dependencies…
Installing Node v19.9.0 (arm64)
Running command elevated
**error:** Can't download the requested binary: Can't extract the file: failed to unpack `/Users/michael.uloth/Library/Application Support/fnm/node-versions/.downloads/.tmpQDKIlq/node-v19.9.0-darwin-arm64/lib/node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/fs/lib/rm/polyfill.js`
set_up_node:5: command not found: npm
**Info:** Enabling corepack to activate yarn
set_up_node:9: command not found: corepack
Setting up tmux
**Info:** Installing tpm...
fatal: destination path '/Users/michael.uloth/.config/tmux/plugins/tpm' already exists and is not an empty directory.
**Warning:** TODO: open tmux and run Prefix
Setting up neovim
**Info:** Installing global npm dependencies for neovim...
set_up_neovim:4: command not found: npm
**Warning:** TODO: open vim + save plugins-setup.lua to install plugins
VS Code:
- “Library/Application Support/Code” doesn’t get created until VS Code is opened for the first time (so symlinking doesn’t work)
- How to automatically open given the “are you sure?” Dialog that pops up?
- None of the extensions get installed either because I need to add “code” command to path before I can try using it
Info: Symlinking VS Code settings, keybindings and snippets…
ln: /Users/michael.uloth/Library/Application Support/Code/User/settings.json: No such file or directory
ln: /Users/michael.uloth/Library/Application Support/Code/User/keybindings.json: No such file or directory
ln: /Users/michael.uloth/Library/Application Support/Code/User/snippets: No such file or directory
Inbox
- copilot cli: how to automate setup steps? https://www.npmjs.com/package/@githubnext/github-copilot-cli
- create script for quickly symlinking new files and folders I add while using computer?
- move each script function into a separate file so they can be called separately (e.g. I want to call the symlink function easily later if I create a new file that hasn’t been symlinked yet) - make an alias that calls that one script
- Customize Your Mac from the Command Line!
- split setup script into individual files
- google/zx: A tool for writing better scripts
- one written in ZSH for the minimum amount I need to before using zx
- the rest using zx
- possible to call each individually later
- Dotfiles: add a “scripts” folder with each script in a separate file that can be run separately (e.g. rerun just the symlinking script, just the git script, etc)
- add tpm clone for tmux
$ git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm
- Mac settings: hide dock
- mac settings: dark appearance
- mac settings: prefer tabs always
- mac settings: disable “close windows when quitting an app”
- mac settings: hot corners: top right shows desktop
- mac settings: keyboard shortcuts: disable “Show Spotlight search”
- mac settings: all finder windows organized by columns + sorted by kind
- mac settings: Finder: new Finder windows show Downloads
- Mac settings: Keyboard: Modifier keys: give the Caps Lock key the Escape action
- Safari preferences > Advanced - check option to make tabbing work
- include chrome extensions (e.g. Vimium, 1Password)?
- Safari/Chrome/FF - disable default password filling + add 1password extension and settings (e.g. so I can immediately visit github and be prompted by 1password, not Keychain)
- rectangle - settings - disable “Cycle across displays on repeated left or right commands” (so that repeated left/right commands will cycle through 1/2, 2/3 and 1/3 size)
- rectangle - add my preferred shortcuts
- alfred - add preferences?
- search engine hints
- bookmarks
- etc?
- vs code: symlink vs code config files (after installing vs code):
- sl $HOME/Repos/ooloth/dotfiles/vs-code/keybindings.json $HOME/Library/Application\ Support/Code/User/keybindings.json
- sl $HOME/Repos/ooloth/dotfiles/vs-code/settings.json $HOME/Library/Application\ Support/Code/User/settings.json
- if it exists, delete $HOME/Library/Application\ Support/Code/User
- sl $HOME/Repos/ooloth/dotfiles/vs-code/snippets $HOME/Library/Application\ Support/Code/User
- Bartender 5 - Take control of your Menu bar • use to hide/view my menu bar items?
- macos Preferences > General > AirDrop & Handoff: disable “Allow Handoff” (at least on work devices)
- pip - How can I install GRPCIO on an Apple M1 Silicon laptop? - Stack Overflow
- sballin/alfred-search-notes-app: Use Alfred to quickly open notes in iCloud/Apple Notes. - alfred workflow to search Apple Notes
- tmux: need to manually install plugins and activate my conf after this installation completes? can I automate that here? add to “u” update alias?
- Things: System Settings -> app shortcuts -> Things: cmd-shift-p to “Convert to Project…”
- Stow has forever changed the way I manage my dotfiles • Dreams of Autonomy 📺
- Switch to using
stow
to make it easier to update my symlink as I add new files to my dotfiles after the initial setup? - Or just make a reusable helper script for resymlinking?
- Switch to using
- Migrate from Intel (Rosetta2) to ARM brew on M1 · Homebrew · Discussion