Sunpech's Dotfiles
My dotfiles to be installed on any new Mac/Ubuntu machine I set up-- although mostly geared for Mac. Always a work in progress.
The idea behind how this project is currently structured is to keep everything in the .dotfiles/ folder in the user's home directory. Then to only create a single symbolic link for .bash_profile.
Requirements
You should have necessary apps installed already. Applications such as Git, Rails, Mongodb, Postgres, Android SDK, mySQL, etc. This repo does not install all that for you. The PATH is set in the .bash_profile file.
Installation
Run the following, line by line.
git clone git@github.com:sunpech/dotfiles.git
mv dotfiles ~/.dotfiles
cd ~/.dotfiles
chmod u+x install.sh
./install.sh
From here make custom changes depending on what kind of dev-box you need.
Shells
- iTerm2 - Terminal emulator.
- iTerm2 color schemes
Fish
- Fish Shell - A smart and user-friendly command line
- oh-my-fish
ZSH
- Z Shell (MacOS Catalina default)
- oh-my-zsh
- powerlevel10k theme
Be sure to read this. In short, run:
git submodule update
Apps
Apps paths used in dotfiles
- rbenv - For managing rubies.
- Postgres.app - Postgres for Mac.
- Android SDK
- homebrew - Mac package manager.
- git-completion - Already included in this project.
- heroku toolbelt
- Interfacelift Downloader - Also see my fork for improvements
- .Net Core
- Running VS Code on OS X - Adding command code to PATH-- to open Visual Studio Code from command line.
- Google Cloud Platform
Save Android and Google Cloud SDKS to folder Development
.
Brew Installs
Packages to install with Homebrew.
brew install git bash node openssl rbenv ruby-build wget vim macvim tig rename archey ssh-copy-id rename toilet figlet tree imagemagick@6 glances fish go hugo jekyll
Recommended Apps
- Atom.io - Text editor. shell for macOS, Linux, and the rest of the family.
- Sublime Text - Text editor. Also see my sublime-text-settings repo.
- Visual Studio Code - A Code editor.
I also have a more up to date repo, Best Software List.
Setup Git
I like to use DiffMerge for merging files.
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd 'diffmerge "$LOCAL" "$REMOTE"'
git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.cmd 'diffmerge --merge --result="$MERGED" "$LOCAL" "$(if test -f "$BASE"; then echo "$BASE"; else echo "$LOCAL"; fi)" "$REMOTE"'
git config --global mergetool.diffmerge.trustExitCode true