This is my collection of dotfiles and boostrap scripts that make it easy to sync configurations between computers and set up a new computer. While most of the customizations will work on any Linux/OS system, they are specifically written for and tested on macOS. It can also be used on Linux-based machines with some adjustments to functions that might not produce correct results.
Note: The
boostrap.sh
script has the potential to overwrite your existing configurations. Please make a backup of your existing dotfiles before you proceed.
Before you install, you must have curl
installed on your machine.
To install, open a terminal window and do the following:
-
Clone this repo:
git clone https://github.com/BartleyR/dotfiles.git
-
Change directories into the repo:
cd dotfiles
-
Make any configuration changes necessary in the
config/.exports
file -
Run the bootstrap script
# for macOS machines sh bootstrap.sh # for Ubuntu machines bash bootstrap.sh
-
Restart your terminal instance
The script now includes the options to install Oh My ZSH as well as the Powerlevel10k theme, but they can also be installed separately. The Powerlevel10k theme highly recommends a patched font, but you can also use Powerline fonts or a similar font package. More information about requirements is in the section below.
This custom dotfile environment relies on the Z shell (zsh). If you wish to use the Bash shell, you can still use the individual dotfiles and source them in your .bashrc
file.
Requirements that can be installed by bootstrap.sh
(i.e., no need to separately install):
Requirements that must be installed separately:
- Powerline fonts: instructions for installation are shown after running
bootstrap.sh
- For the Powerlevel10k theme, you may optionally install a patched font. Follow the directions to do this and configure your terminal.
config/.exports
: Contains configuration paths and variablesconfig/.exports.local
: [optional] Contains local configuration paths and variables that should not be synced across machines
Dotfiles are organized into folders based on where the files live in the OS. For example, files in the home
folder live inside the $HOME
directory on the OS.
home/.aliases
: Contains aliases that are sourced in.zshrc
home/.functions
: Contains functions that are sourced in.zshrc
home/.vimrc
: Configuration file for VIMhome/.zshrc
: ZSH configuration file
There may be instances where it's desierable to have some aliases and functions that exist on a single machine or OS type (e.g., only on macOS and not on Ubuntu). To accomplish this, place the local customizations in a file named .aliases_functions.local
in the $HOME
directory. This file will be sourced via .zshrc
if it exists.
Scripts and configurations have been tested with the following operating systems and terminals.
Inspiration taken from this GitHub repo