Strajk / setup

55 stars 6 forks source link

Setup

Beware: This is not fully reproducible (intentionally), use only for inspiration.

Preparation


Continue with setting up apps, one by one

General utilities

Hyper

โ„น๏ธ Electron-based terminal, easy configuration in one file, plugins in JavaScript.

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "hyper" ```

โš™๏ธ Preferences: ~/.hyper.js

Oh-my-zsh

sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
rm -f "$HOME/.zshrc" && ln -s "$HOME/Projects/setup/home/.zshrc" $HOME && source $HOME/.zshrc 

Utilities

Dropbox

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "dropbox" ```
โš™๏ธ Preferences: manual - Do not link work account - Disable Screenshots - Disable Photos

Keyboard maestro

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "keyboard-maestro" ```
โš™๏ธ Preferences: `~/Dropbox/Sync/apps/Keyboard Maestro Macros.kmsync` - Enable Launch at login - Enable "Include Conflict Palette in Touch Bar"

TODO: Share some generally useful macros

Docker

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "docker" ```

Ngrok

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "ngrok" ```

Keybase

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "keybase" ```
โš™๏ธ Preferences: Manual - Enable Keybase in Finder

1Password

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "1password" ```
โš™๏ธ Preferences - Security: Disable all auto-locking {>> I believe in OS security :) <<} - Security: Enable automatic unlock - Browsers: Install Browsers Extensions (Safari, Chrome, Firefox) - Logins: Disable automatically submitting after filling - Set keyboard shortcut for Showing 1Password mini - Set keyboard shortcut for Filling login

Karabiner

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "karabiner-elements" ```
โš™๏ธ Preferences: manual - CapsLock -> f19 - Quit application by pressing command-q twice

NordVPN

๐Ÿ’พ Installation: Installed via Homebrew ```bash mas "NordVPN", id: 1116599239 ```

FortiClient

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "forticlient" ```

HyperSwitch

๐Ÿ’พ Installation: Installed via Homebrew (โš  requires manual post-install) ```bash cask "hyperswitch" ```
โš™๏ธ Preferences - Run HyperSwitch in the background - Use Include windows from other spaces - Use Include windows from other screens - Use shift to cycle backwards

Alfred

๐Ÿ’พ Installation ```bash cask "alfred" ```
โš™๏ธ Preferences - Set preferences syncing to `~/Dropbox/Sync/apps/Alfred` - Set main keyboard shortcut to F19 (not synced) - Set Clipboard history persistence (not synced)

Workflows

Workflows wanted

Script to get workflows ```bash for f in ~/Dropbox/Sync/apps/Alfred/Alfred.alfredpreferences/workflows/**/info.plist do ff=${f%.*} name=$(defaults read "$ff" name) link="https://www.google.cz/search?q=site%3Apackal.org+${name// /+}" echo "โ€“ [$name]($link)" done ```

Snippets

https://gist.github.com/Strajk/f4cb72e318c531a3ee247ccc10681f8f

AppCleaner

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "appcleaner" ```
โš™๏ธ Preferences - Enable SmartDelete

Moom

Do not install from cask, cannot transfer license

๐Ÿ’พ Installation: Installed via Homebrew ```bash mas "Moom", id: 419330170 ```
โš™๏ธ Preferences ```bash ln -s ~/Dropbox/Sync/apps/moom/com.manytricks.Moom.plist ~/Library/Preferences/com.manytricks.Moom.plist ```

PopClip

๐Ÿ’พ Installation: Installed via Homebrew ```bash mas "PopClip", id: 445189367 ```
โš™๏ธ Preferences - Enable Start at Login - Disable Cut & Copy & Paste Extensions

Extensions

curl -O "http://pilotmoon.com/popclip/extensions/ext/{Reminders,GoogleTranslate,Alfred}.popclipextz"

TODO: Fix! Open & Install extensions after downloading

Monosnap

