Various configuration and automation scripts
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Alan Faubert 78e6d071e2 bash: add; reorganize 1 month ago
atom atom config 2 years ago
bash bash: add; reorganize 1 month ago
firefox firefox: disable geolocation 5 months ago
git git: npm-add: tidy with new JS features 1 month ago
keepass keepass: add config 9 months ago
nodejs nodejs: switch from nvm to volta 4 months ago
tmux reorganize 1 year ago
vscode vscode: remove all search-specific excludes 1 month ago
windows windows: add developer mode registry tweak 4 months ago
wsl wsl: add as backup DNS server 3 months ago
.gitignore wsl: use built-in wsl.exe to init distros 4 months ago nodejs: switch from nvm to volta 4 months ago bash: add; reorganize 1 month ago


My config files for various things. Use to automate the setup of several of them.

Things that are not checked in but which should live in this directory:

  • firefox/configs/ - files whose names are +-separated filenames from firefox/ - these will be constructed by concatenation from the base files, and will be symlinked to from various profiles' user.js files
  • firefox/*.proxy - proxy auto-config files - these too can be referred to in the above firefox/configs/ files, without the .proxy extension
  • gcloud/ - Google Cloud SDK configuration files
  • nodejs/.npmrc - npm credentials, config, etc.
  • secrets/git/github_token - GitHub Personal Access Token with read access to repos
  • secrets/ssh/ - SSH keys, config, etc.

WSL setup

Use wsl/install.cmd to set up a new WSL installation. Run without arguments for details.


For each profile:

Git scripts

  • git clean-branches - delete local branches which track deleted remote branches
  • git clean-config - unset various local config values, so global config will be used
  • git clean-dates - set commit dates of all commits in the given range to their authoring dates
  • git clean-fork - assuming origin and fork remotes, resets default branch on fork to first commit on origin, deletes all other branches on fork that are present on origin, and deletes all tags on fork
  • git clean-modes - reset all file modes to those in the repository
  • git clean-pr - delete all pr/ branches created by git cpr
  • get clean-user - set author and committer of all commits in the given range to the currently configured identity
  • git cpr - checkout a PR from GitHub by id, and set up the local branch to track the appropriate branch on the appropriate fork
  • git index-list-skip - list all files that have had --skip-worktree set on them
  • git index-skip - set --skip-worktree on a given file
  • git index-unskip - set --no-skip-worktree on a given file
  • git npm-add - stage precisely the files that would be included in an npm package
  • git track - set current branch to track given remote and branch, defaulting to same branch name
  • git turbo-gc - turbo garbage collect

Node.js/npm scripts

  • - find the given binaries searching upwards through node_modules and output aliases for them, suitable for >> ~/.bash_aliases
  • - create a commit for a new version (if there are staged changed), and create and tag an otherwise dangling commit from HEAD that contains all of the files npm publish would
  • - find the node_modules where the given dependencies are used, search up further for directories defining them, and create symlinks

tmux keybindings

The included .tmux.conf makes the following changes/additions to the default tmux keybindings:

  • The prefix key is now ctrl-a (and ctrl-a ctrl-a is used to send ctrl-a to the console)
  • Switching windows is done with ctrl-alt-left/right (no prefix key)
  • Switching panes is done with alt-left/right/up/down (no prefix key)
  • Splitting panes is done with ctrl-a | (horizontal) and ctrl-a - (vertical)
  • Reloading ~/.tmux.conf is done with ctrl-a shift-r

Mouse control is also enabled, and the terminal mode is set to screen-256color.