1
mirror of https://github.com/jakejarvis/dotfiles.git synced 2025-10-28 21:05:46 -04:00

Look mom, I finally have a *real* dotfiles repo like the cool kids! 😎

This commit is contained in:
2019-09-07 21:26:10 -04:00
parent f763a1b3cd
commit 2c71836ba6
31 changed files with 1818 additions and 509 deletions

121
macos/brew-cask.sh Executable file
View File

@@ -0,0 +1,121 @@
#!/bin/bash
#############################################################
### Try using the Brewfile one folder up instead! ###
### brew tap homebrew/bundle && brew bundle ###
#############################################################
# I'm not a huge fan of using Casks, but keeping a list here in case I change
# my mind when I'm staring at a default macOS install and freaking out...
# To update all:
# brew update && brew upgrade brew-cask && brew cleanup && brew cask cleanup
# System Utilities
brew cask install osxfuse
brew cask install backblaze
brew cask install backblaze-downloader
brew cask install carbon-copy-cloner
brew cask install cleanmymac
brew cask install coconutbattery
brew cask install daisydisk
brew cask install duet
brew cask install endurance
brew cask install etrecheckpro
brew cask install filebot
brew cask install geekbench
brew cask install paragon-ntfs
brew cask install the-unarchiver
brew cask install transmission
brew cask install unetbootin
brew cask install vnc-viewer
# Passwords, VPNs, other Security
brew cask install 1password
brew cask install authy
brew cask install gpg-suite-no-mail # Install separately: https://github.com/GpgMailNoActivation/GpgMailNoActivation
brew cask install keybase
brew cask install little-snitch
brew cask install nordvpn
brew cask install tor-browser
brew cask install tunnelblick
# Development
brew cask install eclipse-java
brew cask install filezilla
brew cask install github
brew cask install glyphs
brew cask install imageoptim
brew cask install intellij-idea
brew cask install iterm2
brew cask install postman
brew cask install robo-3t
brew cask install sequel-pro
brew cask install transmit
brew cask install visual-studio-code
brew cask install visual-studio
# Virtual Machines (& Docker)
brew cask install docker
brew cask install virtualbox
brew cask install virtualbox-extension-pack
brew cask install vmware-fusion
# Media
brew cask install beamer
brew cask install handbrake
brew cask install iina
brew cask install plex-media-player
brew cask install pocket-casts
brew cask install spotify
brew cask install vlc
# Communication/Social
brew cask install discord
brew cask install skype
brew cask install slack
brew cask install whatsapp
brew cask install zoomus
# Gaming
brew cask install steam
brew cask install nvidia-geforce-now
# Pentesting
brew cask install burp-suite
brew cask install charles
brew cask install wifi-explorer
brew cask install wireshark
# Browsers (for reference only -- install these via offline DMGs no matter what)
# * Firefox
# - Stable
# - Dev: https://www.mozilla.org/en-US/firefox/developer/
# - Nightly: https://www.mozilla.org/en-US/firefox/channel/desktop/
# * Chrome
# - Stable
# - Canary: https://www.google.com/chrome/canary/
# * Safari
# - Preview: https://developer.apple.com/safari/technology-preview/

227
macos/brew.sh Executable file
View File

