Your dotfiles are how you personalize your system. These are mine.
I was a little tired of having long alias files and everything strewn about (which is extremely common on other dotfiles projects, too). That led to this project being much more topic-centric. I realized I could split a lot of things up into the main areas I used (Ruby, git, system libraries, and so on), so I structured the project accordingly.
If you're interested in the philosophy behind why projects like these are awesome, you might want to read holman's post on the subject.
There's a few special files in the hierarchy.
- bin/: Anything in
bin/
will get added to your$PATH
and be made available everywhere. - Brewfile: This is a list of applications for Homebrew Cask to install: things like Chrome and 1Password and Adium and stuff. Might want to edit this file before running any initial setup.
- topic/*.zsh: Any files ending in
.zsh
get loaded into your environment. - topic/path.zsh: Any file named
path.zsh
is loaded first and is expected to setup$PATH
or similar. - topic/completion.zsh: Any file named
completion.zsh
is loaded last and is expected to setup autocomplete. - topic/install.sh: Any file named
install.sh
is executed when you runscript/install
. To avoid being loaded automatically, its extension is.sh
, not.zsh
. - topic/*.symlink: Any file ending in
*.symlink
gets symlinked into your$HOME
. This is so you can keep all of those versioned in your dotfiles but still keep those autoloaded files in your home directory. These get symlinked in when you runscript/bootstrap
.
Run this:
git clone https://github.com/kyungw00k/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
script/bootstrap
This will symlink the appropriate files in .dotfiles
to your home directory. Everything is configured and tweaked within ~/.dotfiles
directory.
The main file you'll want to change right off the bat is zsh/zshrc.symlink
, which sets up a few paths that'll be different on your particular machine.
Note:
If you want to run installation process from automated script like vagrant shell provisioner, without interactive shell you can pass arguments like:
git_authorname=rastasheep git_authoremail=rastasheep3@gmail.com existing_files=O make -C ~/.dotfiles linux
Available options are optional:
git_authorname
(string) - Your name used for doing gitgit_authoremail
(string) - Your email used for doing gitexisting_files
(string) -[s]kip, [S]kip all, [o]verwrite, [O]verwrite all, [b]ackup, [B]ackup all
- Policy used for overriding existing files ``