Skip to content

darrylabbate/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

Files for configuring a terminal environment and other various system settings. Largely centered around macOS, as well as other Unix-like systems. See Github does dotfiles for more info

Installation

curl method (easiest)

curl get.darryl.cx | sh && make -C dotfiles

Source code for the script is here. Checksums can be found in the tag notes.

The curl method will install everything automatically. This is really useful for quickly setting up a new machine.

Manual method

You can also manually clone the repository and invoke the Makefile

git clone https://github.com/darrylabbate/dotfiles && make -C dotfiles

Makefile

make

  • Installs Homebrew on macOS and installs all packages defined in the Brewfile.
  • Sets Homebrew-installed Bash (4.4+) as the default shell
  • Updates macOS and configures preferred system defaults defined in /macos/defaults.sh
  • Configures yabai and skhd to run at system startup
  • Creates necessary symlinks via GNU Stow
  • Runs /macos/duti/set.sh, which sets defaults handlers/programs for file extensions via duti.

make link

  • Symlinks only Bash and Vim configuration files to the home directory using ln commands. Useful for temporarily configuring a shared computer. Nothing new is installed to the machine, but files may be overwritten since the Makefile recipe passes the -f flag for every ln command.
  • Run make unlink to remove these symlinks.

How it Works

Symlinks

All necessary symlinks ( .bash_profile, .vimrc, among others) are managed with GNU Stow (installed with Homebrew). Files you wish to be symlinked to the home directory need to be placed in a folder within ~/dotfiles. Using the stow command from the ~/dotfiles directory will symlink the contents of the folder you choose (/bash, /vim, etc) to the grandparent directory, which is wherever the /dotfiles folder is contained.

Assuming you clone the dotfiles repository in your home directory, executing the commands:

$ cd dotfiles
$ stow bash

will symlink the contents of /bash to the home directory.

You can use the stow command anytime you add a new file to a folder you wish to symlink directly to the home directory. This can all be done without Stow using the ln -s command, but I find GNU Stow with folder management to be cleaner and easier to maintain.

Bash

.bash_profile automatically sources configurations defined in the files contained in the /bash/dots folder. Any changes to any existing file, as well as any new files in /bash/dots/ will be loaded into the shell upon opening a new Terminal window or reloading the .bash_profile.

Vim

Window Management