@@ -0,0 +1,227 @@
#!/usr/bin/env bash
#############################################################
### Try using the Brewfile one folder up instead! ###
### brew tap homebrew/bundle && brew bundle ###
#############################################################
# WARNING: I have not tested this yet (nor needed to, thankfully) so this is
# basically just a list of everything I've installed with Homebrew. :)
# Make sure were using the latest Homebrew.
brew update
# Upgrade any already-installed formulae.
brew upgrade
# Tap casks. (Just for Android SDK here, otherwise not a fan of using casks!)
brew tap caskroom/cask
# Save Homebrews installed location.
BREW_PREFIX=$(brew --prefix)
# Perhaps most importantly...
brew install zsh
# Better bash as a backup.
brew install bash
brew install bash-completion
# Install GNU core utilities (those that come with macOS are outdated).
# Dont forget to add `$(brew --prefix coreutils)/libexec/gnubin` to `$PATH`.
brew install coreutils
# ln -s "${BREW_PREFIX}/bin/gsha256sum" "${BREW_PREFIX}/bin/sha256sum"
# Install some other useful utilities like `sponge`.
brew install moreutils
# Install GNU `find`, `locate`, `updatedb`, and `xargs`, `g`-prefixed.
brew install findutils
# Install GNU `sed`, overwriting the built-in `sed`.
brew install gnu-sed # --with-default-names
# Install `wget` with IRI support.
brew install wget # --with-iri
# Install GnuPG to enable PGP-signing commits.
brew install gnupg
# Install more recent versions of some macOS tools.
brew install vim # --with-override-system-vi
brew install grep
brew install openssh
brew install screen
brew install gmp
# Install other universally useful binaries.
brew install ack
#brew install exiv2
brew install gs
brew install imagemagick # --with-webp
brew install ffmpeg # --with-libvpx
brew install lua
brew install lynx
brew install p7zip
brew install pigz
brew install pv
brew install rename
brew install rlwrap
brew install ssh-copy-id
brew install tree
brew install vbindiff
brew install zopfli
brew install the_silver_searcher
# Git
brew install git
brew install git-lfs
brew install git-crypt
# Node & NPM / NVM
brew install node
brew install nvm
# mtr (better ping & traceroute)
brew install mtr
# Allow mtr to run without sudo
mtrlocation=$(brew info mtr | grep Cellar | sed -e 's/ (.*//') # e.g. `/Users/jake/.homebrew/Cellar/mtr/0.86`
sudo chmod 4755 $mtrlocation/sbin/mtr
sudo chown root $mtrlocation/sbin/mtr
# ---------- My Fringe Needs ----------
brew install amazon-ecs-cli
brew tap aws/tap && brew install aws-sam-cli
brew install aws-shell
brew install angular-cli
brew install asciinema
brew install azure-cli
brew install caddy
brew install carthage
brew install cli53
brew install cloudflare/cloudflare/cloudflared
brew install cocoapods
brew install composer
brew install dnsmasq
brew install doctl
brew install elixir
brew install erlang
brew tap facebook/fb && brew install fbsimctl
brew install geoip
brew install gitlab-runner
brew install go
brew install govendor
brew tap heroku/brew && brew install heroku
brew install heroku-node
brew tap hhvm/hhvm && brew install hhvm
brew install htop
brew install httrack
brew install hub
brew install hugo
brew install hydra
brew install iproute2mac
brew install jq
brew install kubernetes-cli
brew install kubernetes-helm
brew install mcrypt
brew install mhash
brew install mkcert
# brew install mongodb
brew tap mongodb/brew && brew install mongodb-community
brew install mosh
brew install mysql
brew install mysql-client
brew install ncurses
brew install neofetch
brew install netcat
brew install openvpn
brew install optipng
brew install packer
brew tap thoughtbot/formulae && brew install parity
brew install php # = php@7.3 https://formulae.brew.sh/formula/php
brew install php@7.1
brew install php@7.2
# brew tap exolnet/homebrew-deprecated && brew install php@5.6
# brew tap exolnet/homebrew-deprecated && brew install php@7.0
brew install pngcheck
brew install pngcrush
brew install postgresql
brew install python
brew install python@2
brew install qt
brew install ruby
brew install ruby-build
brew install rbenv
brew install rclone
brew install s3fs
brew install serverless
brew install speedtest-cli
brew install sqlite
brew install sub2srt
brew install terraform
brew install the_silver_searcher
brew install tidy-html5
brew install tor
brew install torsocks
brew install travis
brew install typescript
brew install unrar
brew install watchman
brew install whois
brew install wireguard-tools
brew install wireguard-go
brew install wp-cli
brew tap wpengine/wpe-cli && brew install wpe-cli
brew install xz
brew install yarn
brew install youtube-dl
brew install yuicompressor
# Android SDK
brew install ant
brew install maven
brew install gradle
brew cask install android-sdk
# Pentesting tools
brew install aircrack-ng
brew install bfg
brew install binutils
brew install binwalk
brew install cifer
brew install dex2jar
brew install dns2tcp
brew install fcrackzip
brew install foremost
brew install hashpump
brew install hydra
brew install john
brew install knock
brew install netpbm
brew install nmap
brew install pdfcrack
brew install pngcheck
brew install socat
brew install sqlmap
brew install tcpflow
brew install tcpreplay
brew install tcptrace
brew install xpdf
brew install bettercap
brew install hashcat
brew install nikto
brew install tcpdump
# -------------------------------------
# Remove outdated versions from the cellar.
brew cleanup
# Call the doctor after this mess just to be safe.
brew doctor

323
macos/defaults.sh Executable file
View File

