GithubHelp home page GithubHelp logo

voiski / dotfiles Goto Github PK

View Code? Open in Web Editor NEW

This project forked from driesvints/dotfiles

1.0 2.0 1.0 627 KB

:computer: My base mac configs

License: MIT License

Shell 90.82% Ruby 5.20% PowerShell 3.99%

dotfiles's Introduction

Voiski's Dotfiles

This is a fork of original driesvints/dotfiles that helped me to keep my mac config backup.

I'm religious keeping all my environment changes in this repo. To help on that, I'm also using symbolic links to keep some tool config files inside this repository. I'm not running it every time to validate those changes. I may have issues if I so, but it will be at least the better reference to recover my preferences in a new environment.

A quick legend here since I'm keeping the original Dries' readme content:

  • ๐Ÿ” Original Dries' sections
  • ๐Ÿ†• Mine contribution

What Is This? ๐Ÿ”

This repository serves as my way to help me setup and maintain my Mac. It takes the effort out of installing everything manually. Everything which is needed to install my preffered setup of macOS is detailed in this readme. Feel free to explore, learn and copy parts for your own dotfiles. Enjoy! ๐Ÿ˜„

Read the blog post: https://medium.com/@driesvints/getting-started-with-dotfiles-76bf046d035c

A Fresh macOS Setup

Before you re-install ๐Ÿ”

First, go through the checklist below to make sure you didn't forget anything before you wipe your hard drive.

  • Did you commit and push any changes/branches to your git repositories?
  • Did you remember to save all important documents from non-iCloud directories?
  • Did you save all of your work from apps which aren't synced through iCloud?
  • Did you remember to export important data from your local database?
  • Did you update mackup to the latest version and ran mackup backup?

Installing macOS cleanly ๐Ÿ”

After going to our checklist above and making sure you backed everything up, we're going to cleanly install macOS with the latest release. Follow this article to cleanly install the latest macOS.

Setting up your Mac ๐Ÿ”

If you did all of the above you may now follow these install instructions to setup a new Mac.

  1. Update macOS to the latest version with the App Store
  2. Install Xcode from the App Store, open it and accept the license agreement
  3. Install macOS Command Line Tools by running xcode-select --install
  4. Copy your public and private SSH keys to ~/.ssh and make sure they're set to 600
  5. Clone this repo to ~/.dotfiles
  6. Append /usr/local/bin/zsh to the end of your /etc/shells file
  7. Run install.sh to start the installation
  8. Restore preferences by running mackup restore
  9. Restart your computer to finalize the process

Your Mac is now ready to use!

Note: you can use a different location than ~/.dotfiles if you want. Just make sure you also update the reference in the .zshrc file.

Your Own Dotfiles ๐Ÿ”

If you want to start with your own dotfiles from this setup, it's pretty easy to do so. First of all you'll need to fork this repo. After that you can tweak it the way you want.

Go through the .macos file and adjust the settings to your liking. You can find much more settings at the original script by Mathias Bynens and Kevin Suttle's macOS Defaults project.

Check out the Brewfile file and adjust the apps you want to install for your machine. Use their search page to check if the app you want to install is available.

Check out the aliases.zsh file and add your own aliases. If you need to tweak your $PATH check out the path.zsh file. These files get loaded in because the $ZSH_CUSTOM setting points to the .dotfiles directory. You can adjust the .zshrc file to your liking to tweak your oh-my-zsh setup. More info about how to customize oh-my-zsh can be found here.

When installing these dotfiles for the first time you'll need to backup all of your settings with Mackup. Install and backup your settings with the command below. Your settings will be synced to iCloud so you can use them to sync between computers and reinstall them when reinstalling your Mac. If you want to save your settings to a different directory or different storage than iCloud, checkout the documentation.

brew install mackup
mackup backup

You can tweak the shell theme, the Oh My Zsh settings and much more. Go through the files in this repo and tweak everything to your liking.

Enjoy your own Dotfiles!

Confidential dotfiles ๐Ÿ†•

Some information cannot be published to all eyes. I found an easy way to solve it with git submodules. It is straightforward, you need to configure a submodule link to a private repo of your choice( gitlab.com, bitbucket.org, github.com ). You can then put all individual files and then connect with the related resources.

Here is a example how the dotfilesconfidential will looks like: https://github.com/voiski/dotfilesconfidential

First, we need to tie it together.

# if already configured
git clone --recurse-submodules [email protected]:voiski/dotfiles.git ~/.dotfile

# if you wanna configured it first time
git clone [email protected]:voiski/dotfiles.git ~/.dotfile
cd ~/.dotfile
git submodule add [email protected]:voiski/dotfilesconfidential.git dotfilesconfidential
git commit -m 'Adding confidential module'
git push

Now, start with git config adding some custom attributes inside your private repo. Then, you need to link it inside the .gitconfig:

[include]
	path = ~/.dotfiles/dotfilesconfidential/.gitconfig

# You can limit it to your work folder
[includeIf "gitdir:~/private_work/"]
	path = ~/.dotfiles/dotfilesconfidential/.gitconfig-user

The same for bash scripts. In this example we are tieing inside the .zshrc:

if [[ -s "$HOME/.dotfiles/dotfilesconfidential/aliases.zsh" ]]; then
  source $HOME/.dotfiles/dotfilesconfidential/aliases.zsh
fi

GpG

You can also define different gpg keys to sign your commits, so it will confirm your changes come from your computer.

Thanks To... ๐Ÿ†•

I could keep the original text here that is better than mine, but it is personal. I will make it simple, so I may thanks first driesvints/dotfiles again with the awesome simple config struct. I can't let it without thanks my good friend Paulo Machado that pushed me to this awesome dotfiles world.

I also like to keep the references, so here we go:

dotfiles's People

Contributors

blueclock avatar driesvints avatar rathesdot avatar ryanhanwu avatar voiski avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

diegofduarte

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.