My config files for various things
Go to file
2021-01-14 18:53:38 -05:00
bash bash: 2path.sh: rework directory handling 2021-01-08 22:23:30 -05:00
firefox firefox: add disable_history template 2021-01-14 18:53:38 -05:00
git git: GCM Core WSL/Windows interop 2021-01-08 07:07:03 -05:00
keepass keepass: remove KeeOtp plugin 2021-01-02 14:46:03 -05:00
nodejs use subshells to preserve CWD 2020-12-31 23:19:54 -05:00
tmux reorganize 2018-11-14 15:15:56 -05:00
vscode vscode: shrink pinned tabs 2020-10-29 21:59:31 -04:00
windows windows: add developer mode registry tweak 2020-06-17 09:58:49 -04:00
wsl wsl: install.cmd: tidy 2021-01-12 17:50:23 -05:00
.gitignore move secrets back out of shared directory 2020-12-24 19:38:53 -05:00
config.sh wsl: wsl-elevate utility 2021-01-12 11:53:06 -05:00
README.md git: GCM Core WSL/Windows interop 2021-01-08 07:07:03 -05:00

config

My config files for various things. Use config.sh 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
  • git/github_token - GitHub Personal Access Token with read access to repos
  • nodejs/.npmrc - npm credentials, config, etc.
  • ssh/ - SSH keys, config, etc.

Bash scripts

  • 2path.sh - create a symlink to a file or directory from ~/bin
  • syncfiles.sh - given paths to two or more files, prompt to copy the newest one over each of the older ones

WSL setup

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

WSL scripts

  • wsl-apt - run apt-get update/upgrade/install/remove/autoremove/autoclean
    • any package names given as arguments are treated as packages to install, except any prefixed with a - are treated as packages to remove
  • wsl-expose-ports - expose one or more ports within WSL to the outside world
    • this sets up a port proxy and a Windows firewall rule for each exposed port, and removes previous port proxies and firewall rules
    • multiple ports can be specified, each with an optional external port: 1234 exposes port 1234 as 1234, 1234:5678 exposes port 5678 as 1234
    • call without arguments to remove port proxies and firewall rules without creating new ones
  • wsl-fix-clock - sync the WSL clock with the Windows clock
  • wsl-fix-interop - fix WSL_INTEROP variable when it becomes incorrectly set
  • wsl-services - start useful services not automatically started by WSL
    • starts procps for sysctl configuration

Firefox

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-mtime - set a file's mtime to its most recent commit's author date
  • 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 download-bundle - download a bundle file from a remote repository
  • 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

Git Credential Manager Core WSL/Windows interop

Copy git/wsl/git-credential-manager into the root of the Git for Windows installation, and symlink to it from the WSL PATH.

Node.js/npm scripts

  • npma.sh - find the given binaries searching upwards through node_modules and output aliases for them, suitable for >> ~/.bash_aliases
  • npmg.sh - 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
  • npml.sh - 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.