Giter Club home page Giter Club logo

dotlink's Introduction

dotlink

Dotfiles, (i.e. configuration files) are a mess. The XDG Base Directory Specification would be a good solution, if only applications would stick to it. As it is, there are a number of applications that are all too happy to dump their .app_cache, .apprc or .appdata into your $HOME directory, regardless of how you set $XDG_*_HOME environment variables.

If you want to version-control your configuration files, this is a problem.

Using dotlink, you can not only treat your configuration as code, but their location in your system as well. This means you can write an user.link file like the following:

# You can specify which files to link where
link "dotfiles/xinitrc" "$HOME/.xinitrc"
link "dotfiles/Xresources" "$HOME/.Xresources"
link "dotfiles/zprofile" "$HOME/.zprofile"
link "dotfiles/profile" "$HOME/.profile"
link "dotfiles/zshrc" "$HOME/.zshrc"
link "dotfiles/inputrc" "$HOME/.inputrc"
link "dotfiles/bashrc" "$HOME/.bashrc"
link "dotfiles/bash_profile" "$HOME/.bash_profile"
link "dotfiles/Xresources.d" "$HOME/.Xresources.d"

# And you can hierarchycally include other .link files 
include "config.link"
include "scripts.link"

and dotlink will link all the files to their correct locations by simply running:

$ dotlink path/to/user.link

Dotlink also performs all the operations atomically, it will not make any changes to your system unless it has verified that you can make all the changes (for example, the link names are not existing non-symbolic-link files and you have relevant permissions to create such links).

Finally, you can keep all your configuration files in the same place commit them to a source control repository with ease!

dotlink's People

Contributors

mbrea-c avatar

Watchers

 avatar

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.