๐Ÿ’พ Installation: Installed via Homebrew ```bash mas "Monosnap", id: 540348655 ```
โš™๏ธ Preferences - Enable `General: Launch at login` - Enable `Advanced: Autosave to "Pictures" folder` - Enable `Advanced: Shrink Retina snaps` - Disable `Interface: Capture area: Add shadow to window` - Sey `Hotkeys: Capture area` to `control + m` - Sey `Hotkeys: Record video` to `control + alt + m` - Sey `Hotkeys: Capture previous area` to `control + shift + m` - Login to Monosnap account

Dash

cask dash
โš™๏ธ Preferences ```bash General: Launch Dash at login General: Global search shortcut General: Disable show dock icon Integration: Alfred, PopClip, TextMate Cheat: Axios Cheat: Chrome Developer Tools Cheat: Docker Cheat: Dockerfile Cheat: Git Cheat: You Might Not Need jQuery GitHub: cypress-io/cypress StackOverflow: JavaScript StackOverflow: TypeScript User: date-fns Docset: Bash Docset: Bootstrap 4 Docset: Bootstrap 5 Docset: CSS Docset: Chai Docset: Express Docset: Font Awesome Docset: HTML Docset: JavaScript Docset: Less Docset: Lo-Dash Docset: Markdown Docset: Mocha Docset: MomentJS Docset: MongoDB Docset: NodeJS Docset: Sinon Docset: Stylus Docset: TypeScript Docset: UnderscoreJS Docset: VueJS Docset: jQuery ```

Marked

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "Marked" ```

Apple Configurator

๐Ÿ’พ Installation: Installed via Homebrew ```bash mas "Apple Configurator 2", id: 1037126344 ```

Amphetamine

๐Ÿ’พ Installation: Installed via Homebrew ```bash mas "Amphetamine", id: 937984704 ```
โš™๏ธ Preferences - Menu Bar Image Click: Primary: Start/end session | Secondary: Show menu - Launch Amphetamine at login: yes - Appearance: Menu Bar image: Coffee Carafe - Appearance: Lower icon opacity when there is no active session

Bartender

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "bartender" ```
โš™๏ธ Preferences - Launch at login - Menu bar item spacing: small - Always show menu bar: - Trailer - Itsycal - Batter - Intentionally not showing in menu bar: - Amphetamine โ€“ triggered by Alfred - Wi-Fi - it usually just work, no need to see it all the time - Volume โ€“ controlled by keyboard - Trip Mode โ€“ used occasionally - Hotkey to Quick search

Transmission

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "transmission" ```
โš™๏ธ Preferences ```bash # Use `~/Downloads/_INCOMPLETE` to store incomplete downloads defaults write org.m0k.transmission UseIncompleteDownloadFolder -bool true defaults write org.m0k.transmission IncompleteDownloadFolder -string "${HOME}/Downloads/_INCOMPLETE" # Use `~/Downloads` to autoimport .torrent files defaults write org.m0k.transmission AutoImport -bool true defaults write org.m0k.transmission AutoImportDirectory -string "${HOME}/Downloads" # Donโ€™t prompt for confirmation before downloading defaults write org.m0k.transmission DownloadAsk -bool false defaults write org.m0k.transmission MagnetOpenAsk -bool false # Trash original torrent files defaults write org.m0k.transmission DeleteOriginalTorrent -bool true # Hide the donate message defaults write org.m0k.transmission WarningDonate -bool false # Hide the legal disclaimer defaults write org.m0k.transmission WarningLegal -bool false # IP block list. # Source: https://giuliomac.wordpress.com/2014/02/19/best-blocklist-for-transmission/ defaults write org.m0k.transmission BlocklistNew -bool true defaults write org.m0k.transmission BlocklistURL -string "http://john.bitsurge.net/public/biglist.p2p.gz" defaults write org.m0k.transmission BlocklistAutoUpdate -bool true ```

ImageOptim

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "imageoptim" ```

Handbrake

Open source video transcoder

๐Ÿ’พ Installation: Installed via Homebrew ```bash brew "handbrake" ```

Postman

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "postman" ```

