User Tools

Site Tools



First time configuration of a new Macintosh. Updated for macOS Sierra 10.12


  • System Preferences:
    • Trackpad → Tap to Click (For not having to press hard for a click.)
    • Tap-and-drag: Accessibility → Mouse & Trackpad → Trackpad Options and enable 'Dragging (with/without) Drag Lock'
  • Open the Photos app, and drag a userpic to it. Then change your userpic in the System Preferences.
  • Get Chrome (Login and sync.)
  • Show the full path in the finder with
    defaults write _FXShowPosixPathInTitle -bool true; killall Finder
  • System Preferences:
    • Mouse
    • Keyboard
      • Set Key Repeat to fastest, and Delay until Repeat to second shortest.
      • Some apps don't repeat anything because some keys have a character accent menu. To disable:
        defaults write -g ApplePressAndHoldEnabled -bool false
      • Microsoft Natural Ergonomic Keyboard 4000 doesn't have a current driver. That's OK.
      • Swap the Option and Command keys.
    • Dock
      • Position on Right
      • Automatically show and hide dock
    • Outlook
      • Turn off auto underline-to-italic, dashes, smart quotes: Preferences → AutoCorrect then click on the AutoFormat page

BSD vs. Linux commands

macOS comes with BSD grep pre-installed, which doesn't use the Perl -P flag.

Go to and run the ruby command.

brew install grep --with-default-names
brew install gnu-sed --with-default-names
brew install findutils --with-default-names
brew install jq
brew install tree
brew install httpie
brew install inetutils  # If you need telnet (maybe nc is good enough?)
brew install telnet
brew install gnuplot
brew install pv
brew install gnupg
brew install socat
brew install wget
brew install nmap
brew install tmux
brew install saulpw/vd/visidata
brew install ripgrep
brew install moreutils
brew install gitui
# Maybe also readline if you brew install python3

brew install bash
sudo echo /usr/local/bin/bash >> /etc/shells
chsh -s /usr/local/bin/bash

Log out of that console window and log back in again.


Shortcut Action
Command+space Spotlight (Very handy!)
Command+W Close the window.
Command+Q Quit the application. (Closing its windows isn't enough.)
Command+click Open the link in another tab.
Command+Tab Switch between applications.
Command+` Switch between windows within the application.
Command+Opt+Esc Force Quit the application
Shift+Opt+Command+V Paste without formatting

Daemons, Agents, Cron, Launchd

The preferred way to set a repeating task is not to use a cronjob but launchd. :!: Note that there's a breaking change in macOS Catalina. Launchd agent no longer functions after Catalina upgrade.

In your ~/bin directory, create a job to run,
#!/usr/bin/env bash
curl --data "`hostname -s`=`ifconfig | /usr/local/bin/grep "inet " | grep -v "" | \
sed -E 's/.*inet (([0-9]+.){3}[0-9]+).*/\1/' | perl -p -e 'chomp if eof;s/\n/,/'`&auth=[your secret auth]" ""
sleep 11  # if launched as a daemon, live for 11s to not be detected as buggy.

That “sleep 11” is to mitigate the buggy daemon detection mentioned here.

Note that we had to specify the path to the homebrew grep, because LaunchAgent would use the default one instead.

cd into ~/Library/LaunchAgents or (/Library/LaunchDaemons if it can really be a daemon) and add a new plist file

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
<plist version="1.0">

Finally, you need to explicitly load it.

$ launchctl load -w /Library/LaunchDaemons/com.dlma.tag_ip_address.plist

Software to Get

Danelope suggests these Image Editors:

Preferences I don't set anymore

iOS Apps

Here are iPhone/iPod apps I really want to make.


Sokoban: Plenty already exist. What matters here is an intuitive (to me) user control.


What matters here is the ability to scrobble what I've played to directly from my iPhone/iPod.

Prey for when the device goes missing. (Or is stolen by a thief.)

NFS for macOS

On the server side get your user ID and group ID (id -u; id -g), and update /etc/exports with something like:

/path/to/share 10.?.?.?(rw,sync,insecure,all_squash_anonuid=<uid>,anongid=<gid>)

10.?.?.? would be the IP of the Macintosh. (That'll have to be updated every time it changes.) For a Macintosh to connect, “insecure” was said to be needed. And “all_squash” was needed for the uid and gid to be set. Restart and check the NFS server with “sudo systemctl restart nfs-server.service; systemctl status nfs-server.service”.

Get the “hostname” for the server for the next bit on the client side. Call it jdoe-t3610.

On the client side, you could manually mount the NFS volume with something like, “nfs://jdoe-t3610/path/to/share”

Or better, configure automounter by adding a line to /etc/auto_master:

/-			auto_sandbox	-rw

And then make the file /etc/auto_sandbox

/sandbox	nfs://jdoe-t3610/path/to/share

For the purpose of P4 client compatibility with the dev system, I use a symbolic link at root.

$ sudo ln -s /sandbox/sandbox/stb/ /link_to_p4_root

If you want your changes to take effect immediately,

$ sudo automount -vc


aps, todo

apple.txt · Last modified: 2022/11/30 09:15 by dblume