made user setup modular
This commit is contained in:
		
							parent
							
								
									65621a0e33
								
							
						
					
					
						commit
						9afd352664
					
				
							
								
								
									
										4
									
								
								custompkg/root/etc/skel/Library/.bashrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								custompkg/root/etc/skel/Library/.bashrc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					# do not edit this file. put files in the dir below.
 | 
				
			||||||
 | 
					for FN in $HOME/Library/bashrc.d/*.sh ; do
 | 
				
			||||||
 | 
					    source $FN
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
							
								
								
									
										8
									
								
								custompkg/root/etc/skel/Library/.inputrc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								custompkg/root/etc/skel/Library/.inputrc
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					set show-all-if-ambiguous on
 | 
				
			||||||
 | 
					set completion-ignore-case on
 | 
				
			||||||
 | 
					set completion-prefix-display-length 4
 | 
				
			||||||
 | 
					Control-j: menu-complete
 | 
				
			||||||
 | 
					Control-k: menu-complete-backward
 | 
				
			||||||
 | 
					set show-all-if-unmodified on
 | 
				
			||||||
 | 
					set completion-map-case on
 | 
				
			||||||
 | 
					set horizontal-scroll-mode Off
 | 
				
			||||||
							
								
								
									
										5
									
								
								custompkg/root/etc/skel/Library/.profile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								custompkg/root/etc/skel/Library/.profile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					# do not edit this file. put files in the dir below.
 | 
				
			||||||
 | 
					source ~/.bashrc
 | 
				
			||||||
 | 
					for FN in $HOME/Library/profile.d/*.sh ; do
 | 
				
			||||||
 | 
					    source $FN
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
							
								
								
									
										0
									
								
								custompkg/root/etc/skel/Library/Local/bin/.keep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								custompkg/root/etc/skel/Library/Local/bin/.keep
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					export HOMEBREW_CASK_OPTS="--appdir=$HOME/Applications"
 | 
				
			||||||
@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					export HOMEBREW_NO_ANALYTICS=1
 | 
				
			||||||
@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					export PATH+=":$HOME/Library/Homebrew/bin"
 | 
				
			||||||
 | 
					export PATH+=":$HOME/Library/Homebrew/sbin"
 | 
				
			||||||
							
								
								
									
										2
									
								
								custompkg/root/etc/skel/Library/bashrc.d/100.localbin.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								custompkg/root/etc/skel/Library/bashrc.d/100.localbin.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					export PATH+=":$HOME/Library/Local/bin"
 | 
				
			||||||
 | 
					export PATH+=":$HOME/Library/Local/sbin"
 | 
				
			||||||
@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					if [ -f "$(brew --prefix bash-git-prompt)/share/gitprompt.sh" ]; then
 | 
				
			||||||
 | 
					  GIT_PROMPT_THEME=Default
 | 
				
			||||||
 | 
					  GIT_PROMPT_ONLY_IN_REPO=1
 | 
				
			||||||
 | 
					  source "$(brew --prefix bash-git-prompt)/share/gitprompt.sh"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					export PAGER=vimpager
 | 
				
			||||||
 | 
					export EDITOR=vim
 | 
				
			||||||
 | 
					export VISUAL=$EDITOR
 | 
				
			||||||
 | 
					alias less=vimpager
 | 
				
			||||||
@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					if [ -f $(brew --prefix)/etc/bash_completion ]; then
 | 
				
			||||||
 | 
					    source $(brew --prefix)/etc/bash_completion
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
							
								
								
									
										1
									
								
								custompkg/root/etc/skel/Library/bashrc.d/999.prompt.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								custompkg/root/etc/skel/Library/bashrc.d/999.prompt.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					export PS1='\u@\h:\w\\$ '
 | 
				
			||||||
							
								
								
									
										25
									
								
								custompkg/root/etc/skel/Library/profile.d/900.gpg-agent.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								custompkg/root/etc/skel/Library/profile.d/900.gpg-agent.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					# check for existing running agent info
 | 
				
			||||||
 | 
					if [[ -e $HOME/.gpg-agent-info ]]; then
 | 
				
			||||||
 | 
					    source $HOME/.gpg-agent-info
 | 
				
			||||||
 | 
					    export GPG_AGENT_INFO SSH_AUTH_SOCK SSH_AGENT_PID
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# test existing agent, remove info file if not working
 | 
				
			||||||
 | 
					ssh-add -L 2>/dev/null >/dev/null || rm -f $HOME/.gpg-agent-info
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# if no info file, start up potentially-new, working agent
 | 
				
			||||||
 | 
					if [[ ! -e $HOME/.gpg-agent-info ]]; then
 | 
				
			||||||
 | 
					    gpg-agent \
 | 
				
			||||||
 | 
					        --enable-ssh-support \
 | 
				
			||||||
 | 
					        --daemon \
 | 
				
			||||||
 | 
					        --write-env-file \
 | 
				
			||||||
 | 
					        --use-standard-socket \
 | 
				
			||||||
 | 
					        --pinentry-program $(brew --prefix)/bin/pinentry-mac \
 | 
				
			||||||
 | 
					        2>&1 >/dev/null
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# load up new agent info
 | 
				
			||||||
 | 
					if [[ -e $HOME/.gpg-agent-info ]]; then
 | 
				
			||||||
 | 
					    source $HOME/.gpg-agent-info
 | 
				
			||||||
 | 
					    export GPG_AGENT_INFO SSH_AUTH_SOCK SSH_AGENT_PID
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					############################################# install homebrew under homedir
 | 
				
			||||||
 | 
					if [[ ! -d ~/Library/Homebrew ]]; then
 | 
				
			||||||
 | 
					    mkdir -p ~/Library/Homebrew
 | 
				
			||||||
 | 
					    cd ~/Library/Homebrew
 | 
				
			||||||
 | 
					    curl -fsSL https://github.com/Homebrew/brew/tarball/master | \
 | 
				
			||||||
 | 
					        tar --strip-components 1 -xvf -
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
@ -0,0 +1,68 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					###################################### Configure sane user preference defaults
 | 
				
			||||||
 | 
					# black like my soul
 | 
				
			||||||
 | 
					defaults write NSGlobalDomain AppleInterfaceStyle Dark
 | 
				
			||||||
 | 
					# hide menu bar
 | 
				
			||||||
 | 
					defaults write NSGlobalDomain _HIHideMenuBar -bool true
 | 
				
			||||||
 | 
					# dock on left
 | 
				
			||||||
 | 
					defaults write com.apple.dock orientation left
 | 
				
			||||||
 | 
					# autohide dock
 | 
				
			||||||
 | 
					defaults write com.apple.dock autohide -bool true
 | 
				
			||||||
 | 
					# do not save to icloud drive by default
 | 
				
			||||||
 | 
					defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool FALSE
 | 
				
			||||||
 | 
					# airdrop on all interfaces
 | 
				
			||||||
 | 
					defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool true
 | 
				
			||||||
 | 
					# disable spotlight search spyware ugh thx
 | 
				
			||||||
 | 
					defaults write com.apple.lookup.shared LookupSuggestionsDisabled -int 1
 | 
				
			||||||
 | 
					defaults write com.apple.Safari UniversalSearchEnabled -int 0
 | 
				
			||||||
 | 
					# show battery percentage
 | 
				
			||||||
 | 
					defaults write com.apple.menuextra.battery ShowPercent -bool TRUE
 | 
				
			||||||
 | 
					# ask for password after 5 seconds of screen saver
 | 
				
			||||||
 | 
					defaults write com.apple.screensaver askForPassword -int 1
 | 
				
			||||||
 | 
					defaults write com.apple.screensaver askForPasswordDelay -int 30
 | 
				
			||||||
 | 
					# bottom right corner to lock screen
 | 
				
			||||||
 | 
					defaults write com.apple.dock "wvous-br-corner" -int 5
 | 
				
			||||||
 | 
					defaults write com.apple.dock "wvous-br-modifier" -int 0
 | 
				
			||||||
 | 
					# 10 minute screensaver activation
 | 
				
			||||||
 | 
					defaults write com.apple.screensaver idleTime -int 600
 | 
				
			||||||
 | 
					# terminal utf8 only
 | 
				
			||||||
 | 
					defaults write com.apple.Terminal StringEncodings -array 4
 | 
				
			||||||
 | 
					# close terminal window if shell exited cleanly
 | 
				
			||||||
 | 
					defaults write com.apple.Terminal ShellExitAction 2
 | 
				
			||||||
 | 
					defaults write com.apple.Terminal FontAntialias 1
 | 
				
			||||||
 | 
					defaults write com.apple.Terminal "Default Window Settings" "Pro"
 | 
				
			||||||
 | 
					defaults write com.apple.Terminal "Startup Window Settings" "Pro"
 | 
				
			||||||
 | 
					# new finder windows use ~
 | 
				
			||||||
 | 
					defaults write com.apple.finder NewWindowTarget -string "PfHm"
 | 
				
			||||||
 | 
					# new finder windows show status bar
 | 
				
			||||||
 | 
					defaults write com.apple.finder ShowStatusBar -int 1
 | 
				
			||||||
 | 
					# don't show mounted volumes on desktop
 | 
				
			||||||
 | 
					defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -int 0
 | 
				
			||||||
 | 
					defaults write com.apple.finder ShowRemovableMediaOnDesktop -int 0
 | 
				
			||||||
 | 
					# set textedit to edit plain text by default:
 | 
				
			||||||
 | 
					defaults write com.apple.TextEdit RichText -int 0
 | 
				
			||||||
 | 
					# set airdrop/bluetooth to be discoverable by everyone in range
 | 
				
			||||||
 | 
					defaults write com.apple.sharingd DiscoverableMode Everyone
 | 
				
			||||||
 | 
					# finder show all file extensions
 | 
				
			||||||
 | 
					defaults write NSGlobalDomain AppleShowAllExtensions -bool true
 | 
				
			||||||
 | 
					# set menubar clock to 24h with date and seconds
 | 
				
			||||||
 | 
					defaults write com.apple.menuextra.clock DateFormat -string 'EEE MMM d  H:mm:ss'
 | 
				
			||||||
 | 
					defaults write NSGlobalDomain AppleICUForce24HourTime -bool true
 | 
				
			||||||
 | 
					# set keyboard to be really fucking fast
 | 
				
			||||||
 | 
					# normal minimum is 15 (225 ms)
 | 
				
			||||||
 | 
					defaults write NSGlobalDomain InitialKeyRepeat -int 15
 | 
				
			||||||
 | 
					# normal minimum is 2 (30 ms)
 | 
				
			||||||
 | 
					defaults write NSGlobalDomain KeyRepeat -int 1
 | 
				
			||||||
 | 
					# disable all spelling correction, smart quotes, capitalization, et c:
 | 
				
			||||||
 | 
					# (*important* for code)
 | 
				
			||||||
 | 
					defaults write NSGlobalDomain NSAutomaticCapitalizationEnabled -int 0
 | 
				
			||||||
 | 
					defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -int 0
 | 
				
			||||||
 | 
					defaults write NSGlobalDomain NSAutomaticPeriodSubstitutionEnabled -int 0
 | 
				
			||||||
 | 
					defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -int 0
 | 
				
			||||||
 | 
					defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -int 0
 | 
				
			||||||
 | 
					# safari debug stuff
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
					defaults write NSGlobalDomain WebKitDeveloperExtras -bool true
 | 
				
			||||||
@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# set up paths and whatnot
 | 
				
			||||||
 | 
					source $HOME/.profile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# per default settings apps are installed in homedir
 | 
				
			||||||
 | 
					if [[ ! -d ~/Applications ]]; then
 | 
				
			||||||
 | 
					    mkdir -p ~/Applications
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# install caskroom
 | 
				
			||||||
 | 
					brew tap caskroom/cask
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					CASKS="
 | 
				
			||||||
 | 
						atom
 | 
				
			||||||
 | 
						disk-inventory-x
 | 
				
			||||||
 | 
						github-desktop
 | 
				
			||||||
 | 
						google-chrome
 | 
				
			||||||
 | 
						google-drive
 | 
				
			||||||
 | 
						iterm2
 | 
				
			||||||
 | 
						keepassx
 | 
				
			||||||
 | 
						lastpass
 | 
				
			||||||
 | 
						slack
 | 
				
			||||||
 | 
						spotify
 | 
				
			||||||
 | 
						sublime-text
 | 
				
			||||||
 | 
						xscreensaver
 | 
				
			||||||
 | 
					"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					for CASK in $CASKS ; do
 | 
				
			||||||
 | 
					    brew cask install $CASK
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
@ -0,0 +1,66 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# set up paths and whatnot
 | 
				
			||||||
 | 
					source $HOME/.profile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					HOMEBREW_PKGS="
 | 
				
			||||||
 | 
						autoconf
 | 
				
			||||||
 | 
						automake
 | 
				
			||||||
 | 
						bash-completion
 | 
				
			||||||
 | 
						bash-git-prompt
 | 
				
			||||||
 | 
						bonnie++
 | 
				
			||||||
 | 
						byobu
 | 
				
			||||||
 | 
						cmake
 | 
				
			||||||
 | 
						coreutils
 | 
				
			||||||
 | 
						curl
 | 
				
			||||||
 | 
						daemontools
 | 
				
			||||||
 | 
						docker
 | 
				
			||||||
 | 
						docker-compose
 | 
				
			||||||
 | 
						docker-machine
 | 
				
			||||||
 | 
						duplicity
 | 
				
			||||||
 | 
						ffmpeg
 | 
				
			||||||
 | 
						fish
 | 
				
			||||||
 | 
						flac
 | 
				
			||||||
 | 
						geoip
 | 
				
			||||||
 | 
						ghc
 | 
				
			||||||
 | 
						gist
 | 
				
			||||||
 | 
						git
 | 
				
			||||||
 | 
						gnupg
 | 
				
			||||||
 | 
						gnupg2
 | 
				
			||||||
 | 
						go
 | 
				
			||||||
 | 
						gpg-agent
 | 
				
			||||||
 | 
						homebrew/dupes/rsync
 | 
				
			||||||
 | 
						irssi
 | 
				
			||||||
 | 
						jq
 | 
				
			||||||
 | 
						keybase
 | 
				
			||||||
 | 
						lame
 | 
				
			||||||
 | 
						mobile-shell
 | 
				
			||||||
 | 
						mtr
 | 
				
			||||||
 | 
						mutt
 | 
				
			||||||
 | 
						nmap
 | 
				
			||||||
 | 
						node
 | 
				
			||||||
 | 
						pbzip2
 | 
				
			||||||
 | 
						pinentry-mac
 | 
				
			||||||
 | 
						protobuf
 | 
				
			||||||
 | 
						pv
 | 
				
			||||||
 | 
						pwgen
 | 
				
			||||||
 | 
						python3
 | 
				
			||||||
 | 
						socat
 | 
				
			||||||
 | 
						sox
 | 
				
			||||||
 | 
						speedtest_cli
 | 
				
			||||||
 | 
						syncthing
 | 
				
			||||||
 | 
						tcptraceroute
 | 
				
			||||||
 | 
						terraform
 | 
				
			||||||
 | 
						tor
 | 
				
			||||||
 | 
						torsocks
 | 
				
			||||||
 | 
						unrar
 | 
				
			||||||
 | 
						unzip
 | 
				
			||||||
 | 
						vimpager
 | 
				
			||||||
 | 
						watch
 | 
				
			||||||
 | 
						wget
 | 
				
			||||||
 | 
						whatmask
 | 
				
			||||||
 | 
					"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					for PKG in $HOMEBREW_PKGS ; do
 | 
				
			||||||
 | 
					    brew install $PKG
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					############################################# look for vimrc in google drive
 | 
				
			||||||
 | 
					if [[ ! -d ~/.paths ]]; then
 | 
				
			||||||
 | 
					    mkdir ~/.paths
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					# setup google drive as synceddir in ~/.paths
 | 
				
			||||||
 | 
					if [[ ! -e ~/.paths/synceddir ]]; then
 | 
				
			||||||
 | 
					    ln -s ~/Google\ Drive ~/.paths/synceddir
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
@ -0,0 +1,5 @@
 | 
				
			|||||||
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					# look for vimrc in synceddir/Dotfiles
 | 
				
			||||||
 | 
					if [[ ! -e ~/.vimrc ]]; then
 | 
				
			||||||
 | 
					    ln -s ~/.paths/synceddir/Dotfiles/vimrc ~/.vimrc
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
@ -1,261 +1,10 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
###################################### Configure sane user preference defaults
 | 
					
 | 
				
			||||||
# black like my soul
 | 
					# Copy files from /etc/skel to homedir
 | 
				
			||||||
defaults write NSGlobalDomain AppleInterfaceStyle Dark
 | 
					rsync --no-owner -avP /etc/skel/ $HOME/
 | 
				
			||||||
# hide menu bar
 | 
					
 | 
				
			||||||
defaults write NSGlobalDomain _HIHideMenuBar -bool true
 | 
					# run modular setup scripts
 | 
				
			||||||
# dock on left
 | 
					for FN in $HOME/Library/user-setup/*.sh ; do
 | 
				
			||||||
defaults write com.apple.dock orientation left
 | 
					 | 
				
			||||||
# autohide dock
 | 
					 | 
				
			||||||
defaults write com.apple.dock autohide -bool true
 | 
					 | 
				
			||||||
# do not save to icloud drive by default
 | 
					 | 
				
			||||||
defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool FALSE
 | 
					 | 
				
			||||||
# airdrop on all interfaces
 | 
					 | 
				
			||||||
defaults write com.apple.NetworkBrowser BrowseAllInterfaces -bool true
 | 
					 | 
				
			||||||
# disable spotlight search spyware ugh thx
 | 
					 | 
				
			||||||
defaults write com.apple.lookup.shared LookupSuggestionsDisabled -int 1
 | 
					 | 
				
			||||||
defaults write com.apple.Safari UniversalSearchEnabled -int 0
 | 
					 | 
				
			||||||
# show battery percentage
 | 
					 | 
				
			||||||
defaults write com.apple.menuextra.battery ShowPercent -bool TRUE
 | 
					 | 
				
			||||||
# ask for password after 5 seconds of screen saver
 | 
					 | 
				
			||||||
defaults write com.apple.screensaver askForPassword -int 1
 | 
					 | 
				
			||||||
defaults write com.apple.screensaver askForPasswordDelay -int 30
 | 
					 | 
				
			||||||
# bottom right corner to lock screen
 | 
					 | 
				
			||||||
defaults write com.apple.dock "wvous-br-corner" -int 5
 | 
					 | 
				
			||||||
defaults write com.apple.dock "wvous-br-modifier" -int 0
 | 
					 | 
				
			||||||
# 10 minute screensaver activation
 | 
					 | 
				
			||||||
defaults write com.apple.screensaver idleTime -int 600
 | 
					 | 
				
			||||||
# terminal utf8 only
 | 
					 | 
				
			||||||
defaults write com.apple.Terminal StringEncodings -array 4
 | 
					 | 
				
			||||||
# close terminal window if shell exited cleanly
 | 
					 | 
				
			||||||
defaults write com.apple.Terminal ShellExitAction 2
 | 
					 | 
				
			||||||
defaults write com.apple.Terminal FontAntialias 1
 | 
					 | 
				
			||||||
defaults write com.apple.Terminal "Default Window Settings" "Pro"
 | 
					 | 
				
			||||||
defaults write com.apple.Terminal "Startup Window Settings" "Pro"
 | 
					 | 
				
			||||||
# new finder windows use ~
 | 
					 | 
				
			||||||
defaults write com.apple.finder NewWindowTarget -string "PfHm"
 | 
					 | 
				
			||||||
# new finder windows show status bar
 | 
					 | 
				
			||||||
defaults write com.apple.finder ShowStatusBar -int 1
 | 
					 | 
				
			||||||
# don't show mounted volumes on desktop
 | 
					 | 
				
			||||||
defaults write com.apple.finder ShowExternalHardDrivesOnDesktop -int 0
 | 
					 | 
				
			||||||
defaults write com.apple.finder ShowRemovableMediaOnDesktop -int 0
 | 
					 | 
				
			||||||
# set textedit to edit plain text by default:
 | 
					 | 
				
			||||||
defaults write com.apple.TextEdit RichText -int 0
 | 
					 | 
				
			||||||
# set airdrop/bluetooth to be discoverable by everyone in range
 | 
					 | 
				
			||||||
defaults write com.apple.sharingd DiscoverableMode Everyone
 | 
					 | 
				
			||||||
# finder show all file extensions
 | 
					 | 
				
			||||||
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
 | 
					 | 
				
			||||||
# set menubar clock to 24h with date and seconds
 | 
					 | 
				
			||||||
defaults write com.apple.menuextra.clock DateFormat -string 'EEE MMM d  H:mm:ss'
 | 
					 | 
				
			||||||
defaults write NSGlobalDomain AppleICUForce24HourTime -bool true
 | 
					 | 
				
			||||||
# set keyboard to be really fucking fast
 | 
					 | 
				
			||||||
# normal minimum is 15 (225 ms)
 | 
					 | 
				
			||||||
defaults write NSGlobalDomain InitialKeyRepeat -int 15
 | 
					 | 
				
			||||||
# normal minimum is 2 (30 ms)
 | 
					 | 
				
			||||||
defaults write NSGlobalDomain KeyRepeat -int 1
 | 
					 | 
				
			||||||
# disable all spelling correction, smart quotes, capitalization, et c:
 | 
					 | 
				
			||||||
# (*important* for code)
 | 
					 | 
				
			||||||
defaults write NSGlobalDomain NSAutomaticCapitalizationEnabled -int 0
 | 
					 | 
				
			||||||
defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -int 0
 | 
					 | 
				
			||||||
defaults write NSGlobalDomain NSAutomaticPeriodSubstitutionEnabled -int 0
 | 
					 | 
				
			||||||
defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -int 0
 | 
					 | 
				
			||||||
defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -int 0
 | 
					 | 
				
			||||||
# safari debug stuff
 | 
					 | 
				
			||||||
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
 | 
					 | 
				
			||||||
defaults write NSGlobalDomain WebKitDeveloperExtras -bool true
 | 
					 | 
				
			||||||
######################################################### set default inputrc
 | 
					 | 
				
			||||||
cat > ~/.inputrc <<EOF
 | 
					 | 
				
			||||||
set show-all-if-ambiguous on
 | 
					 | 
				
			||||||
set completion-ignore-case on
 | 
					 | 
				
			||||||
set completion-prefix-display-length 4
 | 
					 | 
				
			||||||
Control-j: menu-complete
 | 
					 | 
				
			||||||
Control-k: menu-complete-backward
 | 
					 | 
				
			||||||
set show-all-if-unmodified on
 | 
					 | 
				
			||||||
set completion-map-case on
 | 
					 | 
				
			||||||
set horizontal-scroll-mode Off
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
############################################## install homebrew under homedir
 | 
					 | 
				
			||||||
if [[ ! -d ~/Library/Homebrew ]]; then
 | 
					 | 
				
			||||||
    mkdir -p ~/Library/Homebrew
 | 
					 | 
				
			||||||
    cd ~/Library/Homebrew
 | 
					 | 
				
			||||||
    curl -fsSL https://github.com/Homebrew/brew/tarball/master | \
 | 
					 | 
				
			||||||
        tar --strip-components 1 -xvf -
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
######################################## setup modular bashrc.d and profile.d
 | 
					 | 
				
			||||||
cat > ~/.bashrc <<'EOF'
 | 
					 | 
				
			||||||
# do not edit this file. put files in the dir below.
 | 
					 | 
				
			||||||
for FN in $HOME/Library/bashrc.d/*.sh ; do
 | 
					 | 
				
			||||||
    source $FN
 | 
					    source $FN
 | 
				
			||||||
 | 
					    rm $FN
 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
mkdir -p ~/Library/bashrc.d
 | 
					 | 
				
			||||||
touch ~/Library/bashrc.d/keep.sh
 | 
					 | 
				
			||||||
cat > ~/.profile <<'EOF'
 | 
					 | 
				
			||||||
# do not edit this file. put files in the dir below.
 | 
					 | 
				
			||||||
source ~/.bashrc
 | 
					 | 
				
			||||||
for FN in $HOME/Library/profile.d/*.sh ; do
 | 
					 | 
				
			||||||
    source $FN
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
mkdir -p ~/Library/profile.d
 | 
					 | 
				
			||||||
touch ~/Library/profile.d/keep.sh
 | 
					 | 
				
			||||||
####################################################### install homebrew path
 | 
					 | 
				
			||||||
cat > ~/Library/bashrc.d/100homebrew.sh <<'EOF'
 | 
					 | 
				
			||||||
export PATH+=":$HOME/Library/Homebrew/bin"
 | 
					 | 
				
			||||||
export PATH+=":$HOME/Library/Homebrew/sbin"
 | 
					 | 
				
			||||||
export HOMEBREW_NO_ANALYTICS=1
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
####################################### Set caskroom to install under homedir
 | 
					 | 
				
			||||||
cat > ~/Library/bashrc.d/100homebrewcaskdir.sh <<'EOF'
 | 
					 | 
				
			||||||
export HOMEBREW_CASK_OPTS="--appdir=$HOME/Applications"
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
##################################################################### set PS1
 | 
					 | 
				
			||||||
cat > ~/Library/bashrc.d/000.ps1.sh <<'EOF'
 | 
					 | 
				
			||||||
export PS1='\u@\h:\w\\$ '
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
############################################################ enable git prompt
 | 
					 | 
				
			||||||
cat > ~/Library/bashrc.d/200.git-prompt.sh <<'EOF'
 | 
					 | 
				
			||||||
if [ -f "$(brew --prefix bash-git-prompt)/share/gitprompt.sh" ]; then
 | 
					 | 
				
			||||||
  GIT_PROMPT_THEME=Default
 | 
					 | 
				
			||||||
  GIT_PROMPT_ONLY_IN_REPO=1
 | 
					 | 
				
			||||||
  source "$(brew --prefix bash-git-prompt)/share/gitprompt.sh"
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
########################################## enable bash completion in homebrew
 | 
					 | 
				
			||||||
cat > ~/Library/bashrc.d/900.homebrew-completion.sh <<'EOF'
 | 
					 | 
				
			||||||
if [ -f $(brew --prefix)/etc/bash_completion ]; then
 | 
					 | 
				
			||||||
    . $(brew --prefix)/etc/bash_completion
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
#################################################### set sane env preferences
 | 
					 | 
				
			||||||
cat > ~/Library/bashrc.d/400.environment.sh <<'EOF'
 | 
					 | 
				
			||||||
export PAGER=vimpager
 | 
					 | 
				
			||||||
export EDITOR=vim
 | 
					 | 
				
			||||||
export VISUAL=$EDITOR
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
###################################################### set up helpful aliases
 | 
					 | 
				
			||||||
cat > ~/Library/bashrc.d/500.aliases.sh <<'EOF'
 | 
					 | 
				
			||||||
alias less=vimpager
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
################################################################### GPG Agent
 | 
					 | 
				
			||||||
cat > ~/Library/profile.d/900.gpg-agent.sh <<'EOF'
 | 
					 | 
				
			||||||
# check for existing running agent info
 | 
					 | 
				
			||||||
if [[ -e $HOME/.gpg-agent-info ]]; then
 | 
					 | 
				
			||||||
    source $HOME/.gpg-agent-info
 | 
					 | 
				
			||||||
    export GPG_AGENT_INFO SSH_AUTH_SOCK SSH_AGENT_PID
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# test existing agent, remove info file if not working
 | 
					 | 
				
			||||||
ssh-add -L 2>/dev/null >/dev/null || rm -f $HOME/.gpg-agent-info
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# if no info file, start up potentially-new, working agent
 | 
					 | 
				
			||||||
if [[ ! -e $HOME/.gpg-agent-info ]]; then
 | 
					 | 
				
			||||||
    gpg-agent \
 | 
					 | 
				
			||||||
        --enable-ssh-support \
 | 
					 | 
				
			||||||
        --daemon \
 | 
					 | 
				
			||||||
        --write-env-file \
 | 
					 | 
				
			||||||
        --use-standard-socket \
 | 
					 | 
				
			||||||
        --pinentry-program $(brew --prefix)/bin/pinentry-mac \
 | 
					 | 
				
			||||||
        2>&1 >/dev/null
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# load up new agent info
 | 
					 | 
				
			||||||
if [[ -e $HOME/.gpg-agent-info ]]; then
 | 
					 | 
				
			||||||
    source $HOME/.gpg-agent-info
 | 
					 | 
				
			||||||
    export GPG_AGENT_INFO SSH_AUTH_SOCK SSH_AGENT_PID
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
EOF
 | 
					 | 
				
			||||||
#############################################################################
 | 
					 | 
				
			||||||
### load up profile scripts / paths for the rest of this configuration script
 | 
					 | 
				
			||||||
source ~/.profile
 | 
					 | 
				
			||||||
####################################################### install caskroom apps
 | 
					 | 
				
			||||||
if [[ ! -d ~/Applications ]]; then
 | 
					 | 
				
			||||||
    mkdir -p ~/Applications
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
brew tap caskroom/cask
 | 
					 | 
				
			||||||
CASKS="
 | 
					 | 
				
			||||||
	atom
 | 
					 | 
				
			||||||
	disk-inventory-x
 | 
					 | 
				
			||||||
	github-desktop
 | 
					 | 
				
			||||||
	google-chrome
 | 
					 | 
				
			||||||
	google-drive
 | 
					 | 
				
			||||||
	iterm2
 | 
					 | 
				
			||||||
	keepassx
 | 
					 | 
				
			||||||
	lastpass
 | 
					 | 
				
			||||||
	slack
 | 
					 | 
				
			||||||
	spotify
 | 
					 | 
				
			||||||
	sublime-text
 | 
					 | 
				
			||||||
	xscreensaver
 | 
					 | 
				
			||||||
"
 | 
					 | 
				
			||||||
for CASK in $CASKS ; do
 | 
					 | 
				
			||||||
    brew cask install $CASK
 | 
					 | 
				
			||||||
done	
 | 
					 | 
				
			||||||
#################################################### install homebrew packages
 | 
					 | 
				
			||||||
HOMEBREW_PKGS="
 | 
					 | 
				
			||||||
	autoconf
 | 
					 | 
				
			||||||
	automake
 | 
					 | 
				
			||||||
	bash-completion
 | 
					 | 
				
			||||||
	bash-git-prompt
 | 
					 | 
				
			||||||
	bonnie++
 | 
					 | 
				
			||||||
	byobu
 | 
					 | 
				
			||||||
	cmake
 | 
					 | 
				
			||||||
	coreutils
 | 
					 | 
				
			||||||
	curl
 | 
					 | 
				
			||||||
	daemontools
 | 
					 | 
				
			||||||
	docker
 | 
					 | 
				
			||||||
	docker-compose
 | 
					 | 
				
			||||||
	docker-machine
 | 
					 | 
				
			||||||
	duplicity
 | 
					 | 
				
			||||||
	ffmpeg
 | 
					 | 
				
			||||||
	fish
 | 
					 | 
				
			||||||
	flac
 | 
					 | 
				
			||||||
	geoip
 | 
					 | 
				
			||||||
	ghc
 | 
					 | 
				
			||||||
	gist
 | 
					 | 
				
			||||||
	git
 | 
					 | 
				
			||||||
	gnupg
 | 
					 | 
				
			||||||
	gnupg2
 | 
					 | 
				
			||||||
	go
 | 
					 | 
				
			||||||
	gpg-agent
 | 
					 | 
				
			||||||
	homebrew/dupes/rsync
 | 
					 | 
				
			||||||
	irssi
 | 
					 | 
				
			||||||
	jq
 | 
					 | 
				
			||||||
	keybase
 | 
					 | 
				
			||||||
	lame
 | 
					 | 
				
			||||||
	mobile-shell
 | 
					 | 
				
			||||||
	mtr
 | 
					 | 
				
			||||||
	mutt
 | 
					 | 
				
			||||||
	nmap
 | 
					 | 
				
			||||||
	node
 | 
					 | 
				
			||||||
	pbzip2
 | 
					 | 
				
			||||||
	pinentry-mac
 | 
					 | 
				
			||||||
	protobuf
 | 
					 | 
				
			||||||
	pv
 | 
					 | 
				
			||||||
	pwgen
 | 
					 | 
				
			||||||
	python3
 | 
					 | 
				
			||||||
	socat
 | 
					 | 
				
			||||||
	sox
 | 
					 | 
				
			||||||
	speedtest_cli
 | 
					 | 
				
			||||||
	syncthing
 | 
					 | 
				
			||||||
	tcptraceroute
 | 
					 | 
				
			||||||
	terraform
 | 
					 | 
				
			||||||
	tor
 | 
					 | 
				
			||||||
	torsocks
 | 
					 | 
				
			||||||
	unrar
 | 
					 | 
				
			||||||
	unzip
 | 
					 | 
				
			||||||
	vimpager
 | 
					 | 
				
			||||||
	watch
 | 
					 | 
				
			||||||
	wget
 | 
					 | 
				
			||||||
	whatmask
 | 
					 | 
				
			||||||
"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
for PKG in $HOMEBREW_PKGS ; do
 | 
					 | 
				
			||||||
    brew install $PKG
 | 
					 | 
				
			||||||
done
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
############################################# look for vimrc in google drive
 | 
					 | 
				
			||||||
ln -s ~/Google\ Drive/Dotfiles/vimrc ~/.vimrc
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
				
			|||||||
@ -5,3 +5,5 @@ touch "$3"/var/db/.AppleDiagnosticsSetupDone
 | 
				
			|||||||
touch "$3"/var/db/.AppleSetupDone
 | 
					touch "$3"/var/db/.AppleSetupDone
 | 
				
			||||||
 | 
					
 | 
				
			||||||
chmod a+rx "$3"/usr/local/bin/*
 | 
					chmod a+rx "$3"/usr/local/bin/*
 | 
				
			||||||
 | 
					chmod -R a+r "$3"/etc/skel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user