Skip to content

re-un-over-complicating my dotfiles and system management

License

Notifications You must be signed in to change notification settings

TheKevJames/dotsystem

Repository files navigation

dotsystem

Usage

Clone and run. To update configuration, pull and run. Changes will prompt you.

git clone https://github.com/thekevjames/dotsystem.git
cd ./dotsystem
./sync [--force] [--skip-packages]

New Machines

If you're provisioning a new machine from scratch, there's some extra steps that have to be done outside of ./sync to make your machine entirely bootstrap-able:

# OSX only: disable SIP by booting into recovery mode (intel: hold cmd-r on boot, m1: hold power button)
csrutil disable

# clone the dotsystem repo and do the initial sync
git clone https://github.com/thekevjames/dotsystem.git ~/src/personal/dotsystem
cd ~/src/personal/dotsystem
./sync --force

Old Machines

When sunsetting a machine, there's not much that needs to be done:

# check for anything which needs backing up
./discover

# check for unpushed branches
cd ~/src/*
git-wips

# invalidate your ssh key (https://github.com/settings/keys)
gh ssh-key delete $(hostname)

# nuke your homedir
sudo rm -Prf ~

XDG

I am a huge fan of the XDG Base Directory Spec. Unfortunately, many apps don't follow that spec unless they're coerced into it via env vars, CLI flags, etc. Some don't support it env then.

I generally go through and try to keep things as clean as possible. xdg-ninja is a fantastic tool for this and has a great database of fixes. The following are some extra fixes that I worked out before coming across xdg-ninja... at some point, I'll open some PRs and move 'em over.

  • arc. Support with --arcrc-file flag.
  • cpan. Partial support with -j flag and setting values in your Config.pm to XDG-compliant ones.
  • gmailctl. Support with --config flag.
  • helm. Support by setting $HELM_HOME.
  • irb. Partial support by setting $IRBRC.
  • jira. Partial support by setting $HOME, which frankly I'm not sure counts.
  • kubectl. Support by setting $KUBECONFIG and $KUBECACHEDIR
  • theano. Support by setting $THEANORC and including base_compiledir in $THEANO_FLAGS.

Besides the ones xdg-ninja knows about, I'm also tracking:

About

re-un-over-complicating my dotfiles and system management

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •