Skip to content

benknoble/Dotfiles

Repository files navigation

dotfiles

This project is personal

My Dotfiles for configuration of different software and command-line programs

See also: my workflow

⚠️WARNING⚠️ Dotfiles are not meant to be forked: they are personal castles that you should construct yourself. That said, feel free to peruse mine and steal whatever you like.

In spite of the above warning, I have tried to make this repo relatively easy to fork and play with. Sourcing local files, such as ~/.gitconfig.local, is a large part of that.

Installing

First, clone the repo into your dotfiles directory (the name of the directory doesn't matter). If your git supports it, --jobs ... might be a good idea. You can skip the submodules if you choose, but you must have the plink submodule or a plink installation to build the makefile used for installation and maintenance. The submodule is the easiest route.

mkdir ~/Dotfiles
git clone --recurse-submodules https://github.com/benknoble/Dotfiles.git ~/Dotfiles
cd ~/Dotfiles

Next, run make to kick things off:

./dotfiles.plink
make install

This will do several things:

  1. Use Plink to generate the makefile.
  2. Executes make symlink, which removes old files and creates the symlinks :warning:No backups are made. Create your own prior to installing if you wish.⚠️
  3. (Optional) Executes make $(FEATURES). See the Makefile for supported options and the defaults. FEATURES=none can be used to skip this.

At this point, you may want to setup brew, so do

# Linux
eval $(/home/linuxbrew/.linuxbrew/bin/brew shellenv)
# macOS
command -v brew

make brew_setup

The next time you start a shell (probably homebrewed zsh, since that's what make brew_setup sets it to), your new config files will load , giving you access to a whole host of new command-line fu.

reload is a helpful alias (defined for both bash and zsh) for when changes have been made to shell dotfiles: it essentially loads those changes into the environment. :Reload exists for vim, and there are reload bindings for both tmux and readline as well.

Keeping Up-to-date

make update should be all you need.

Other make things

Controlled via Plink and dotfiles.plink.

The Makefile is only guaranteed to work if run from the top-level of this repo.

  • provides useful targets (make prints a list)
  • customizable (see the top section of Makefile)
  • updates as needed

Documentation & Full Feature List

Check the code—this is where you should probably not use something until you understand what it is doing. Feel free to ask me questions.

The old docs have been eliminated. They can be found in the git history.

Misc

Theme

I am now using the Dracula themes for all my software. You can find some of them under the Dracula directory and some in a vim package. Some are hand-coded and not official. Additionally, if Dracula Pro is available, I'm using that instead. I usually use the regular variant, though the Van Helsing variant is also nice.

I'm using Victor Mono as a font. Cursive italics have grown on me.

Code of Conduct

Note that we also have a Code of Conduct that governs the behavioral expectations of the Dotfiles.

License

This project is licensed under the MIT License--see LICENSE for more information.

© 2016 David Ben Knoble

Acknowledgments

This project was inspired by a blog post from this guy.

I've also grabbed code from a number of places over the development of the project. I've tried to attribute you in the code where possible, but I can't hit everybody.

Thanks to Steve Losh for some Vim help and teaching.

Thanks further to the kind Internet for providing a wealth of resources when things go wonky.