See https://github.com/STiXzoOR/dotfiles instead.
I will update your MacOS machine with Betterā¢ system defaults, preferences, software configuration and even auto-install some handy development tools and apps that my developer friends find helpful.
You don't need to install or configure anything upfront! This works with a brand-new machine from the factory as well as an existing machine that you've been working with for years.
- \[._.]/ - Hi, I'm the MacOS bot
- Forget About Manual Configuration!
- Watch me run!
- Installation
- Additional
- Settings
- Prompt Driven Configuration
- Security
- General UI/UX
- Trackpad, mouse, keyboard, Bluetooth accessories, and input
- Energy saving
- Screen
- Finder
- Dock & Dashboard
- Hot corners
- Safari & WebKit
- Spotlight
- Time Machine
- Activity Monitor
- Address Book, Dashboard, iCal, TextEdit, and Disk Utility
- Mac App Store
- Photos
- Messages
- Transmission
- Xcode
- Tweetbot
- VLC
- Spotify
- Karabiner Elements
- Visual Studio Code
- Arduino IDE
- ColorLS
- Terminal & iTerm2
- Software Installation
- License
- Contributions
- Loathing, Mehs and Praise
- ĀÆ\(ć)/ĀÆ Warning / Liability
Don't you hate getting a new laptop or joining a new team and then spending a whole day setting up your system preferences and tools? Me too. That's why we automate; we did it once and we don't want to do have to do it again.
\[^_^]/ - This started as Adam Eivy's MacOS shell configuration dotfiles but has grown to a multi-developer platform for machine configuration.
When I finish with your machine, you will be able to look at your command-line in full-screen mode like this (running iTerm):
Check out how your shell prompt includes the full path, node.js version & the working git branch along with a lot of other info!
We use powerlevel9k for command prompt, so customization of what you want is easily changable in ./.zpowerlevel9k_config
The top terminal is using vim as a full replacement IDE.
The bottom left two are git terminals.
The bottom right is running vtop
To launch fullscreen, hit Command + Enter
in iTerm, then use Command + d
and Command + D
to create split panes.
\[._.]/ - I'm so excited I just binaried in my pants!
Note: I recommend forking this repo in case you don't like anything I do and want to set your own preferences (and pull request them!)
REVIEW WHAT THIS SCRIPT DOES PRIOR TO RUNNING: install.sh
It's always a good idea to review arbitrary code from the internet before running it on your machine with sudo power! You are responsible for everything this script does to your machine (see LICENSE)
$ git clone --recurse-submodules https://github.com/STiXzoOR/dotfiles ~/.dotfiles
$ cd ~/.dotfiles;
# run this using terminal (not iTerm, last iTerm settings get discarded on exit)
$ ./install.sh
Note: running install.sh is idempotent. You can run it again and again as you add new features or software to the scripts! I'll regularly add new configurations so keep an eye on this repo as it grows and optimizes.
If you have existing dotfiles for configuring git, zsh, vim, etc, these will be backed-up into ~/.dotfiles_backup/$(date +"%Y.%m.%d.%H.%M.%S")
and replaced with the files from this project. You can restore your original dotfiles by using ./restore.sh $RESTOREDATE
where $RESTOREDATE
is the date folder name you want to restore.
The restore script does not currently restore system settings--only your original dotfiles. To restore system settings, you'll need to manually undo what you don't like (so don't forget to fork, review, tweak)
I am using vim
as my IDE. I use Vundle to manage vim plugins (instead of pathogen). Vundle is better in many ways and is compatible with pathogen plugins. Additionally, vundle will manage and install its own plugins so we don't have to use git submodules for all of them.
This project changes a number of settings and configures software on MacOS. Here is the current list:
The following will only happen if you agree on the prompt
- overwrite your /etc/hosts file with a copy from someonewhocares.org (see ./configs/hosts for the file that will be used)
- update github configuration
- replace the system wallpaper with
img/wallpaper.heic
- link dotfiles
- install vim plugins/themes
- install fonts
- change system configuration
- Enable install from Anywhere
- Disable remote apple events
- Disable remote login
- Disable wake-on modem
- Disable wake-on LAN
- Disable guest account login
- Set computer name (as done via System Preferences ā Sharing)
- Disable the sound effects on boot
- Set highlight color to steel blue
- Set sidebar icon size to medium
- Always show scrollbars
- Disable the over-the-top focus ring animation
- Adjust toolbar title rollover delay
- Increase window resize speed for Cocoa applications
- Expand save panel by default
- Expand print panel by default
- Save to disk (not to iCloud) by default
- Automatically quit printer app once the print jobs complete
- Disable the āAre you sure you want to open this application?ā dialog
- Remove duplicates in the āOpen Withā menu (also see 'lscleanup' alias)
- Display ASCII control characters using caret notation in standard text views
- Disable Resume system-wide
- Disable automatic termination of inactive apps
- Set Help Viewer windows to non-floating mode
- Reveal IP, hostname, OS, etc. when clicking clock in login window
- Disable automatic capitalization as itās annoying when typing code
- Disable smart dashes as theyāre annoying when typing code
- Disable automatic period substitution as itās annoying when typing code
- Disable smart quotes as theyāre annoying when typing code
- Disable auto-correct
- Increase sound quality for Bluetooth headphones/headsets
- Enable full keyboard access for all controls (e.g. enable Tab in modal dialogs)
- Disable press-and-hold for keys in favor of key repeat
- Set a blazingly fast keyboard repeat rate
- Set language and text formats (english/GR)
- Show language menu in the top right corner of the boot screen
- Set timezone to Europe/Athens;
- Disable lid wakeup
- Disable auto power off
- Disable auto restart on power loss
- Disable machine sleep
- Sleep the display after 60 minutes
- Disable standby mode
- Set standby delay to 24 hours (default is 1 hour)
- Disable wake from iPhone/Watch (eg. When iPhone or Apple Watch come near)
- Disable periodically wake of machine for network and updates
- Restart automatically if the computer freezes
- Disable hibernation (speeds up entering sleep mode)
- Remove the sleep image file to save disk space
- Create a zero-byte file insteadā¦
- ā¦and make sure it canāt be rewritten
- Require password immediately after sleep or screen saver begins
- Save screenshots to the desktop
- Save screenshots in PNG format (other options: BMP, GIF, JPG, PDF, TIFF)
- Disable shadow in screenshots
- Enable subpixel font rendering on non-Apple LCDs
- Enable HiDPI display modes (requires restart)
- Allow quitting via ā + Q; doing so will also hide desktop icons
- Disable window animations and Get Info animations
- Set Desktop as the default location for new Finder windows
- Show icons for hard drives, servers, and removable media on the desktop
- Show hidden files by default
- Show all filename extensions
- Show status bar
- Show path bar
- Keep folders on top when sorting by name
- When performing a search, search the current folder by default
- Disable the warning when changing a file extension
- Enable spring loading for directories
- Remove the spring loading delay for directories
- Avoid creating .DS_Store files on network or USB volumes
- Disable disk image verification
- Automatically open a new Finder window when a volume is mounted
- Show item info near icons on the desktop and in other icon views
- Show item info to the right of the icons on the desktop
- Enable snap-to-grid for icons on the desktop and in other icon views
- Increase grid spacing for icons on the desktop and in other icon views
- Increase the size of icons on the desktop and in other icon views
- Use column list view in all Finder windows by default
- Use sort by Application in all Finder windows by default
- Disable the warning before emptying the Trash
- Empty Trash securely by default
- Show the ~/Library folder
- Show the /Volumes folder
- Expand the following File Info panes: āGeneralā, āOpen withā, and āSharing & Permissionsā
- Set the icon size of Dock items to 36 pixels
- Change minimize/maximize window effect to scale
- Enable magnification
- Minimize windows into their applicationās icon
- Enable spring loading for all Dock items
- Show indicator lights for open applications in the Dock
- Speed up Mission Control animations
- Remove the auto-hiding Dock delay
- Make Dock icons of hidden applications translucent
- Reset Launchpad, but keep the desktop wallpaper intact
- Add iOS & Watch Simulator to Launchpad
- Top left screen corner ā Mission Control
- Top right screen corner ā Desktop
- Bottom left screen corner ā Start screen saver
- Donāt send search queries to Apple
- Press Tab to highlight each item on a web page
- Show the full URL in the address bar (note: this still hides the scheme)
- Set Safariās home page to āabout:blankā for faster loading
- Prevent Safari from opening āsafeā files automatically after downloading
- Allow hitting the Backspace key to go to the previous page in history
- Hide Safariās bookmarks bar by default
- Hide Safariās sidebar in Top Sites
- Disable Safariās thumbnail cache for History and Top Sites
- Enable Safariās debug menu
- Make Safariās search banners default to Contains instead of Starts With
- Remove useless icons from Safariās bookmarks bar
- Enable the Develop menu and the Web Inspector in Safari
- Add a context menu item for showing the Web Inspector in web views
- Enable continuous spellchecking
- Disable auto-correct
- Disable AutoFill
- Warn about fraudulent websites
- Disable plug-ins
- Disable Java
- Block pop-up windows
- Enable Do Not Track
- Update extensions automatically
- Disable send and reply animations in Mail.app
- Copy email addresses as 'foo@example.com' instead of 'Foo Bar foo@example.com' in Mail.app
- Add the keyboard shortcut ā + Enter to send an email in Mail.app
- Display emails in threaded mode, sorted by date (oldest at the top)
- Disable inline attachments (just show the icons)
- Disable automatic spell checking
- Change indexing order and disable some file types from being indexed
- Load new settings before rebuilding the index
- Make sure indexing is enabled for the main volume
- Rebuild the index from scratch
- Prevent Time Machine from prompting to use new hard drives as backup volume
- Disable local Time Machine backups
- Show the main window when launching Activity Monitor
- Visualize CPU usage in the Activity Monitor Dock icon
- Show all processes in Activity Monitor
- Sort Activity Monitor results by CPU usage
- Set columns for each tab
- Sort columns in each tab
- Update refresh frequency (in seconds)
- Show Data in the Disk graph (instead of IO)
- Show Data in the Network graph (instead of packets)
- Change Dock Icon
- Enable the debug menu in Address Book
- Enable Dashboard dev mode (allows keeping widgets on the desktop)
- Use plain text mode for new TextEdit documents
- Open and save files as UTF-8 in TextEdit
- Enable the debug menu in Disk Utility
- Auto-play videos when opened with QuickTime Player
- Enable the WebKit Developer Tools in the Mac App Store
- Enable Debug Menu in the Mac App Store
- Enable the automatic update check
- Check for software updates daily, not just once per week
- Automatically download apps purchased on other Macs
- Turn on app auto-update
- Prevent Photos from opening automatically when devices are plugged in
- Disable automatic emoji substitution (i.e. use plain text smileys)
- Disable smart quotes as itās annoying for messages that contain code
- Disable continuous spell checking
- Disable the all too sensitive backswipe on trackpads
- Disable the all too sensitive backswipe on Magic Mouse
- Use the system-native print preview dialog
- Expand the print dialog by default
- Use ~/Documents/Torrents to store incomplete downloads
- Use ~/Downloads to store completed downloads
- Donāt prompt for confirmation before downloading
- Donāt prompt for confirmation before removing non-downloading active transfers
- Trash original torrent files
- Enabling queue
- Setting queue maximum downloads
- Hide the donate message
- Hide the legal disclaimer
- Setting IP block list
- Randomize port on launch
- Create xcode custom theme folder
- Install dracula theme
- Install nord theme
- Change theme to nord
- Trim trailing whitespace
- Trim whitespace only lines
- Show line numbers
- Reduce the number of compile tasks and stop indexing
- Show all devices and their information you have plugged in before
- Show ruler at 80 chars
- Map āāL to show last change for the current line
- Show build time
- Improve performance
- Improve performance by leveraging multi-core CPU
- Delete these settings
- Disable smart quotes as itās annoying for code tweets
- Show the app window when clicking the menu bar icon
- Enable the hidden āDevelopā menu
- Open links in the background
- Allow closing the ānew tweetā window by pressing $(Esc)
- Show full names rather than Twitter handles
- Hide the app in the background if itās not the front-most window
- Bypass the annoyingly slow t.co URL shortener
- Install settings
- Install spotifyd settings
- Install spicetify settings
- Install spicetify themes
- Change theme to nord
- Install settings
- Install extensions
- Install settings
- Change theme to dracula
- Install dracula colors
- Only use UTF-8 in Terminal.app
- Install dracula theme in Terminal.app
- Install nord theme in Terminal.app
- Use nord theme by default in Terminal.app
- Enable āfocus follows mouseā for Terminal.app and all X11 apps
- Tell iTerm2 to use the custom preferences in the directory
- Specify the preferences directory
- Install dracula theme for iTerm (opening file)
- Install nord theme for iTerm (opening file)
homebrew, fontconfig, git, ruby (latest), nvm (node + npm), and zsh (latest) are all installed inside the install.sh
as foundational software for running this project.
Additional software is configured in config.js
and can be customized in your own fork/branch (you can change everything in your own fork/brance).
The following is the software that I have set as default:
- Ack
- Ag
- Bat
- Coreutils
- Delta
- Dos2Unix
- Dpkg
- Exa
- Findutils
- Fortune
- Fselect
- Fzf
- Gawk
- Gifsicle
- Gnupg
- Gnu Sed
- Grep
- Homebrew/Dupes/Grep
- Httpie
- Jq
- Mas
- Mongodb Community
- Moreutils
- Mysql
- Ncurses
- Neofetch
- Nmap
- Node
- Openconnect
- Python
- Python Tk
- Readline
- Reattach To User Namespace
- Srkomodo/Tap/Shadowfox Updater
- Homebrew/Dupes/Screen
- Spicetify Cli
- Spotify Tui
- Spotifyd
- Svn
- Tldr
- Tmux
- Todo Txt
- Tree
- Ttyrec
- Vim
- Watch
- Wget
- Youtube Dl
- Adobe Creative Cloud
- Aerial
- Altserver
- Android File Transfer
- Android Platform Tools
- Android Studio
- Arduino
- Autodesk Fusion360
- Balenaetcher
- Barrier
- Brave Browser
- Caprine
- Checkra1N
- Coconutbattery
- Darwindumper
- Discord
- Electorrent
- Figma
- Firefox
- Flux
- Fritzing
- Github
- Google Backup And Sync
- Google Chrome
- Hackintool
- Iina
- Intel Power Gadget
- Iterm2
- Java
- Karabiner Elements
- Keka
- Macupdater
- Mamp
- Mongodb Compass
- Monitorcontrol
- Mos
- Mysqlworkbench
- Open In Code
- Sketchup
- Spotify
- Surfshark
- Teamviewer
- Telegram
- Transmission
- Tunnelblick
- Ukelele
- Ultimaker Cura
- Virtualbox
- Virtualbox Extension Pack
- Visual Studio Code
- Vlc
- Microsoft Remote Desktop
- Paste
- Trello
- Magnet
- LastPass
- Spark
- Messenger
- Emby
- Antic
- Buzzphrase
- Eslint
- Instant Markdown D
- Gulp Cli
- Npm Check Updates
- Prettier
- Prettyjson
- Trash
- Vtop
- Webtorrent Cli
This project is licensed under ISC. Please fork, contribute and share.
Contributions are always welcome in the form of pull requests with explanatory comments.
Please refer to the Contributor Covenant
- Loathing should be directed into pull requests that make it better. woot.
- Bugs with the setup should be put as GitHub issues.
- Mehs should be > /dev/null
- Praise should be directed to
Warning: The creator of this repo is not responsible if your machine ends up in a state you are not happy with. If you are concerned, look at the code to review everything this will do to your machine :)