1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
- hosts: all
  tasks:
    - group_by: key=os_{{ ansible_distribution }}
      tags: always

- hosts: os_MacOSX
  tasks:
    - file: path=~/Library/KeyBindings state=directory
    - name: Symlink Emacs-style keybindings for OS X
      file:
        src: ~/.dotfiles/macos/DefaultKeyBinding.dict
        dest: ~/Library/KeyBindings/DefaultKeyBinding.dict
        state: link

    - file: path=~/Library/Dictionaries state=directory
    - name: Install Webster's 1913 dictionary
      block:
        - copy:
            src: ~/.dotfiles/macos/websters-1913.dictionary/
            dest: ~/Library/Dictionaries/websters-1913.dictionary

        # This worked in earlier versions of MacOS, but not in Big Sur?
        # The plist now looks like this:
        #
        # ❯ /usr/libexec/PlistBuddy -c "Print" ~/Library/Preferences/com.apple.DictionaryServices.plist
        # Dict {
        #     DCSActiveDictionaries = Array {
        #         /Users/alpha/Library/Containers/com.apple.Dictionary/Data/Library/Dictionaries/websters-1913.dictionary
        #         com.apple.dictionary.NOAD
        #         com.apple.dictionary.OAWT
        #         com.apple.dictionary.AppleDictionary
        #         /System/Library/Frameworks/CoreServices.framework/Frameworks/DictionaryServices.framework/Resources/Wikipedia.wikipediadictionary
        #     }
        #     DCSPreferenceVersion = 7
        #     DCSLastUsedAssetCompatibilityVersion = 10
        # }
        #
        # - shell: /usr/libexec/PlistBuddy -c "Print :DCSActiveDictionaries:0" ~/Library/Preferences/com.apple.DictionaryServices.plist
        #   register: websters_1913_result
        # - command: >
        #     /usr/libexec/PlistBuddy
        #     -c "Add :DCSActiveDictionaries:0 string /Users/alpha/Library/Containers/com.apple.Dictionary/Data/Library/Dictionaries/websters-1913.dictionary"
        #     ~/Library/Preferences/com.apple.DictionaryServices.plist
        #   when: websters_1913_result is failed

    - name: Enable Touch ID for sudo
      become: yes
      lineinfile:
        path: /etc/pam.d/sudo
        insertafter: '^auth\s+sufficient'
        regexp: '^auth\s+sufficient\s+pam_tid.so$'
        line: "auth\tsufficient\tpam_tid.so"
    - name: Enable Touch ID for sudo in tmux
      block:
        - shell: brew --prefix
          register: brew_prefix
        - lineinfile:
            path: /etc/pam.d/sudo
            insertbefore: '^auth\tsufficient\tpam_tid.so'
            regexp: '^auth\s+optional\s+.*pam_reattach.so$'
            line: "auth\toptional\t{{ brew_prefix.stdout | trim }}/lib/pam/pam_reattach.so"
          become: yes

    # https://developer.1password.com/docs/ssh/get-started#step-4-configure-your-ssh-or-git-client
    - file: path=~/.1password state=directory
    - name: Symlink 1Password agent
      file:
        src: ~/Library/Group\ Containers/2BUA8C4S2C.com.1password/t/agent.sock
        dest: ~/.1password/agent.sock
        state: link