Git Product home page Git Product logo

dotties-core's Introduction

Dotties

Dotties is a Mac tool for managing your dotfiles via GitHub.

Dotties packages are extensions that can be shared. Your entire dotfiles repo is a dotties package, so you can install it on multiple computers to keep your dotfiles in sync. You can also install extensions from others to enhance your own dotfiles. For example, the search behavior in .vimrc can be extracted as an extension which can be added to your existing configuration through dotties package management.

To get started check out my core file

How does it work?

Dotties package is just a collection of dotfiles such as vimrc, tmux.conf etc. Dotties will make sure that your config file and the package's config file are both included correctly.

In order to achieve this Dotties will create a single config file (say ~/.tmux.conf) that sources both your tmux.conf and your package's tmux.conf.

Files from the packages are installed in ~/.dotties/packages/${USERNAME-REPO} and are never modified by dotties, so feel free to update these files in place and commit them back to GitHub.

Insalling on OS X

You can install dotties from Homebrew.

brew install bayleeadamoss/formulae/dotties

Installing on Ubuntu

Install rvm

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash
source /etc/profile.d/rvm.sh
rvm install ruby-2.2

Install dotties

cd /tmp
git clone https://github.com/bayleeadamoss/dotties-core.git
cd dotties-core/bin
mv ../lib /usr/local/bin/.dotties-lib
cat dotties | sed -e 's|../lib|.dotties-lib|g' > /usr/local/bin/dotties

Getting started

Create a repo on GitHub with your dotfiles inside of it.

Let's assume the directory structure looks like this:

dotfiles/
|-- vimrc
|-- tmux.conf

Dottie works with GitHub for package management, so any short GitHub url can be a dotties package. For instance https://github.com/bayleedev/dotties would be installed as bayleedev/dotties. So converting your current dotfiles into a dotties repo is seamless.

To install a repo simply run:

dotties install bayleedev/dotties

.dotties.yml

Optionally, you can have a .dotties.yml if you wish to include additional packages or you want to ignore files such as a readme or pictures of your dog.

A simple .dotties.yml might look lke this:

packages:
  - bayleeadamoss/dotties-vim-movements
ignore:
  - readme.md

This says that next time you install or update your dotfiles to ignore the readme.md file and to include the package bayleeadamoss/dotties-vim-movements.

dotties-core's People

Contributors

afaur avatar amjith avatar bayleedev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

amjith

dotties-core's Issues

Update Items

Currently we delete symlinks to make our own, since I view this as non-destructive, and it fails if a file exists that I want to write.

It should prompt the user and ask if they want to overwrite it, or skip it. This gives them a chance to back it up.

Wipe before update

We should wipe all the files that dotties created before an update, so that if we uninstall a package we don't end up with relics.

dotties cd

As a user, I want to be able to commit my changes to my packages
So an easy way to go to the package directory would be useful

Custom Formatter

Having a lot of odd adapters would be more useful in their own package file.

Maybe something like this in the .dotties.yml

formatters:
  - adapter/foo.rb

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.