@@ -0,0 +1,323 @@
#!/usr/bin/env bash
# Modified and patched together from a few sources:
#
# https://mths.be/macos
# https://github.com/paulirish/dotfiles/blob/master/.osx
# https://github.com/kevinSuttle/macOS-Defaults/blob/master/.macos
COMPUTER_NAME="JJ-MBP15"
osascript -e 'tell application "System Preferences" to quit'
# Ask for the administrator password upfront
sudo -v
# Keep-alive: update existing `sudo` time stamp until this script has finished
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
###############################################################################
# General UI/UX #
###############################################################################
# Set computer name (as done via System Preferences → Sharing)
sudo scutil --set ComputerName "$COMPUTER_NAME"
sudo scutil --set HostName "$COMPUTER_NAME"
sudo scutil --set LocalHostName "$COMPUTER_NAME"
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string "$COMPUTER_NAME"
# Set language and text formats
defaults write NSGlobalDomain AppleLanguages -array "en"
defaults write NSGlobalDomain AppleLocale -string "en_US@currency=USD"
defaults write NSGlobalDomain AppleMeasurementUnits -string "Inches"
defaults write NSGlobalDomain AppleMetricUnits -bool false
# Set the timezone (see `sudo systemsetup -listtimezones` for other values)
sudo systemsetup -settimezone "America/New_York" > /dev/null
# Set standby delay to 24 hours (default is 1 hour)
sudo pmset -a standbydelay 86400
# Disable Sudden Motion Sensor
sudo pmset -a sms 0
# Disable audio feedback when volume is changed
defaults write com.apple.sound.beep.feedback -bool false
# Disable the sound effects on boot
sudo nvram SystemAudioVolume=" "
# Menu bar: show battery percentage
defaults write com.apple.menuextra.battery ShowPercent YES
# 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
# Remove duplicates in the “Open With” menu (also see `lscleanup` alias)
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -kill -r -domain local -domain system -domain user
# Disable Resume system-wide
defaults write com.apple.systempreferences NSQuitAlwaysKeepsWindows -bool false
# Restart automatically if the computer freezes
sudo systemsetup -setrestartfreeze on
###############################################################################
# Keyboard & Input #
###############################################################################
# Disable smart quotes and dashes as theyre annoying when typing code
defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false
defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false
# Enable full keyboard access for all controls
# (e.g. enable Tab in modal dialogs)
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3
# Disable press-and-hold for keys in favor of key repeat
defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
# Set a blazingly fast keyboard repeat rate
defaults write NSGlobalDomain KeyRepeat -int 1
defaults write NSGlobalDomain InitialKeyRepeat -int 15
# Automatically illuminate built-in MacBook keyboard in low light
defaults write com.apple.BezelServices kDim -bool true
# Turn off keyboard illumination when computer is not used for 5 minutes
defaults write com.apple.BezelServices kDimTime -int 300
# Disable auto-correct
defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
###############################################################################
# Trackpad, mouse, Bluetooth accessories #
###############################################################################
# Trackpad: enable tap to click for this user and for the login screen
defaults write com.apple.AppleMultitouchTrackpad Clicking -bool true
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
# Increase sound quality for Bluetooth headphones/headsets
defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 40
# 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
###############################################################################
# Screen #
###############################################################################
# Require password immediately after sleep or screen saver begins
defaults write com.apple.screensaver askForPassword -int 1
defaults write com.apple.screensaver askForPasswordDelay -int 0
# Save screenshots to the desktop
defaults write com.apple.screencapture location -string "${HOME}/Desktop"
# Save screenshots in PNG format (other options: BMP, GIF, JPG, PDF, TIFF)
defaults write com.apple.screencapture type -string "png"
# Disable shadow in screenshots
defaults write com.apple.screencapture disable-shadow -bool true
###############################################################################
# Finder #
###############################################################################
# Finder: show all filename extensions
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
# Finder: show status bar
defaults write com.apple.finder ShowStatusBar -bool true
# Finder: show path bar
defaults write com.apple.finder ShowPathbar -bool true
# Finder: 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"
# Disable the warning when changing a file extension
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
# Avoid creating .DS_Store files on network or USB volumes
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true
# Use AirDrop over every interface.
defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool true
# Enable snap-to-grid for icons on the desktop and in other icon views
/usr/libexec/PlistBuddy -c "Set :DesktopViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist
/usr/libexec/PlistBuddy -c "Set :FK_StandardViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist
/usr/libexec/PlistBuddy -c "Set :StandardViewSettings:IconViewSettings:arrangeBy grid" ~/Library/Preferences/com.apple.finder.plist
# Always open everything in Finder's list view.
# Use list view in all Finder windows by default
# Four-letter codes for the other view modes: `icnv`, `clmv`, `Flwv`
defaults write com.apple.finder FXPreferredViewStyle -string "Nlsv"
# Show the ~/Library folder
chflags nohidden ~/Library
# 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
###############################################################################
# Dock #
###############################################################################
# Show indicator lights for open applications in the Dock
defaults write com.apple.dock show-process-indicators -bool true
# Automatically hide and show the Dock
defaults write com.apple.dock autohide -bool true
# Group windows by application in Mission Control
defaults write com.apple.dock expose-group-by-app -bool true
# Disable hot corners
defaults write com.apple.dock wvous-tl-corner -int 0
defaults write com.apple.dock wvous-tr-corner -int 0
defaults write com.apple.dock wvous-bl-corner -int 0
defaults write com.apple.dock wvous-br-corner -int 0
# Don't show recently used applications in the Dock
defaults write com.Apple.Dock show-recents -bool false
###############################################################################
# Spotlight #
###############################################################################
# Disable Spotlight indexing for any volume that gets mounted and has not yet
# been indexed before.
# Use `sudo mdutil -i off "/Volumes/foo"` to stop indexing any volume.
sudo defaults write /.Spotlight-V100/VolumeConfiguration Exclusions -array "/Volumes"
# Change indexing order and disable some file types
defaults write com.apple.spotlight orderedItems -array \
'{"enabled" = 1;"name" = "APPLICATIONS";}' \
'{"enabled" = 1;"name" = "SYSTEM_PREFS";}' \
'{"enabled" = 1;"name" = "DIRECTORIES";}' \
'{"enabled" = 1;"name" = "CONTACT";}' \
'{"enabled" = 1;"name" = "DOCUMENTS";}' \
'{"enabled" = 1;"name" = "PDF";}' \
'{"enabled" = 0;"name" = "FONTS";}' \
'{"enabled" = 0;"name" = "MESSAGES";}' \
'{"enabled" = 0;"name" = "EVENT_TODO";}' \
'{"enabled" = 0;"name" = "IMAGES";}' \
'{"enabled" = 0;"name" = "BOOKMARKS";}' \
'{"enabled" = 0;"name" = "MUSIC";}' \
'{"enabled" = 0;"name" = "MOVIES";}' \
'{"enabled" = 0;"name" = "PRESENTATIONS";}' \
'{"enabled" = 0;"name" = "SPREADSHEETS";}' \
'{"enabled" = 0;"name" = "SOURCE";}'
# Load new settings before rebuilding the index
killall mds > /dev/null 2>&1
# Make sure indexing is enabled for the main volume
sudo mdutil -i on / > /dev/null
# Rebuild the index from scratch
sudo mdutil -E / > /dev/null
###############################################################################
# Activity Monitor #
###############################################################################
# Show the main window when launching Activity Monitor
defaults write com.apple.ActivityMonitor OpenMainWindow -bool true
# Visualize CPU usage in the Activity Monitor Dock icon
defaults write com.apple.ActivityMonitor IconType -int 5
# Show all processes in Activity Monitor
defaults write com.apple.ActivityMonitor ShowCategory -int 0
# Sort Activity Monitor results by CPU usage
defaults write com.apple.ActivityMonitor SortColumn -string "CPUUsage"
defaults write com.apple.ActivityMonitor SortDirection -int 0
###############################################################################
# Photos #
###############################################################################
# Prevent Photos from opening automatically when devices are plugged in
defaults -currentHost write com.apple.ImageCapture disableHotPlug -bool true
###############################################################################
# Messages #
###############################################################################
# Disable automatic emoji substitution (i.e. use plain text smileys)
defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "automaticEmojiSubstitutionEnablediMessage" -bool false
# Disable smart quotes as its annoying for messages that contain code
defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "automaticQuoteSubstitutionEnabled" -bool false
# Disable continuous spell checking
defaults write com.apple.messageshelper.MessageController SOInputLineSettings -dict-add "continuousSpellCheckingEnabled" -bool false
###############################################################################
# TextEdit #
###############################################################################
# Use plain text mode for new TextEdit documents
defaults write com.apple.TextEdit RichText -int 0
# Open and save files as UTF-8 in TextEdit
defaults write com.apple.TextEdit PlainTextEncoding -int 4
defaults write com.apple.TextEdit PlainTextEncodingForWrite -int 4
###############################################################################
# GPGMail 2 #
###############################################################################
# Disable signing emails by default
defaults write ~/Library/Preferences/org.gpgtools.gpgmail SignNewEmailsByDefault -bool false
###############################################################################
# Software Updates #
###############################################################################
# Enable the automatic update check
defaults write com.apple.SoftwareUpdate AutomaticCheckEnabled -bool true
# Check for software updates daily, not just once per week
defaults write com.apple.SoftwareUpdate ScheduleFrequency -bool true
# Download newly available updates in background
defaults write com.apple.SoftwareUpdate AutomaticDownload -bool true
# Install System data files & security updates
defaults write com.apple.SoftwareUpdate CriticalUpdateInstall -bool true
# Turn off app auto-update
defaults write com.apple.commerce AutoUpdate -bool false
###############################################################################
# Finished! #
###############################################################################
echo "All done! Some of these changes require a logout/restart to take effect."