Aerial

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "aerial" ```

Google Drive Sync

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "google-backup-and-sync" ```

keycastr

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "keycastr" ```

Mouseposรฉ

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "mousepose" ```

Shortcut Detective

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "shortcutdetective" ```

ScreenFlow

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "screenflow" ```

Gifox

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "gifox" ```

Other

brew install heroku && heroku login

Communication

Slack

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "slack" ```

Caprine

Elegant Facebook Messenger desktop app

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "caprine" ```

Browsers

Google Chrome

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "google-chrome" ```

Extensions

Script to get extensions ```bash # run at chrome://extensions output = [] document.querySelectorAll(".extension-details").forEach(el => { var title = el.querySelector(".extension-title").textContent.trim() var id = el.querySelector(".extension-id").textContent.trim() var link = `https://chrome.google.com/webstore/detail/${id}` output.push(`* [${title}](${link})`) }) copy(output.join("\n")) ```

Google Chrome Canary

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "caskroom/versions/google-chrome-canary" ```

Enable Developer Tools experiments:

* Open DevTools, go to General tab and check Enable source maps
* Open DevTools, go to Experiments tab and check Support for Sass

Firefox

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "firefox" ```

Opera

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "opera" ```

Brave

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "brave-browser" ```

Tor browser

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "tor-browser" ```

Productivity

Notion

Primary notes app

๐Ÿ’พ Installation ```bash cask "notion" ```

FoldingText

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "foldingtext" ```

Skype

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "skype" ```
โš™๏ธ Preferences - Disable show in menu bar

Table tool

๐Ÿ’พ Installation: Installed via Homebrew ```bash mas "Table Tool", id: 1122008420 ```

Keynote

๐Ÿ’พ Installation: Installed via Homebrew ```bash mas "Keynote", id: 409183694 ```

Things

Installation: Manual
โš™๏ธ Preferences - Enable `General: Enable Things URLs` - Enable `Things Cloud` - Set shortcut for Quick Entry to `ctrl + n` - Enable Calendar Events

Create

Sketch

Versatile design app

Plugins

~/Library/Application Support/com.bohemiancoding.sketch3/Plugins github.com/sketchplugins/plugin-directory

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "sketch" ```

SourceTree

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "sourcetree" ```

GitUp

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "gitup" ```

Webstorm, Pycharm, DataGrip

