💻 macOS / Ubuntu dotfiles
Branch: master
Clone or download
Pull request Compare This branch is 115 commits ahead, 64 commits behind alrra:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Fred’s dotfiles Build Status

These are the base dotfiles that I start with when I set up a new environment. For more specific local needs I use the .local files described in the Local Settings section.


To set up the dotfiles just run the appropriate snippet in the terminal:

(⚠️ DO NOT run the setup snippet if you don't fully understand what it does. Seriously, DON'T!)

OS Snippet
macOS bash -c "$(curl -LsS https://raw.github.com/FredLackey/dotfiles/master/src/os/setup.sh)"
Linux bash -c "$(wget -qO - https://raw.github.com/FredLackey/dotfiles/master/src/os/setup.sh)"

That's it!

The setup process will:

Setup process in action:

Setup process on Ubuntu Setup process on Ubuntu
macOS Ubuntu



Output for git status:

Output for Git status on macOS Output for Git status on Ubuntu
macOS Ubuntu

Output for git log:

Output for Git status on macOS Output for Git log on Ubuntu
macOS Ubuntu

tmux & vim

tmux and vim on macOS tmux and vim on Ubuntu
macOS Ubuntu


Local Settings

The dotfiles can be easily extended to suit additional local requirements by using the following files:


The ~/.bash.local file it will be automatically sourced after all the other bash related files, thus, allowing its content to add to or overwrite the existing aliases, settings, PATH, etc.

Here is a very simple example of a ~/.bash.local file:


# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# Set local aliases.

alias starwars="telnet towel.blinkenlights.nl"

# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

# Set PATH additions.


export PATH


The ~/.gitconfig.local file it will be automatically included after the configurations from ~/.gitconfig, thus, allowing its content to overwrite or add to the existing git configurations.

Note: Use ~/.gitconfig.local to store sensitive information such as the git user credentials, e.g.:


    # Sign commits using GPG.
    # https://help.github.com/articles/signing-commits-using-gpg/

    gpgsign = true


    name = Fred Lackey
    email = fred.lackey@gmail.com
    signingkey = XXXXXXXX


The ~/.vimrc.local file it will be automatically sourced after ~/.vimrc, thus, allowing its content to add or overwrite the settings from ~/.vimrc.


If you decide to fork this project, don't forget to substitute my username with your own in the setup snippets and in the setup script.


To update the dotfiles you can either run the setup script or, if you want to just update one particular part, run the appropriate os script.


Inspiration and code was taken from many sources, including:

To Do

  • Install VBox extensions instead of just downloading them

License accepted. For batch installaltion add --accept-license=b674970f720eb020ad18926a9268607089cc1703908696d24a04aa870f34c8e8 to the VBoxManage command line.


The code is available under the MIT license.