Skip to content

martimlobao/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Martim's dotfiles

Screenshot of my shell prompt

This repository contains my personal dotfiles, as well as several scripts to install applications and configure settings. Although the bash configuration settings should (mostly) work on any Unix-based system, most of these scripts were only designed to run on macOS and likely won't run at all on any other OS.

Here's a short description of each script in this repository:

  • local.sh interactively configure local settings unique to each machine, like the computer name and your git user details
  • macos.sh configure several macOS settings
  • brew.sh install command-line tools using Homebrew
  • python.sh configure python environment
  • apps.sh install fonts and macOS apps using Homebrew and Mac App Store
  • dock.sh configure macOS dock
  • bootstrap.sh install dotfiles for bash settings and command line layout
  • setup.sh install Homebrew, run all scripts, and install private dotfiles from private repository

Attention: Running these dotfiles blindly will overwrite settings and install apps and fonts that you probably don't need. Some care was taken to not overwrite non-transferable settings (e.g. git user settings), but unless your preferences are identical to mine, you should fork this repository, review the code, and remove things you don't want or need. Use at your own risk!

Installation

Note: If you fork this repository to create your own dotfiles, replace https://git.io/dotinstall with https://github.com/<USER>/<REPO>/tarball/master in the commands below.

Fresh install

To download these dotfiles on a new Mac (without git):

curl -L https://git.io/dotinstall | tar -xz

Then, open the downloaded folder and run setup.sh, bootstrap.sh, or any other script:

cd martim*
./local.sh

One-line everything install

To run everything in a single command:

curl -L https://git.io/dotinstall | tar -xz; cd martim*; ./setup.sh

Warning: This will overwrite settings, any existing dotfiles in your home directory, and install apps and fonts. Don't run this unless you're me or you have my exact preferences!

One-line dotfiles install

To only install dotfiles without needing to install git or run any scripts:

cd; curl -L https://git.io/dotinstall | tar -xzv --strip-components 1 --exclude={*.sh,*.md}

Warning: This will overwrite any existing dotfiles in your home directory.

Terminal-free install!

Go to git.io/dotinstall and open the downloaded file, then double-click on a script to run it.

Usage

Most of these scripts rely on Homebrew, which is installed when running setup.sh. However, if you don't want to install everything in this repository, you can choose to install Homebrew by itself and pick and choose what you like:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Private dotfiles

In addition to this public repository, I also have a private repository where I store other settings that I don't want to be publicly viewable, like my iStat Menus license or my Atom preferences. At the end of the setup.sh script, this private repository is cloned and a run.sh script is called to install these settings.

Of course, nothing else will be installed for you since you don't have access to this repository, but you can create your own private settings repository and add it to setup.sh if you wish.

Add custom commands

If you want to add a few extra commands without creating your own fork or an additional private repository, you can add these to .extra. Since this file is in the .gitignore, any changes will remain local to your machine and will not be committed to a public repository.

If .extra exists, it is sourced in .bash_profile after all other dotfiles, so it can also be used to override settings or functions.

All settings that I do not want to sync are either generated using local.sh or stored in my private dotfiles repository, so I don't have anything in my .extra file. However, an example .extra could look something like this:

# Export Github token and gist ID for Atom sync-settings https://atom.io/packages/sync-settings
export GITHUB_TOKEN=6a10cc207b88888888888888888888887a67e871
export GIST_ID=b302588888888888888888888888c41c

Contributing

Pull requests are welcome. For non-minor changes, consider opening an issue first to discuss what you would like to change.

Note that these are my personal dotfiles, so if you'd like to customize them to your own taste, it might make more sense to fork this repository instead.

Thanks

About

🛠 My dotfiles, optimized for macOS

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages