Skip to content

megalithic/bits-and-bobs

Repository files navigation

[DEPRECATED] Bits and bobs

NOTE: my dotfiles are now managed under megalithic/dotfiles

I started off with a modified version of my own dotfiles, based on Holman's, but have slowly been updating it to be more akin to what Pengwynn and Yonk have built/modified.

Check theirs out, or many others at octodots.

Get your own

If you're new to dotfiles, this probably isn't the best starter repository for you. While these started as a clone of Holman's, many utilities are unique to my workflow. I recommend other dotfile frameworks out there.

Installation

If you want to kick the tires, then simply:

curl -fsSL \
  https://raw.githubusercontent.com/megalithic/bits-and-bobs/master/scripts/bootstrap | sh

The install script will symlink the appropriate files in .dotfiles to your home directory. Everything is configured and tweaked within ~/.dotfiles, though. All files and folders ending in .symlink get, you guessed it, symlinked. For example: ~/.dotfiles/vim/vimrc.symlink gets symlinked to ~/.vimrc.

This also sets up things like homebrew if you're on a mac, and even allows for a private repository setup.

I highly recommend you dig into the scripts and configs to see what all is going on before you willy-nilly install a stranger's shell scripts. :)

Main elements

A few of the flavors I roll with:

  • Homebrew
  • Hammerspoon
  • 24-bit color patched version of tmux
  • Teamocil for automagic tmux layouts
  • Several shell scripts for getting the info I want on my tmux statusbar (take a gander at ~/.dotfiles/bin for tmux- prefixed scripts).
  • Font: Source Code Pro (patched with powerline, octicon, fontawesome glyphs)
  • iTerm2 colorscheme: base16-ocean dark
  • Neovim colorscheme: base16-ocean dark
  • Zsh prompt: a base of pure, with some modified VCS functionality (for super in-depth vcs status output).
  • Weechat

The file hierarchy:

  • bin/: Anything in bin/ will get added to your $PATH and be made available everywhere.
  • 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/*.symlink: Any files ending in *.symlink get 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 run scripts/bootstrap.
  • topic/*.completion.sh: Any files ending in completion.sh get loaded last so that they get loaded after we set up zsh autocomplete functions.

.localrc and sensitive data

Use ~/.localrc as your location for sensitive information. Optionally, you can let setup/bootstrap handle the cloning of your private repo to ~/.dotfiles/private, which will execute an install script, assuming it's located at ~/.dotfiles/private/install.sh.

Handy references

Those that came before me

My original dotfiles and this revamped version began as a fork of (and is heavily inspired by) Zach Holman's dotfiles, whose topic-based symlinking approach makes this so easy.

I also have stolen freely from:

Share your dots

If you've got a great set of dots (or want to get started), check out dotfiles.github.com. Ping @octodots with great dot sets you've found or tips and tricks for your favorite tools. If you have any questions about my specific setup here, feel free to hit me up at @megalithic.