Skip to content

Instantly share code, notes, and snippets.

@auryn31
Forked from codeinthehole/osx_bootstrap.sh
Last active June 22, 2022 08:53
Show Gist options
  • Select an option

  • Save auryn31/c5611eb41cce13a004044d57367188e1 to your computer and use it in GitHub Desktop.

Select an option

Save auryn31/c5611eb41cce13a004044d57367188e1 to your computer and use it in GitHub Desktop.

Revisions

  1. auryn31 revised this gist Jun 22, 2022. 1 changed file with 15 additions and 1 deletion.
    16 changes: 15 additions & 1 deletion osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -63,6 +63,7 @@ PACKAGES=(
    ansible
    awscli
    bash-completion
    bat
    docker
    ffmpeg
    flatbuffers
    @@ -71,6 +72,7 @@ PACKAGES=(
    gifsicle
    git
    git-flow
    git-lfs
    graphviz
    helm
    htop
    @@ -80,13 +82,17 @@ PACKAGES=(
    kubectl
    mackup
    markdown
    maven
    micronaut
    minikube
    npm
    nvm
    protobuf
    pandoc
    python3
    pypy3
    rename
    redis
    terminal-notifier
    tmux
    tree
    @@ -112,6 +118,8 @@ APPS=(
    calibre
    chromedriver
    dropbox
    deepl
    docker
    dbeaver-community
    google-chrome
    iterm2
    @@ -129,7 +137,6 @@ APPS=(
    whatsapp
    deepl
    grammarly
    docker
    gimp
    visualvm
    vlc
    @@ -153,6 +160,7 @@ FONTS=(
    font-fira-code
    font-fira-code-nerd-font
    font-hack-nerd-font
    font-3270
    font-3270-nerd-font
    font-victor-mono
    )
    @@ -172,6 +180,12 @@ printInfo "Install Rust..."

    curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh

    # https://sdkman.io/install
    printInfo "Install SDKMan..."

    curl -s "https://get.sdkman.io" | bash
    source "$HOME/.sdkman/bin/sdkman-init.sh"

    printInfo "Configuring OSX..."

    # Trackpad: enable tap to click for this user and for the login screen
  2. auryn31 revised this gist Feb 16, 2022. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -154,6 +154,7 @@ FONTS=(
    font-fira-code-nerd-font
    font-hack-nerd-font
    font-3270-nerd-font
    font-victor-mono
    )
    brew cask install ${FONTS[@]}

  3. auryn31 revised this gist Apr 23, 2021. 1 changed file with 3 additions and 2 deletions.
    5 changes: 3 additions & 2 deletions osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -119,7 +119,6 @@ APPS=(
    visual-studio-code
    java
    postman
    basictex
    tex-live-utility
    spotify
    intellij-idea
    @@ -135,11 +134,13 @@ APPS=(
    visualvm
    vlc
    dozer
    runjs
    notion
    )

    for app in ${APPS[@]}
    do
    brew cask list $app || brew cask install $app
    brew list --cask $app || brew install --cask $app
    done


  4. auryn31 revised this gist Nov 4, 2020. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -61,10 +61,12 @@ brew install bash
    PACKAGES=(
    ack
    ansible
    awscli
    bash-completion
    docker
    ffmpeg
    flatbuffers
    fzf
    go
    gifsicle
    git
  5. auryn31 revised this gist Sep 28, 2020. 1 changed file with 20 additions and 1 deletion.
    21 changes: 20 additions & 1 deletion osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -60,13 +60,18 @@ brew install bash

    PACKAGES=(
    ack
    ansible
    bash-completion
    docker
    ffmpeg
    flatbuffers
    go
    gifsicle
    git
    git-flow
    graphviz
    helm
    htop
    hub
    httpie
    jq
    @@ -75,15 +80,18 @@ PACKAGES=(
    markdown
    minikube
    npm
    protobuf
    pandoc
    python3
    pypy3
    rename
    terminal-notifier
    tmux
    tree
    vim
    wget
    youtube-dl
    ytop
    )

    printInfo "Installing packages..."
    @@ -98,7 +106,11 @@ brew cleanup
    printInfo "Installing cask apps..."

    APPS=(
    basictex
    calibre
    chromedriver
    dropbox
    dbeaver-community
    google-chrome
    iterm2
    slack
    @@ -111,7 +123,6 @@ APPS=(
    intellij-idea
    kitematic
    gitkraken
    dbeaver-community
    robo-3t
    omnidisksweeper
    whatsapp
    @@ -136,6 +147,10 @@ FONTS=(
    font-inconsolata
    font-roboto
    font-clear-sans
    font-fira-code
    font-fira-code-nerd-font
    font-hack-nerd-font
    font-3270-nerd-font
    )
    brew cask install ${FONTS[@]}

    @@ -149,6 +164,10 @@ printInfo "Install oh my zsh"

    sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

    printInfo "Install Rust..."

    curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh

    printInfo "Configuring OSX..."

    # Trackpad: enable tap to click for this user and for the login screen
  6. auryn31 revised this gist Jan 7, 2020. 1 changed file with 8 additions and 13 deletions.
    21 changes: 8 additions & 13 deletions osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -60,35 +60,30 @@ brew install bash

    PACKAGES=(
    ack
    bash-completion
    docker
    ffmpeg
    gifsicle
    git
    git-flow
    graphviz
    hub
    git-flow
    imagemagick
    httpie
    jq
    libjpeg
    lynx
    kubectl
    mackup
    markdown
    minikube
    npm
    pandoc
    python3
    rename
    ssh-copy-id
    terminal-notifier
    tmux
    tree
    vim
    wget
    youtube-dl
    mackup
    git
    docker
    httpie
    pandoc
    bash-completion
    kubectl
    minikube
    )

    printInfo "Installing packages..."
  7. auryn31 revised this gist Jan 7, 2020. 1 changed file with 4 additions and 1 deletion.
    5 changes: 4 additions & 1 deletion osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -92,7 +92,10 @@ PACKAGES=(
    )

    printInfo "Installing packages..."
    brew install ${PACKAGES[@]}
    for package in ${PACKAGES[@]}
    do
    brew list $package && brew upgrade $package || brew install $package
    done

    printInfo "Cleaning up..."
    brew cleanup
  8. auryn31 revised this gist Jan 6, 2020. 1 changed file with 5 additions and 5 deletions.
    10 changes: 5 additions & 5 deletions osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -158,18 +158,18 @@ defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool
    defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
    defaults write NSGlobalDomain com.apple.mouse.tapBehavior -int 1

    # Trackpad: drag and move with three fingers --> DOES NOT WORK :-/
    #defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag -bool true
    #defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag -bool true
    # Trackpad: drag and move with three fingers --> Require restart
    defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag -bool true
    defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag -bool true

    # Key is repead when hold
    defaults write -g ApplePressAndHoldEnabled -bool false

    # Set speed of repetition to fastest
    defaults write NSGlobalDomain KeyRepeat -int 0
    defaults write NSGlobalDomain KeyRepeat -int 4

    # Set wait until repead to 15ms
    defaults write NSGlobalDomain InitialKeyRepeat -int 15
    defaults write NSGlobalDomain InitialKeyRepeat -int 25

    # Increase window resize speed for Cocoa applications
    defaults write NSGlobalDomain NSWindowResizeTime -float 0.001
  9. auryn31 revised this gist Jan 5, 2020. 1 changed file with 17 additions and 5 deletions.
    22 changes: 17 additions & 5 deletions osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -13,6 +13,12 @@
    # - If installing full Xcode, it's better to install that first from the app
    # store before running the bootstrap script. Otherwise, Homebrew can't access
    # the Xcode libraries as the agreement hasn't been accepted yet.
    #
    # Important:
    #
    # - After you run the script and logged in into dropbox, restore settings for apps with
    # => mackup restore
    #

    BOLD=$(tput bold)
    NORMAL=$(tput sgr0)
    @@ -152,9 +158,19 @@ defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool
    defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
    defaults write NSGlobalDomain com.apple.mouse.tapBehavior -int 1

    # Trackpad: drag and move with three fingers --> DOES NOT WORK :-/
    #defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad TrackpadThreeFingerDrag -bool true
    #defaults write com.apple.AppleMultitouchTrackpad TrackpadThreeFingerDrag -bool true

    # Key is repead when hold
    defaults write -g ApplePressAndHoldEnabled -bool false

    # Set speed of repetition to fastest
    defaults write NSGlobalDomain KeyRepeat -int 0

    # Set wait until repead to 15ms
    defaults write NSGlobalDomain InitialKeyRepeat -int 15

    # Increase window resize speed for Cocoa applications
    defaults write NSGlobalDomain NSWindowResizeTime -float 0.001

    @@ -331,16 +347,12 @@ defaults write com.apple.terminal StringEncodings -array 4
    # Don’t display the annoying prompt when quitting iTerm
    defaults write com.googlecode.iterm2 PromptOnQuit -bool false

    printInfo "Restore from mackup"

    mackup restore

    ###############################################################################
    # Kill affected applications #
    ###############################################################################

    for app in "Activity Monitor" "Address Book" "Calendar" "Contacts" "cfprefsd" \
    "Dock" "Finder" "Mail" "Messages" "Opera" "Photos" "Safari" \
    "Dock" "Finder" "Mail" "Messages" "Photos" "Safari" \
    "SizeUp" "Spectacle" "SystemUIServer" "Terminal" "Transmission" "iCal"; do
    killall "${app}" &> /dev/null
    done
  10. auryn31 revised this gist Jan 5, 2020. 1 changed file with 4 additions and 0 deletions.
    4 changes: 4 additions & 0 deletions osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -117,6 +117,7 @@ APPS=(
    gimp
    visualvm
    vlc
    dozer
    )

    for app in ${APPS[@]}
    @@ -345,4 +346,7 @@ for app in "Activity Monitor" "Address Book" "Calendar" "Contacts" "cfprefsd" \
    done
    echo "Done. Note that some of these changes require a logout/restart to take effect."

    printInfo "Cleanup cache"
    brew cleanup -s

    notifyInfo "Bootstrapping complete"
  11. auryn31 revised this gist Jan 2, 2020. 1 changed file with 14 additions and 4 deletions.
    18 changes: 14 additions & 4 deletions osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -230,17 +230,28 @@ chflags nohidden ~/Library
    # Dock, Dashboard, and hot corners #
    ###############################################################################

    # Enable highlight hover effect for the grid view of a stack (Dock)
    defaults write com.apple.dock mouse-over-hilite-stack -bool true

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

    # Show indicator lights for open applications in the Dock
    defaults write com.apple.dock show-process-indicators -bool true

    # Show only open applications in the Dock
    defaults write com.apple.dock static-only -bool true

    # Speed up Mission Control animations
    defaults write com.apple.dock expose-animation-duration -float 0.1
    defaults write com.apple.dock expose-animation-duration -float 0.2

    # 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 true

    # Remove the auto-hiding Dock delay
    defaults write com.apple.dock autohide-delay -float 0

    # Set the animation speed when hiding/showing the Dock
    defaults write com.apple.dock autohide-time-modifier -float 0.5

    @@ -328,9 +339,8 @@ mackup restore
    ###############################################################################

    for app in "Activity Monitor" "Address Book" "Calendar" "Contacts" "cfprefsd" \
    "Dock" "Finder" "Google Chrome" "Google Chrome Canary" "Mail" "Messages" \
    "Opera" "Photos" "Safari" "SizeUp" "Spectacle" "SystemUIServer" "Terminal" \
    "Transmission" "Tweetbot" "Twitter" "iCal"; do
    "Dock" "Finder" "Mail" "Messages" "Opera" "Photos" "Safari" \
    "SizeUp" "Spectacle" "SystemUIServer" "Terminal" "Transmission" "iCal"; do
    killall "${app}" &> /dev/null
    done
    echo "Done. Note that some of these changes require a logout/restart to take effect."
  12. auryn31 revised this gist Jan 2, 2020. 1 changed file with 201 additions and 25 deletions.
    226 changes: 201 additions & 25 deletions osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -4,40 +4,41 @@
    #
    # This should be idempotent so it can be run multiple times.
    #
    # Apps without brew installation:
    # - Magnet https://magnet.crowdcafe.com https://apps.apple.com/app/id441258766?mt=12
    #
    #
    # Notes:
    #
    # - If installing full Xcode, it's better to install that first from the app
    # store before running the bootstrap script. Otherwise, Homebrew can't access
    # the Xcode libraries as the agreement hasn't been accepted yet.
    #
    # Reading:
    #
    # - https://gist.github.com/MatthewMueller/e22d9840f9ea2fee4716
    # - https://news.ycombinator.com/item?id=8402079
    # - http://notes.jerzygangi.com/the-best-pgp-tutorial-for-mac-os-x-ever/

    BOLD=$(tput bold)
    NORMAL=$(tput sgr0)
    NONE='\033[00m'
    RED='\033[01;31m'

    function printInfo {
    echo -e "${BOLD}${RED}==========\n$1\n==========${NORMAL}${NONE}"
    echo -e "${BOLD}${RED}\n$1\n${NORMAL}${NONE}"
    }

    function notifyInfo {
    echo $1 | terminal-notifier -sound default
    }

    printInfo "Starting bootstrapping"

    # Check for Homebrew, install if we don't have it
    if test ! $(which brew); then
    printInfo "Installing homebrew..."
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    fi

    # Update homebrew recipes
    brew update

    # Install GNU core utilities (those that come with OS X are outdated)
    #brew tap homebrew/dupes
    brew install coreutils
    brew install gnu-sed
    brew install gnu-tar
    @@ -53,33 +54,22 @@ brew install bash

    PACKAGES=(
    ack
    autoconf
    automake
    boot2docker
    ffmpeg
    gettext
    gifsicle
    git
    graphviz
    hub
    git-flow
    imagemagick
    jq
    libjpeg
    libmemcached
    lynx
    markdown
    memcached
    mercurial
    npm
    pkg-config
    postgresql
    python3
    pypy
    rabbitmq
    rename
    ssh-copy-id
    terminal-notifier
    the_silver_searcher
    tmux
    tree
    vim
    @@ -90,6 +80,9 @@ PACKAGES=(
    docker
    httpie
    pandoc
    bash-completion
    kubectl
    minikube
    )

    printInfo "Installing packages..."
    @@ -120,6 +113,10 @@ APPS=(
    whatsapp
    deepl
    grammarly
    docker
    gimp
    visualvm
    vlc
    )

    for app in ${APPS[@]}
    @@ -143,20 +140,199 @@ npm install typescript -g
    npm install yarn -g
    npm install serverless -g

    printInfo "Install oh my zsh"

    sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

    printInfo "Configuring OSX..."

    # 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

    # Key is repead when hold
    defaults write -g ApplePressAndHoldEnabled -bool false

    # Increase window resize speed for Cocoa applications
    defaults write NSGlobalDomain NSWindowResizeTime -float 0.001

    # Disable the “Are you sure you want to open this application?” dialog
    defaults write com.apple.LaunchServices LSQuarantine -bool false

    # Increase sound quality for Bluetooth headphones/headsets
    defaults write com.apple.BluetoothAudioAgent "Apple Bitpool Min (editable)" -int 40

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

    # 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"


    ###############################################################################
    # Finder #
    ###############################################################################

    # Finder: allow quitting via ⌘ + Q; doing so will also hide desktop icons
    defaults write com.apple.finder QuitMenuItem -bool true

    # Show icons for hard drives, servers, and removable media on the desktop
    defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -bool false
    defaults write com.apple.finder ShowHardDrivesOnDesktop -bool false
    defaults write com.apple.finder ShowMountedServersOnDesktop -bool false
    defaults write com.apple.finder ShowRemovableMediaOnDesktop -bool false

    # Show filename extensions by default
    defaults write NSGlobalDomain AppleShowAllExtensions -bool true

    # Show hidden files
    defaults write com.apple.Finder AppleShowAllFiles true

    # Enable tap-to-click
    defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
    defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
    # Allowing text selection in Quick Look/Preview in Finder by default
    defaults write com.apple.finder QLEnableTextSelection -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

    # 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

    # Automatically open a new Finder window when a volume is mounted
    defaults write com.apple.frameworks.diskimages auto-open-ro-root -bool true
    defaults write com.apple.frameworks.diskimages auto-open-rw-root -bool true
    defaults write com.apple.finder OpenWindowForNewRemovableDisk -bool true

    # 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"

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

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

    ###############################################################################
    # Dock, Dashboard, and hot corners #
    ###############################################################################

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

    # Show indicator lights for open applications in the Dock
    defaults write com.apple.dock show-process-indicators -bool true

    # Speed up Mission Control animations
    defaults write com.apple.dock expose-animation-duration -float 0.1

    # Remove the auto-hiding Dock delay
    defaults write com.apple.dock autohide-delay -float 0
    # Set the animation speed when hiding/showing the Dock
    defaults write com.apple.dock autohide-time-modifier -float 0.5

    # Automatically hide and show the Dock
    defaults write com.apple.dock autohide -bool true

    ###############################################################################
    # 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

    # 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

    # 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

    # Disable auto-correct
    defaults write com.apple.Safari WebAutomaticSpellingCorrectionEnabled -bool false

    ###############################################################################
    # Mail #
    ###############################################################################

    # Copy email addresses as `[email protected]` instead of `Foo Bar <[email protected]>` in Mail.app
    defaults write com.apple.mail AddressesIncludeNameOnPasteboard -bool false

    # 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


    ###############################################################################
    # Terminal & iTerm 2 #
    ###############################################################################

    # Only use UTF-8 in Terminal.app
    defaults write com.apple.terminal StringEncodings -array 4

    # Don’t display the annoying prompt when quitting iTerm
    defaults write com.googlecode.iterm2 PromptOnQuit -bool false

    printInfo "Restore from mackup"

    mackup restore

    printInfo "Bootstrapping complete"
    ###############################################################################
    # Kill affected applications #
    ###############################################################################

    for app in "Activity Monitor" "Address Book" "Calendar" "Contacts" "cfprefsd" \
    "Dock" "Finder" "Google Chrome" "Google Chrome Canary" "Mail" "Messages" \
    "Opera" "Photos" "Safari" "SizeUp" "Spectacle" "SystemUIServer" "Terminal" \
    "Transmission" "Tweetbot" "Twitter" "iCal"; do
    killall "${app}" &> /dev/null
    done
    echo "Done. Note that some of these changes require a logout/restart to take effect."

    notifyInfo "Bootstrapping complete"
  13. auryn31 revised this gist Jan 2, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -22,7 +22,7 @@ NONE='\033[00m'
    RED='\033[01;31m'

    function printInfo {
    echo -e "${BOLD}${RED}$1${NORMAL}${NONE}"
    echo -e "${BOLD}${RED}==========\n$1\n==========${NORMAL}${NONE}"
    }

    printInfo "Starting bootstrapping"
  14. auryn31 revised this gist Jan 2, 2020. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -118,6 +118,8 @@ APPS=(
    robo-3t
    omnidisksweeper
    whatsapp
    deepl
    grammarly
    )

    for app in ${APPS[@]}
  15. auryn31 revised this gist Jan 2, 2020. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -102,7 +102,6 @@ printInfo "Installing cask apps..."

    APPS=(
    dropbox
    flux
    google-chrome
    iterm2
    slack
    @@ -114,10 +113,11 @@ APPS=(
    spotify
    intellij-idea
    kitematic
    oxygen-xml-editor
    gitkraken
    dbeaver-community
    robo-3t
    omnidisksweeper
    whatsapp
    )

    for app in ${APPS[@]}
  16. auryn31 revised this gist Jan 2, 2020. 1 changed file with 4 additions and 0 deletions.
    4 changes: 4 additions & 0 deletions osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -153,4 +153,8 @@ defaults write com.apple.Finder AppleShowAllFiles true
    defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
    defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1

    printInfo "Restore from mackup"

    mackup restore

    printInfo "Bootstrapping complete"
  17. auryn31 revised this gist Jan 2, 2020. 1 changed file with 0 additions and 19 deletions.
    19 changes: 0 additions & 19 deletions osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -4,12 +4,6 @@
    #
    # This should be idempotent so it can be run multiple times.
    #
    # Some apps don't have a cask and so still need to be installed by hand. These
    # include:
    #
    # - Twitter (app store)
    # - Postgres.app (http://postgresapp.com/)
    #
    # Notes:
    #
    # - If installing full Xcode, it's better to install that first from the app
    @@ -18,7 +12,6 @@
    #
    # Reading:
    #
    # - http://lapwinglabs.com/blog/hacker-guide-to-setting-up-your-mac
    # - https://gist.github.com/MatthewMueller/e22d9840f9ea2fee4716
    # - https://news.ycombinator.com/item?id=8402079
    # - http://notes.jerzygangi.com/the-best-pgp-tutorial-for-mac-os-x-ever/
    @@ -142,8 +135,6 @@ FONTS=(
    )
    brew cask install ${FONTS[@]}



    printInfo "Installing global npm packages..."
    npm install marked -g
    npm install typescript -g
    @@ -152,13 +143,6 @@ npm install serverless -g

    printInfo "Configuring OSX..."

    # Set fast key repeat rate
    defaults write NSGlobalDomain KeyRepeat -int 0

    # Require password as soon as screensaver or sleep mode starts
    defaults write com.apple.screensaver askForPassword -int 1
    defaults write com.apple.screensaver askForPasswordDelay -int 0

    # Show filename extensions by default
    defaults write NSGlobalDomain AppleShowAllExtensions -bool true

    @@ -169,7 +153,4 @@ defaults write com.apple.Finder AppleShowAllFiles true
    defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
    defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1

    # Disable "natural" scroll
    # defaults write NSGlobalDomain com.apple.swipescrolldirection -bool false

    printInfo "Bootstrapping complete"
  18. auryn31 revised this gist Jan 2, 2020. 1 changed file with 21 additions and 27 deletions.
    48 changes: 21 additions & 27 deletions osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -23,11 +23,20 @@
    # - https://news.ycombinator.com/item?id=8402079
    # - http://notes.jerzygangi.com/the-best-pgp-tutorial-for-mac-os-x-ever/

    echo "Starting bootstrapping"
    BOLD=$(tput bold)
    NORMAL=$(tput sgr0)
    NONE='\033[00m'
    RED='\033[01;31m'

    function printInfo {
    echo -e "${BOLD}${RED}$1${NORMAL}${NONE}"
    }

    printInfo "Starting bootstrapping"

    # Check for Homebrew, install if we don't have it
    if test ! $(which brew); then
    echo "Installing homebrew..."
    printInfo "Installing homebrew..."
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    fi

    @@ -90,13 +99,13 @@ PACKAGES=(
    pandoc
    )

    echo "Installing packages..."
    printInfo "Installing packages..."
    brew install ${PACKAGES[@]}

    echo "Cleaning up..."
    printInfo "Cleaning up..."
    brew cleanup

    echo "Installing cask apps..."
    printInfo "Installing cask apps..."

    APPS=(
    dropbox
    @@ -124,7 +133,7 @@ do
    done


    echo "Installing fonts..."
    printInfo "Installing fonts..."
    brew tap homebrew/cask-fonts
    FONTS=(
    font-inconsolata
    @@ -133,26 +142,15 @@ FONTS=(
    )
    brew cask install ${FONTS[@]}

    echo "Installing Python packages..."
    PYTHON_PACKAGES=(
    ipython
    virtualenv
    virtualenvwrapper
    )
    sudo pip install ${PYTHON_PACKAGES[@]}

    echo "Installing Ruby gems"
    RUBY_GEMS=(
    bundler
    filewatcher
    cocoapods
    )
    sudo gem install ${RUBY_GEMS[@]}

    echo "Installing global npm packages..."
    printInfo "Installing global npm packages..."
    npm install marked -g
    npm install typescript -g
    npm install yarn -g
    npm install serverless -g

    echo "Configuring OSX..."
    printInfo "Configuring OSX..."

    # Set fast key repeat rate
    defaults write NSGlobalDomain KeyRepeat -int 0
    @@ -174,8 +172,4 @@ defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1
    # Disable "natural" scroll
    # defaults write NSGlobalDomain com.apple.swipescrolldirection -bool false

    echo "Creating folder structure..."
    [[ ! -d Wiki ]] && mkdir Wiki
    [[ ! -d Workspace ]] && mkdir Workspace

    echo "Bootstrapping complete"
    printInfo "Bootstrapping complete"
  19. auryn31 revised this gist Jan 2, 2020. 1 changed file with 26 additions and 19 deletions.
    45 changes: 26 additions & 19 deletions osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -97,25 +97,32 @@ echo "Cleaning up..."
    brew cleanup

    echo "Installing cask apps..."
    brew cask install dropbox
    brew cask install flux
    brew cask install google-chrome
    brew cask install iterm2
    brew cask install slack
    brew cask install visual-studio-code
    brew cask install java
    brew cask install postman
    brew cask install basictex
    brew cask install tex-live-utility
    brew cask install spotify
    brew cask install intellij-idea
    brew cask install r
    brew cask install rstudio
    brew cask install kitematic
    brew cask install oxygen-xml-editor
    brew cask install gitkraken
    brew cask install dbeaver-community
    brew cask install robo-3t

    APPS=(
    dropbox
    flux
    google-chrome
    iterm2
    slack
    visual-studio-code
    java
    postman
    basictex
    tex-live-utility
    spotify
    intellij-idea
    kitematic
    oxygen-xml-editor
    gitkraken
    dbeaver-community
    robo-3t
    )

    for app in ${APPS[@]}
    do
    brew cask list $app || brew cask install $app
    done


    echo "Installing fonts..."
    brew tap homebrew/cask-fonts
  20. auryn31 revised this gist Jan 2, 2020. 1 changed file with 32 additions and 44 deletions.
    76 changes: 32 additions & 44 deletions osx_bootstrap.sh
    100644 → 100755
    Original file line number Diff line number Diff line change
    @@ -35,13 +35,13 @@ fi
    brew update

    # Install GNU core utilities (those that come with OS X are outdated)
    brew tap homebrew/dupes
    #brew tap homebrew/dupes
    brew install coreutils
    brew install gnu-sed --with-default-names
    brew install gnu-tar --with-default-names
    brew install gnu-indent --with-default-names
    brew install gnu-which --with-default-names
    brew install gnu-grep --with-default-names
    brew install gnu-sed
    brew install gnu-tar
    brew install gnu-indent
    brew install gnu-which
    brew install grep

    # Install GNU `find`, `locate`, `updatedb`, and `xargs`, g-prefixed
    brew install findutils
    @@ -83,56 +83,44 @@ PACKAGES=(
    vim
    wget
    youtube-dl
    mackup
    git
    docker
    httpie
    pandoc
    )

    echo "Installing packages..."
    brew install ${PACKAGES[@]}


    echo "Installing dev tools..."
    brew install git
    brew install docker
    brew cask install github-desktop
    brew install basex
    brew cask install exist-db
    brew install neo4j
    brew cask install rstudio
    brew install httpie
    #brew cask install hyper
    brew cask install kitematic
    brew cask install oxygen-xml-editor
    brew install pandoc
    brew install pandoc-citeproc


    echo "Cleaning up..."
    brew cleanup

    echo "Installing cask..."
    brew install caskroom/cask/brew-cask

    CASKS=(
    dropbox
    flux
    google-chrome
    gpgtools
    iterm2
    slack
    visual-studio-code
    java
    postman
    basictex
    tex-live-utility
    spotify
    )

    echo "Installing cask apps..."
    brew cask install ${CASKS[@]}
    brew cask install dropbox
    brew cask install flux
    brew cask install google-chrome
    brew cask install iterm2
    brew cask install slack
    brew cask install visual-studio-code
    brew cask install java
    brew cask install postman
    brew cask install basictex
    brew cask install tex-live-utility
    brew cask install spotify
    brew cask install intellij-idea
    brew cask install r
    brew cask install rstudio
    brew cask install kitematic
    brew cask install oxygen-xml-editor
    brew cask install gitkraken
    brew cask install dbeaver-community
    brew cask install robo-3t

    echo "Installing fonts..."
    brew tap caskroom/fonts
    brew tap homebrew/cask-fonts
    FONTS=(
    font-inconsolidata
    font-inconsolata
    font-roboto
    font-clear-sans
    )
  21. auryn31 revised this gist Jan 2, 2020. 1 changed file with 29 additions and 12 deletions.
    41 changes: 29 additions & 12 deletions osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -71,7 +71,6 @@ PACKAGES=(
    npm
    pkg-config
    postgresql
    python
    python3
    pypy
    rabbitmq
    @@ -83,33 +82,48 @@ PACKAGES=(
    tree
    vim
    wget
    youtube-dl
    )

    echo "Installing packages..."
    brew install ${PACKAGES[@]}


    echo "Installing dev tools..."
    brew install git
    brew install docker
    brew cask install github-desktop
    brew install basex
    brew cask install exist-db
    brew install neo4j
    brew cask install rstudio
    brew install httpie
    #brew cask install hyper
    brew cask install kitematic
    brew cask install oxygen-xml-editor
    brew install pandoc
    brew install pandoc-citeproc


    echo "Cleaning up..."
    brew cleanup

    echo "Installing cask..."
    brew install caskroom/cask/brew-cask

    CASKS=(
    colluquy
    dropbox
    firefox
    flux
    google-chrome
    google-drive
    gpgtools
    iterm2
    macvim
    skype
    slack
    spectacle
    vagrant
    virtualbox
    vlc
    slack
    visual-studio-code
    java
    postman
    basictex
    tex-live-utility
    spotify
    )

    echo "Installing cask apps..."
    @@ -155,12 +169,15 @@ defaults write com.apple.screensaver askForPasswordDelay -int 0
    # Show filename extensions by default
    defaults write NSGlobalDomain AppleShowAllExtensions -bool true

    # Show hidden files
    defaults write com.apple.Finder AppleShowAllFiles true

    # Enable tap-to-click
    defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
    defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1

    # Disable "natural" scroll
    defaults write NSGlobalDomain com.apple.swipescrolldirection -bool false
    # defaults write NSGlobalDomain com.apple.swipescrolldirection -bool false

    echo "Creating folder structure..."
    [[ ! -d Wiki ]] && mkdir Wiki
  22. @codeinthehole codeinthehole created this gist Mar 30, 2015.
    169 changes: 169 additions & 0 deletions osx_bootstrap.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,169 @@
    #!/usr/bin/env bash
    #
    # Bootstrap script for setting up a new OSX machine
    #
    # This should be idempotent so it can be run multiple times.
    #
    # Some apps don't have a cask and so still need to be installed by hand. These
    # include:
    #
    # - Twitter (app store)
    # - Postgres.app (http://postgresapp.com/)
    #
    # Notes:
    #
    # - If installing full Xcode, it's better to install that first from the app
    # store before running the bootstrap script. Otherwise, Homebrew can't access
    # the Xcode libraries as the agreement hasn't been accepted yet.
    #
    # Reading:
    #
    # - http://lapwinglabs.com/blog/hacker-guide-to-setting-up-your-mac
    # - https://gist.github.com/MatthewMueller/e22d9840f9ea2fee4716
    # - https://news.ycombinator.com/item?id=8402079
    # - http://notes.jerzygangi.com/the-best-pgp-tutorial-for-mac-os-x-ever/

    echo "Starting bootstrapping"

    # Check for Homebrew, install if we don't have it
    if test ! $(which brew); then
    echo "Installing homebrew..."
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    fi

    # Update homebrew recipes
    brew update

    # Install GNU core utilities (those that come with OS X are outdated)
    brew tap homebrew/dupes
    brew install coreutils
    brew install gnu-sed --with-default-names
    brew install gnu-tar --with-default-names
    brew install gnu-indent --with-default-names
    brew install gnu-which --with-default-names
    brew install gnu-grep --with-default-names

    # Install GNU `find`, `locate`, `updatedb`, and `xargs`, g-prefixed
    brew install findutils

    # Install Bash 4
    brew install bash

    PACKAGES=(
    ack
    autoconf
    automake
    boot2docker
    ffmpeg
    gettext
    gifsicle
    git
    graphviz
    hub
    imagemagick
    jq
    libjpeg
    libmemcached
    lynx
    markdown
    memcached
    mercurial
    npm
    pkg-config
    postgresql
    python
    python3
    pypy
    rabbitmq
    rename
    ssh-copy-id
    terminal-notifier
    the_silver_searcher
    tmux
    tree
    vim
    wget
    )

    echo "Installing packages..."
    brew install ${PACKAGES[@]}

    echo "Cleaning up..."
    brew cleanup

    echo "Installing cask..."
    brew install caskroom/cask/brew-cask

    CASKS=(
    colluquy
    dropbox
    firefox
    flux
    google-chrome
    google-drive
    gpgtools
    iterm2
    macvim
    skype
    slack
    spectacle
    vagrant
    virtualbox
    vlc
    )

    echo "Installing cask apps..."
    brew cask install ${CASKS[@]}

    echo "Installing fonts..."
    brew tap caskroom/fonts
    FONTS=(
    font-inconsolidata
    font-roboto
    font-clear-sans
    )
    brew cask install ${FONTS[@]}

    echo "Installing Python packages..."
    PYTHON_PACKAGES=(
    ipython
    virtualenv
    virtualenvwrapper
    )
    sudo pip install ${PYTHON_PACKAGES[@]}

    echo "Installing Ruby gems"
    RUBY_GEMS=(
    bundler
    filewatcher
    cocoapods
    )
    sudo gem install ${RUBY_GEMS[@]}

    echo "Installing global npm packages..."
    npm install marked -g

    echo "Configuring OSX..."

    # Set fast key repeat rate
    defaults write NSGlobalDomain KeyRepeat -int 0

    # Require password as soon as screensaver or sleep mode starts
    defaults write com.apple.screensaver askForPassword -int 1
    defaults write com.apple.screensaver askForPasswordDelay -int 0

    # Show filename extensions by default
    defaults write NSGlobalDomain AppleShowAllExtensions -bool true

    # Enable tap-to-click
    defaults write com.apple.driver.AppleBluetoothMultitouch.trackpad Clicking -bool true
    defaults -currentHost write NSGlobalDomain com.apple.mouse.tapBehavior -int 1

    # Disable "natural" scroll
    defaults write NSGlobalDomain com.apple.swipescrolldirection -bool false

    echo "Creating folder structure..."
    [[ ! -d Wiki ]] && mkdir Wiki
    [[ ! -d Workspace ]] && mkdir Workspace

    echo "Bootstrapping complete"