Skip to content

wdenton/conforguration

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 

Conforguration README

Conforguration

Use the power of Org to manage accounts and install software the way I like it done.

Conforguration contains:

  • all my non-private “dot files” (run command files, containing configuration instructions for different programs)
  • scripts to install (from source) Emacs, R, Ruby and Tor

The dot files and scripts can be used locally and on remote machines. It is easy to push everything from the local machine to a remote one from this Org file.

I made this to suit my tastes and work the way I want. There may be some things in my dot files that you like, in which case you’re free to copy them, but watch out! This is not meant for widespread general use!

How does it work?

Everything is in conforguration.org. Tangling that file (by running M-x org-babel-tangle or C-c C-v t) will generate all of the dot files and scripts.

Installing Conforguration locally copies files into ~/conforg/:

  • dot files to ~/conforg/dotfiles/
  • scripts to ~/conforg/scripts/

The same files can easily be pushed to remote machines.

There are two types of dot files: “mine” (most of them) or “imported” (a few copied verbatim from elsewhere). Symbolic links are made from $HOME to ~/conforg/dotfiles/.

The scripts can be run locally or on remote machines. For either local or remote installations or updates, you can use C-c C-c on the shell blocks to execute them or you can run the scripts at the command line on the given machine. (If it takes twenty minutes to compile something on a remote machine, you might find it easier to run that script over there instead of from inside Emacs here.)

Usage

Assume Conforguration will be in ~/src/conforguration/.

Requirements

This all assumes your shell is Bash.

All that is needed to get it is Git. On a Debian, Ubuntu or related system, run this:

sudo apt install git rsync

Installation

First, get Conforguration. To clone it with your Git account, run this:

git clone git@github.com:wdenton/conforguration.git ~/src/conforguration/

Or if you don’t want to use a GitHub account:

git clone https://github.com/wdenton/conforguration.git ~/src/conforguration/

Set up /usr/local/src/ and ~/conforg/. This is only necessary once.

~/src/conforguration/conforg/scripts/initialize.sh

Install the dot files and scripts in ~/conforg/, and refresh bash to see the effects.

~/src/conforguration/install/install.sh
source ~/.bashrc

Now you’re running under Conforguration!

Installing Emacs

This installs Emacs and Org from source. (For this to work in Ubuntu you’ll need to have enabled source code repositories for packages in the software update tool.)

~/conforg/scripts/emacs-install-requirements.sh
~/conforg/scripts/emacs-install-personal.sh

To get my personal Emacs configuration, run the following. Warning: this will overwrite all sorts of VERY IMPORTANT files, so don’t do this unless you’re me, or you’re on a new bare system and want to try it out.

cd
git clone git@github.com:wdenton/.emacs.d.git

Then run emacs. A few dozen packages will be downloaded and installed and when that’s done your Emacs will look exactly like mine!

Whenever you want to upgrade Emacs and Org (packages need to be upgraded inside Emacs; my ridiculous keystroke for that is C-x l p U x), run:

~/conforg/scripts/emacs-update.sh

Installing R

You can install R for personal use (where it runs out of /usr/local/src/) or system-wide. The version number is set in conforguration.org.

~/conforg/scripts/r-install-requirements.sh
~/conforg/scripts/r-install-personal.sh
source ~/.bashrc

Run ~/conforg/scripts/r-install-system.sh to install R into /usr/local/bin/.

Installing Ruby

You can install Ruby for personal use (where it runs out of /usr/local/src/) or system-wide. The version number is set in conforguration.org.

To install a personal version with Rbenv:

~/conforg/scripts/ruby-install-requirements.sh
~/conforg/scripts/ruby-rbenv.sh
source ~/.bashrc
~/conforg/scripts/ruby-install-personal.sh

System-wide:

~/conforg/scripts/ruby-install-requirements.sh
~/conforg/scripts/ruby-install-system.sh

Whenever you want to upgrade Rbenv, just run the same script again; if Rbenv is installed it will now upgrade it.

~/conforg/scripts/ruby-rbenv.sh

Why?

Because Ansible and similar configuration management tools aren’t done in Org.

What next?

I don’t know, but if you’re interested, have at it.

There are a lot of dot files in awesome-dotfiles, and it seems tangld is a similar project to this. There will be things to be learned from any related projects.

License

GPL v3. See COPYING for details.

About

Configure things with Org.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages