Skip to content

Instantly share code, notes, and snippets.

@pongstr
Last active August 17, 2020 21:10
Show Gist options
  • Save pongstr/dd13db546e8407463300dde605721edc to your computer and use it in GitHub Desktop.
Save pongstr/dd13db546e8407463300dde605721edc to your computer and use it in GitHub Desktop.
" .vimrc
set nocompatible " Disable Vi compatibility
set backspace=indent,eol,start " Backspace through everything in INSERT mode
set ttyfast " Optimize for fast terminal connections
set nowrap " Disable word wrapping
set textwidth=0 wrapmargin=0 " Set textwidth + wrapmargin
set encoding=utf-8 nobomb " Use UTF-8 without BOM
set shiftwidth=2 " Use 2 spaces for indentation
set softtabstop=2 " Use 2 spaces for soft tab
set tabstop=2 " Use 2 spaces for tab
set expandtab " Expand tab to spaces
set scrolloff=3 " Start scrolling three lines before the horizontal window border
set cursorline " Cursor line
set nostartofline " Don’t reset cursor to start of line when moving around.
" Show line number, highlight current line
set number
:highlight LineNr guibg=green guifg=black
:highlight CursorLine cterm=none ctermbg=green ctermfg=black guibg=darkred guifg=white
" Centralize backups, swapfiles and undo history
set backupdir=$HOME/.vim/backups
set directory=$HOME/.vim/swaps
if exists("&undodir")
set undodir=$HOME/.vim/undo
endif
" Set viminfo directory
set viminfo+=n$HOME/.vim/.viminfo
" Set cursor shape
let &t_SI = "\<Esc>]50;CursorShape=1\x7"
let &t_SR = "\<Esc>]50;CursorShape=1\x7"
let &t_EI = "\<Esc>]50;CursorShape=0\x7"
" Use 24-bit (true-color) mode in Vim/Neovim when outside tmux.
" If you're using tmux version 2.2 or later, you can remove the outermost $TMUX check and
" use tmux's 24-bit color support see:
" - http://sunaku.github.io/tmux-24bit-color.html#usage for more information.
if (empty($TMUX))
if (has("nvim"))
"For Neovim 0.1.3 and 0.1.4 https://github.com/neovim/neovim/pull/2198
let $NVIM_TUI_ENABLE_TRUE_COLOR=1
endif
" For Neovim > 0.1.5 and Vim > patch 7.4.1799
" - https://github.com/vim/vim/commit/61be73bb0f965a895bfb064ea3e55476ac175162
"
" Based on Vim patch 7.4.1770 (`guicolors` option)
" - https://github.com/vim/vim/commit/8a633e3427b47286869aa4b96f2bfc1fe65b25cd
" - https://github.com/neovim/neovim/wiki/Following-HEAD#20160511
if (has("termguicolors"))
set termguicolors
endif
endif
syntax enable " Enable syntax highlighting
silent! colorscheme onedark " Set colorscheme
#!/usr/bin/env zsh
# Set custom OS X defaults
# See: github.com/mathiasbynens/dotfiles
# ---------------------------------------------------------------------------
# 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'
# Ask for the administrator password upfront
sudo -v
# Keep-alive: update existing `sudo` time stamp until `.osx` has finished
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
echo "
Setting up macOS custom defaults.
"
echo ""
echo "Setting your computer name (as done via System Preferences → Sharing)"
read -p "> What would you like it to be? " COMPUTER_NAME
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
echo "
###############################################################################
# General UI/UX #
###############################################################################
"
echo " --> Set standby delay to 24 hours (default is 1 hour)"
sudo pmset -a standbydelay 86400
echo " --> Set sidebar icon size to small"
defaults write NSGlobalDomain NSTableViewDefaultSizeMode -int 1
echo " --> Always show scrollbars"
defaults write NSGlobalDomain AppleShowScrollBars -string "WhenScrolling"
# Possible values: `WhenScrolling`, `Automatic` and `Always`
echo " --> Disable the over-the-top focus ring animation"
defaults write NSGlobalDomain NSUseAnimatedFocusRing -bool false
echo " --> Increase window resize speed for Cocoa applications"
defaults write NSGlobalDomain NSWindowResizeTime -float 0.001
echo " --> Expand save panel by default"
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode2 -bool true
echo " --> Expand print panel by default"
defaults write NSGlobalDomain PMPrintingExpandedStateForPrint -bool true
defaults write NSGlobalDomain PMPrintingExpandedStateForPrint2 -bool true
echo " --> Save to disk (not to iCloud) by default"
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false
echo " --> Automatically quit printer app once the print jobs complete"
defaults write com.apple.print.PrintingPrefs "Quit When Finished" -bool true
echo " --> Disable the “Are you sure you want to open this application?” dialog"
defaults write com.apple.LaunchServices LSQuarantine -bool false
# echo " --> 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
# Display ASCII control characters using caret notation in standard text views
# Try e.g. `cd /tmp; unidecode "\x{0000}" > cc.txt; open -e cc.txt`
defaults write NSGlobalDomain NSTextShowsControlCharacters -bool true
echo " --> Disable Resume system-wide"
defaults write com.apple.systempreferences NSQuitAlwaysKeepsWindows -bool false
echo " --> Disable automatic termination of inactive apps"
defaults write NSGlobalDomain NSDisableAutomaticTermination -bool true
echo " --> Disable the crash reporter"
defaults write com.apple.CrashReporter DialogType -string "none"
echo " --> Set Help Viewer windows to non-floating mode"
defaults write com.apple.helpviewer DevMode -bool true
echo " --> Reveal IP address, hostname, OS version, etc. when clicking the"
echo " the clock in the login window"
sudo defaults write /Library/Preferences/com.apple.loginwindow AdminHostInfo HostName
echo " --> Restart automatically if the computer freezes"
sudo systemsetup -setrestartfreeze on
echo " --> Never go into computer sleep mode"
sudo systemsetup -setcomputersleep Off > /dev/null
echo " --> Disable Notification Center and remove the menu bar icon"
launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist 2> /dev/null
echo " --> Disable smart quotes as they’re annoying when typing code"
defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false
echo " --> Disable smart dashes as they’re annoying when typing code"
defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false
echo "
###############################################################################
# Terminal & iTerm 2 #
###############################################################################
"
# Enable Secure Keyboard Entry in Terminal.app
# See: https://security.stackexchange.com/a/47786/8918
defaults write com.apple.terminal SecureKeyboardEntry -bool true
echo "
###############################################################################
# Trackpad, mouse, keyboard, Bluetooth accessories, and input #
###############################################################################
"
echo " --> 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
echo " --> Trackpad: map bottom right corner to right-click"
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadCornerSecondaryClick -int 2
defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadRightClick -bool true
defaults -currentHost write NSGlobalDomain com.apple.trackpad.trackpadCornerClickBehavior -int 1
defaults -currentHost write NSGlobalDomain com.apple.trackpad.enableSecondaryClick -bool true
echo " --> Increase sound quality for Bluetooth headphones/headsets"
defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 40
echo " --> Enable full keyboard access for all controls"
echo " (e.g. enable Tab in modal dialogs)"
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3
echo " --> 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
echo " --> Follow the keyboard focus while zoomed in"
defaults write com.apple.universalaccess closeViewZoomFollowsFocus -bool true
echo " --> Disable press-and-hold for keys in favor of key repeat"
defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false
echo " --> Set a blazingly fast keyboard repeat rate"
defaults write NSGlobalDomain KeyRepeat -int 1
defaults write NSGlobalDomain InitialKeyRepeat -int 20
echo " --> Set language and text formats"
# Note: if you’re in the US, replace `EUR` with `USD`, `Centimeters` with
# `Inches`, `en_GB` with `en_US`, and `true` with `false`.
defaults write NSGlobalDomain AppleLanguages -array "en"
defaults write NSGlobalDomain AppleLocale -string "en_US@currency=EUR"
defaults write NSGlobalDomain AppleMeasurementUnits -string "Inches"
defaults write NSGlobalDomain AppleMetricUnits -bool true
echo " --> Set the timezone; see `sudo systemsetup -listtimezones` for other values"
sudo systemsetup -settimezone "Europe/Tallinn" > /dev/null
echo " --> Disable auto-correct"
defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
echo " --> Stop iTunes from responding to the keyboard media keys"
launchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist 2> /dev/null
echo "
###############################################################################
# Dashboard, Dock, Screen and Hot Corners #
###############################################################################
"
echo " --> Don’t show recent applications in Dock"
defaults write com.apple.dock show-recents -bool false
echo " --> Enable highlight hover effect for the grid view of a stack (Dock)"
defaults write com.apple.dock mouse-over-hilite-stack -bool true
echo " --> Set the icon size of Dock items to 36 pixels"
defaults write com.apple.dock tilesize -int 36
echo " --> Change minimize/maximize window effect"
defaults write com.apple.dock mineffect -string "scale"
echo " --> Minimize windows into their application’s icon"
defaults write com.apple.dock minimize-to-application -bool true
echo " --> Enable spring loading for all Dock items"
defaults write com.apple.dock enable-spring-load-actions-on-all-items -bool true
echo " --> Show indicator lights for open applications in the Dock"
defaults write com.apple.dock show-process-indicators -bool true
echo " --> Wipe all (default) app icons from the Dock"
# This is only really useful when setting up a new Mac, or if you don’t use
# the Dock to launch apps.
defaults write com.apple.dock persistent-apps -array
echo " --> Don’t animate opening applications from the Dock"
defaults write com.apple.dock launchanim -bool false
echo " --> Speed up Mission Control animations"
defaults write com.apple.dock expose-animation-duration -float 0.1
echo " --> Don’t group windows by application in Mission Control"
# (i.e. use the old Exposé behavior instead)
defaults write com.apple.dock expose-group-by-app -bool false
echo " --> Disable Dashboard"
defaults write com.apple.dashboard mcx-disabled -bool true
echo " --> Don’t show Dashboard as a Space"
defaults write com.apple.dock dashboard-in-overlay -bool true
echo " --> Don’t automatically rearrange Spaces based on most recent use"
defaults write com.apple.dock mru-spaces -bool false
echo " --> Remove the auto-hiding Dock delay"
defaults write com.apple.dock autohide-delay -float 0
echo " --> Remove the animation when hiding/showing the Dock"
defaults write com.apple.dock autohide-time-modifier -float 0
echo " --> Automatically hide and show the Dock"
defaults write com.apple.dock autohide -bool true
echo " --> Make Dock icons of hidden applications translucent"
defaults write com.apple.dock showhidden -bool true
cho "
###############################################################################
# Dashboard, Dock, Screen and Hot Corners #
###############################################################################
"
echo " --> Don’t show recent applications in Dock"
defaults write com.apple.dock show-recents -bool false
echo " --> Enable highlight hover effect for the grid view of a stack (Dock)"
defaults write com.apple.dock mouse-over-hilite-stack -bool true
echo " --> Set the icon size of Dock items to 36 pixels"
defaults write com.apple.dock tilesize -int 36
echo " --> Change minimize/maximize window effect"
defaults write com.apple.dock mineffect -string "scale"
echo " --> Minimize windows into their application’s icon"
defaults write com.apple.dock minimize-to-application -bool true
echo " --> Enable spring loading for all Dock items"
defaults write com.apple.dock enable-spring-load-actions-on-all-items -bool true
echo " --> Show indicator lights for open applications in the Dock"
defaults write com.apple.dock show-process-indicators -bool true
echo " --> Don’t animate opening applications from the Dock"
defaults write com.apple.dock launchanim -bool false
echo " --> Speed up Mission Control animations"
defaults write com.apple.dock expose-animation-duration -float 0.1
echo " --> Don’t group windows by application in Mission Control"
# (i.e. use the old Exposé behavior instead)
defaults write com.apple.dock expose-group-by-app -bool false
echo " --> Disable Dashboard"
defaults write com.apple.dashboard mcx-disabled -bool true
echo " --> Don’t show Dashboard as a Space"
defaults write com.apple.dock dashboard-in-overlay -bool true
echo " --> Don’t automatically rearrange Spaces based on most recent use"
defaults write com.apple.dock mru-spaces -bool false
echo " --> Remove the auto-hiding Dock delay"
defaults write com.apple.dock autohide-delay -float 0.1
echo " --> Remove the animation when hiding/showing the Dock"
defaults write com.apple.dock autohide-time-modifier -float 0
echo " --> Wipe all (default) app icons from the Dock"
# This is only really useful when setting up a new Mac, or if you don’t use
# the Dock to launch apps.
defaults write com.apple.dock persistent-apps -array
echo " --> Automatically hide and show the Dock"
defaults write com.apple.dock autohide -bool true
echo " --> Make Dock icons of hidden applications translucent"
defaults write com.apple.dock showhidden -bool true
echo " --> Reset Launchpad, but keep the desktop wallpaper intact"
find "${HOME}/Library/Application Support/Dock" -name "*-*.db" -maxdepth 1 -delete
echo " --> Add iOS & Watch Simulator to Launchpad"
sudo ln -sf "/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app" "/Applications/Simulator.app"
sudo ln -sf "/Applications/Xcode.app/Contents/Developer/Applications/Simulator (Watch).app" "/Applications/Simulator (Watch).app"
# Hot corners
# Possible values:
# 0: no-op
# 2: Mission Control
# 3: Show application windows
# 4: Desktop
# 5: Start screen saver
# 6: Disable screen saver
# 7: Dashboard
# 10: Put display to sleep
# 11: Launchpad
# 12: Notification Center
# Top left screen corner → Mission Control
defaults write com.apple.dock wvous-tl-corner -int 2
defaults write com.apple.dock wvous-tl-modifier -int 0
# Top right screen corner → Desktop
defaults write com.apple.dock wvous-tr-corner -int 4
defaults write com.apple.dock wvous-tr-modifier -int 0
# Bottom right screen corner → Start screen saver
defaults write com.apple.dock wvous-br-corner -int 5
defaults write com.apple.dock wvous-br-modifier -int 10
echo " --> 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
echo " --> Save screenshots to the desktop"
defaults write com.apple.screencapture location -string "${HOME}/Desktop"
echo " --> Save screenshots in PNG format (other options: BMP, GIF, JPG, PDF, TIFF)"
defaults write com.apple.screencapture type -string "png"
echo " --> Disable shadow in screenshots"
defaults write com.apple.screencapture disable-shadow -bool true
echo " --> Enable subpixel font rendering on non-Apple LCDs"
defaults write NSGlobalDomain AppleFontSmoothing -int 2
echo " --> Enable HiDPI display modes (requires restart)"
sudo defaults write /Library/Preferences/com.apple.windowserver DisplayResolutionEnabled -bool true
echo "
###############################################################################
# Safari & WebKit #
###############################################################################
"
# Privacy: don’t send search queries to Apple
defaults write com.apple.Safari UniversalSearchEnabled -bool false
defaults write com.apple.Safari SuppressSearchSuggestions -bool true
# Press Tab to highlight each item on a web page
defaults write com.apple.Safari WebKitTabToLinksPreferenceKey -bool true
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2TabsToLinks -bool true
# Show the full URL in the address bar (note: this still hides the scheme)
defaults write com.apple.Safari ShowFullURLInSmartSearchField -bool true
# Set Safari’s home page to `about:blank` for faster loading
defaults write com.apple.Safari HomePage -string "about:blank"
# Prevent Safari from opening ‘safe’ files automatically after downloading
defaults write com.apple.Safari AutoOpenSafeDownloads -bool false
# Allow hitting the Backspace key to go to the previous page in history
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2BackspaceKeyNavigationEnabled -bool true
# Hide Safari’s bookmarks bar by default
defaults write com.apple.Safari ShowFavoritesBar -bool false
# Hide Safari’s sidebar in Top Sites
defaults write com.apple.Safari ShowSidebarInTopSites -bool false
# Disable Safari’s thumbnail cache for History and Top Sites
defaults write com.apple.Safari DebugSnapshotsUpdatePolicy -int 2
# Enable Safari’s debug menu
defaults write com.apple.Safari IncludeInternalDebugMenu -bool true
# Make Safari’s search banners default to Contains instead of Starts With
defaults write com.apple.Safari FindOnPageMatchesWordStartsOnly -bool false
# Remove useless icons from Safari’s bookmarks bar
# defaults write com.apple.Safari ProxiesInBookmarksBar "()"
# Enable the Develop menu and the Web Inspector in Safari
defaults write com.apple.Safari IncludeDevelopMenu -bool true
defaults write com.apple.Safari WebKitDeveloperExtrasEnabledPreferenceKey -bool true
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2DeveloperExtrasEnabled -bool true
# Add a context menu item for showing the Web Inspector in web views
defaults write NSGlobalDomain WebKitDeveloperExtras -bool true
# Enable continuous spellchecking
defaults write com.apple.Safari WebContinuousSpellCheckingEnabled -bool true
# Disable auto-correct
defaults write com.apple.Safari WebAutomaticSpellingCorrectionEnabled -bool false
# Disable AutoFill
defaults write com.apple.Safari AutoFillFromAddressBook -bool false
defaults write com.apple.Safari AutoFillPasswords -bool false
defaults write com.apple.Safari AutoFillCreditCardData -bool false
defaults write com.apple.Safari AutoFillMiscellaneousForms -bool false
# Warn about fraudulent websites
defaults write com.apple.Safari WarnAboutFraudulentWebsites -bool true
# Disable plug-ins
defaults write com.apple.Safari WebKitPluginsEnabled -bool false
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2PluginsEnabled -bool false
# Disable Java
defaults write com.apple.Safari WebKitJavaEnabled -bool false
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaEnabled -bool false
# Block pop-up windows
defaults write com.apple.Safari WebKitJavaScriptCanOpenWindowsAutomatically -bool false
defaults write com.apple.Safari com.apple.Safari.ContentPageGroupIdentifier.WebKit2JavaScriptCanOpenWindowsAutomatically -bool false
# Enable “Do Not Track”
defaults write com.apple.Safari SendDoNotTrackHTTPHeader -bool true
# Update extensions automatically
defaults write com.apple.Safari InstallExtensionUpdatesAutomatically -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 it’s 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment