OSX Catalina: work

From wikinotes

Install

Graphical Installers/Settings

Configure terminal.app
Configure kinesis savant elite 2 and karabiner
Configure easy-move-resize

Packages

nix packages

nix-env -i \
  cmake \
  ripgrep \
  fzf \
  silver-searcher \
  tree-sitter \
  macvim \
  bat

brew packages

brew install \
  tmux \
  ipython \
  qutebrowser \
  alacritty \
  universal-ctags \

gems

sudo gem install ripper-tags
sudo gem install solargraph

neovim

# neovim
brew install neovim  # don't use nix, coc-solargraph requires writable

# neovim nightly (for treesitter)
curl -LO https://github.com/neovim/neovim/releases/download/nightly/nvim-macos.tar.gz
mkdir ~/opt
tar -xvf nvim-macos.tar.gz --skip-components=1 -C ~/opt

tree-sitter

# see tree-sitter languages: https://github.com/nvim-treesitter/nvim-treesitter#supported-languages
nvimp -c ":PlugUpdate" -c ':qa!'

for lang in python ruby html css typescript tsx yaml json bash javascript nix; do
    nvim -c ":TSInstallSync! ${lang}" -c ":quit"
done

Configuration

MacOS Settings

Shell

echo /opt/homebrew/bin/zsh > /etc/shells
chsh  # change shell to /opt/homebrew/bin/zsh

Keyboard

Settings > Keyboard:
    Shortcuts:
        Spotlight:
          - Show Spotlight Search: Opt + p
        Mission Control:
            [x] Switch to Desktop {1..9}:  Opt + {num}  # (first press Ctrl+up, create 9x spaces)
            [ ] Show Desktop (disable F11)
        App Shortcuts:
            - (All Applications) Close Tab:     Ctrl+W  # create
            - (Google Chrome) Select Next Tab:  Ctrl+P  # create
            - (Google Chrome) Select Next Tab:  Ctrl+N  # create
            - (All Applications) Zoom:          Super+m # create
        Function Keys:
            - [x] Use F1, F2 as function keys
    Keyboard:
        Touchbar shows: F1, F2, etc.
    App Shortcuts:
        Modifier Keys:   # NOTE: choose your keyboard from the dropdown
            Caps Lock: Control
            Option:    Command
            Command:   Option
    Text:
        [ ] Add period with double-space

Trackpad

Settings > Trackpack:
    Scroll & Zoom:
        [ ] Scroll Direction: Natural  # invert mouse direction

Mission Control

Settings > Mission Control:
  - [ ] Automatically rearrange Spaces based on most recent use  # windows stay on assigned workspace

Finder

(taskbar): Finder
  Preferences:
    New Finder Windows Show: 'will'

Alacritty

(open app): Automator
  File > New > Quick Action:
    - drag (Library > Run Shellscript) into window
    - input: None
    - shellscript: open -n "/Applications/MacPorts/Alacritty.app/Contents/MacOS/alacritty"
  File > Save: 'Alacritty'
Settings > Keyboard:
  Shortcuts:
    Services:
      General:
        Alacritty: Win+Shift+'

 Settings > Security & Privacy:
   Privacy:
     Full Disk Access:
       (add):
         /Applications/MacPorts/Alacritty.app/Contents/MacOS/alacritty

Users/Groups

Settings > Users and Groups:
  Login Items (tab):
    - karabiner elements
    - Easy Move+Resize

Misc

Backup and Sync from Google  # live backup files to google drive
- Screen Saver under 5min
- Always ask password on screen saver
- hot corner for screen saver

(apple) > System Preferences:
  - internet accounts:
    - icloud:
      - [x] Find my Mac

Show sound in menubar

Settings:
  Control Center:
     Sound: Always show in menubar

dotfiles

There's a whole pile in $salt_userfiles.

Rebind Home/End

TODO:

try remapping F13 to insert, so I can use shift+insert

# ~/Library/KeyBindings/DefaultKeyBinding.dict
{
  "\UF729"  = moveToBeginningOfParagraph:; // home
  "\UF72B"  = moveToEndOfParagraph:; // end
  "$\UF729" = moveToBeginningOfParagraphAndModifySelection:; // shift-home
  "$\UF72B" = moveToEndOfParagraphAndModifySelection:; // shift-end
  "^\UF729" = moveToBeginningOfDocument:; // ctrl-home
  "^\UF72B" = moveToEndOfDocument:; // ctrl-end
  "^$\UF729" = moveToBeginningOfDocumentAndModifySelection:; // ctrl-shift-home
  "^$\UF72B" = moveToEndOfDocumentAndModifySelection:; // ctrl-shift-end
}

Keyboard Repeat Rate

TODO:

Document the `defaults` command

https://apple.stackexchange.com/questions/10467/how-to-increase-keyboard-key-repeat-rate-on-os-x

defaults write -g InitialKeyRepeat -int 10  # (trying 12) normal minimum is 15 (225 ms)
defaults write -g KeyRepeat -int 1          # normal minimum is 2 (30 ms)
# reboot

RepeatKeys instead of hold-for-accent

TODO:

Document the `defaults` command

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false

restart applications to take effect.

Drag/Resize Window with Modkey

  • Ctrl + Cmd + Click (Ctrl + win + click)


# requires reboot
defaults write -g NSWindowShouldDragOnGesture -bool true  # enable
defaults delete -g NSWindowShouldDragOnGesture            # disable

Disable Hibernation

sudo pmset -a hibernatemode 0  # disable hibernate
sudo pmset -a hibernatemode 3  # re-enable hibernate

Hotkeys

finder:
  cmd+shift+.  # show hidden files