๐Ÿ’พ Installation: Installed via Homebrew ```bash # cask "jetbrains-toolbox" # nope nope nope, lost patience with this piece of crap cask "webstorm" cask "pycharm" cask "datagrip" ```
โš™๏ธ Preferences All preferences sync with Settings Repository to [private GitLab repo](https://gitlab.com/straaajk/intellij-settings-repository). Some of the main options: - Appearance - Theme: Darcula - Custom font: San Francisco `.SF NS Text` - Window Options: Allow merging buttons on dialogs: Disable - Editor - Font: Hack

Plugins

Visual Studio Code

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "visual-studio-code" ```

Extensions

TODO Export from Notion

Sync via Gist

ln -s ~/Projects/setup/apps/VSCode/settings.json "$HOME/Library/Application Support/Code/User/"

iMovie

๐Ÿ’พ Installation: Installed via Homebrew ```bash mas "iMovie", id: 408981434 ```

Final Cut Pro

๐Ÿ’พ Installation: Manually TODO

DaVinci Resolve

๐Ÿ’พ Installation: Manual TODO

XCode

๐Ÿ’พ Installation: Installed via Homebrew ```bash mas "Xcode", id: 497799835 ```

VirtualBox

Installation: Installed via Homebrew ```bash cask "virtualBox" ```

Accept terms, check issue

VBoxManage extpack install /Users/strajk/.ievms/Oracle_VM_VirtualBox_Extension_Pack-5.1.22.vbox-extpack

ievms

curl -s https://raw.githubusercontent.com/xdissent/ievms/master/ievms.sh | env IEVMS_VERSIONS="10 11 EDGE" bash

Charles proxy

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "charles" ```

Media

Movist

๐Ÿ’พ Installation: Installed via Homebrew ```bash mas "Movist", id: 461788075 ```

VLC

Horrible UI, but haven't found better free video player.

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "vlc" ```

Caption

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "caption" ```

Fun

Boxer

๐Ÿ’พ Installation: Installed via Homebrew ```bash cask "boxer" ```

Other preferences

Default apps

# https://superuser.com/a/1092184
duti -s $(osascript -e 'id of app "The Unarchiver"') .rar all
duti -s $(osascript -e 'id of app "The Unarchiver"') .zip all
duti -s $(osascript -e 'id of app "Preview"') .pdf all
duti -s $(osascript -e 'id of app "Movist"') .mp3 all
duti -s $(osascript -e 'id of app "Movist"') .m4b all
duti -s $(osascript -e 'id of app "Movist"') .flac all
duti -s $(osascript -e 'id of app "Movist"') .mp4 all
duti -s $(osascript -e 'id of app "Movist"') .mkv all
duti -s $(osascript -e 'id of app "Movist"') .avi all
duti -s $(osascript -e 'id of app "FoldingText"') .md all
duti -s $(osascript -e 'id of app "Visual Studio Code"') .json all
duti -s $(osascript -e 'id of app "Visual Studio Code"') .nfo all
duti -s $(osascript -e 'id of app "Visual Studio Code"') .txt all
duti -s $(osascript -e 'id of app "Visual Studio Code"') .srt all
duti -s $(osascript -e 'id of app "Table Tool"') .csv all

Customize Dock

defaults write com.apple.dock persistent-apps -array
for app in \
  "/System/Library/CoreServices/Finder.app" \
  "/Applications/Calendar.app" \
  "spacer" \
  "/Applications/Google Chrome.app" \
  "/Applications/Safari.app" \
  "spacer" \
  "/Applications/Things3.app" \
  "/Applications/Reminders.app" \
  "spacer" \
  "/Applications/iTunes.app" \
  "spacer" \
  "/Applications/Slack.app" \
  "/Applications/Caprine.app" \
  "spacer" \
  "/Applications/Sketch.app" \
  "spacer" \
  "/Applications/WebStorm.app" \
  "/Applications/PyCharm.app" \
  "/Applications/SourceTree.app" \
  "/Applications/Hyper.app" \
  "spacer" \
  "/Applications/App Store.app" \
  "/Applications/System Preferences.app" \
  "spacer" \
  ; do
  if [ "$app" "==" "spacer" ]; then
    defaults write com.apple.dock persistent-apps -array-add '{tile-data={}; tile-type="small-spacer-tile";}'
  else
    defaults write com.apple.dock persistent-apps -array-add "<dict><key>tile-data</key><dict><key>file-data</key><dict><key>_CFURLString</key><string>$app</string><key>_CFURLStringType</key><integer>0</integer></dict></dict></dict>"
  fi
done

killall Dock

MacOS Preferences

Manual

Programmatic

# Close any open System Preferences panes, to prevent them from overriding settings weโ€™re about to change
osascript -e 'tell application "System Preferences" to quit'

# Use scroll gesture with the Ctrl (^) modifier key to zoom
defaults write com.apple.universalaccess closeViewScrollWheelToggle -bool true
defaults write com.apple.universalaccess HIDScrollZoomModifierMask -int 262144
# Follow the keyboard focus while zoomed in
defaults write com.apple.universalaccess closeViewZoomFollowsFocus -bool true

# Disable the โ€œAre you sure you want to open this application?โ€ dialog
defaults write com.apple.LaunchServices LSQuarantine -bool false

# Menu bar: disable transparency
defaults write NSGlobalDomain AppleEnableMenuBarTransparency -bool false

# Expand save panel by default
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode2 -bool true

# Expand print panel by default
defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true
defaults write NSGlobalDomain PMPrintingExpandedStateForPrint2 -bool true

# Save to disk (not to iCloud) by default
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false

# Disable Resume system-wide
defaults write NSGlobalDomain NSQuitAlwaysKeepsWindows -bool false

# Disable auto-correct
defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false

# Enable full keyboard access for all controls
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3

# Save screenshots to the desktop
defaults write com.apple.screencapture location -string "$HOME/Desktop"

# Disable shadow in screenshots
defaults write com.apple.screencapture disable-shadow -bool true

# Speedup animations
# More: https://www.defaults-write.com/increase-the-speed-of-os-x-dialogs-boxes/
defaults write NSGlobalDomain NSWindowResizeTime .1
defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool false

# Finder
# ---

# Default folder to $HOME
# TODO: strajk -> dynamic
defaults write com.apple.finder NewWindowTarget -string "PfHm"
defaults write com.apple.finder NewWindowTargetPath -string "file://${HOME}"

# Use column view in all Finder windows by default
defaults write com.apple.Finder FXPreferredViewStyle -string "clmv"

# Show the ~/Library folder.
chflags nohidden ~/Library

# Allow quitting Finder via โŒ˜ + Q; doing so will also hide desktop icons
defaults write com.apple.finder QuitMenuItem -bool true

# Show status bar in Finder
defaults write com.apple.finder ShowStatusBar -bool true

# Show hidden files by default
defaults write com.apple.Finder AppleShowAllFiles -bool true

# Show all filename extensions
defaults write NSGlobalDomain AppleShowAllExtensions -bool true

# Disable the warning when changing a file extension
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false

# Allow text selection in Quick Look
defaults write com.apple.finder QLEnableTextSelection -bool true

# When performing a search, search the current folder by default
defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"

# Avoid creating .DS_Store files on network & USB volumes
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true

# Disable disk image verification
defaults write com.apple.frameworks.diskimages skip-verify -bool true
defaults write com.apple.frameworks.diskimages skip-verify-locked -bool true
defaults write com.apple.frameworks.diskimages skip-verify-remote -bool true

# Disable the warning before emptying the Trash
defaults write com.apple.finder WarnOnEmptyTrash -bool false

# Expand the following File Info panes:
# โ€œGeneralโ€, โ€œOpen withโ€, and โ€œSharing & Permissionsโ€
defaults write com.apple.finder FXInfoPanesExpanded -dict \
 General -bool true \
 OpenWith -bool true \
 Privileges -bool true

# Other
# ---

# Set the icon size of Dock items to 36 pixels
defaults write com.apple.dock tilesize -int 36

# Trackpad: enable tap to click for this user and for the login screen
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
defaults write NSGlobalDomain com.apple.mouse.tapBehavior -int 1

# Disable dashboard
defaults write com.apple.dashboard mcx-disabled -boolean true

# Disable the crash reporter
defaults write com.apple.CrashReporter DialogType -string "none"

TODO:

Auto-launched items

# launchctl list | egrep -v "com\.apple\."



Inbox

ln -s $HOME/Projects/setup/snippets "$HOME/Library/Application Support/Code/User/"

TODO
# Vill Q
# TeamViewer
# Paparazzi!
# zoom.us
# Marked 2
# Insomnia



Run regularly

brewup

nvm install node --reinstall-packages-from=node

Clone all my repos

curl -u strajk -s https://api.github.com/users/strajk/repos?per_page=200 | ruby -rubygems -e 'require "json"; JSON.load(STDIN.read).each { |repo| %x[git clone #{repo["ssh_url"]} ]}'



Fonts

Sans-serif

Monospace

๐Ÿ’พ Installation ```bash cask "caskroom/fonts/font-open-sans" cask "caskroom/fonts/font-roboto" cask "caskroom/fonts/font-hack" cask "caskroom/fonts/font-roboto-mono" cask "caskroom/fonts/font-source-code-pro" ```