TED Vortex's dotfiles

A utility first dev tooling repo with dotbot, zsh, antibody, defaults, plist, fonts, git-extras, atom, pip, npm, cargo, go, karabiner, carpalx full optimisation


Project maintained by 0-vortex Hosted on GitHub Pages — Theme by mattgraham

0-vortex/dotfiles

docs Commitizen friendly GitHub License

Configuration: zsh, antibody, pkgsrc

Package managers: pip, npm, cargo, go

Submodules: dotbot, powerline, git-extras, git-quick-stats, iterm-color-schemes

Overview

Just want to give it a spin in a sandbox?

docker run -dit --rm --name dotfiles 0vortex/dotfiles 
docker exec -it dotfiles zsh
This is how a full install on a mac should look like [![asciicast](https://asciinema.org/a/414072.svg)](https://asciinema.org/a/414072)
Terminal: iTerm3 with ayu theme (managed configuration on macOS) ![iTerm3](/dotfiles/screenshots/iterm.png)
Text Editor: Atom beta with dash-ui theme (managed plugins on macOS) ![Atom](/dotfiles/screenshots/atom.png)
Co-working: VSC Insiders with Nord theme (unmanaged) ![VSC Insiders](/dotfiles/screenshots/vscode.png)
IDE: WebStorm with Nord theme (unmanaged) ![WebStorm](/dotfiles/screenshots/webstorm.png)

Batteries included

User installed packages

GNU/BSD packages

Python user modules

Darwin only - [git-filter-repo](https://github.com/newren/git-filter-repo) - `git filter-repo` - [httpie](https://github.com/httpie/httpie) - `http -v` - [terraform-compliance](https://github.com/terraform-compliance/cli) - [tqdm](https://github.com/tqdm/tqdm) - [sublist3r](https://github.com/aboul3la/Sublist3r) - [wafw00f](https://github.com/EnableSecurity/wafw00f)

Node global packages

Darwin only - [api-spec-converter](https://www.npmjs.com/package/api-spec-converter) - [caniuse-cmd](https://www.npmjs.com/package/caniuse-cmd) - [catj](https://www.npmjs.com/package/catj) - [code-to-graph](https://www.npmjs.com/package/code-to-graph) - [cz-conventional-changelog](https://www.npmjs.com/package/cz-conventional-changelog) - [diff-so-fancy](https://www.npmjs.com/package/diff-so-fancy) - [dree](https://www.npmjs.com/package/dree) - [eslint](https://www.npmjs.com/package/eslint) - [fx](https://www.npmjs.com/package/fx) - [http-server](https://www.npmjs.com/package/http-server) - [jsnice](https://www.npmjs.com/package/jsnice) - [madge](https://www.npmjs.com/package/madge) - [openapi-to-graphql-cli](https://www.npmjs.com/package/openapi-to-graphql-cli) - [percollate](https://www.npmjs.com/package/percollate) - [serve](https://www.npmjs.com/package/serve) - [standard-changelog](https://www.npmjs.com/package/standard-changelog) - [tldr](https://www.npmjs.com/package/tldr) - [unminify](https://www.npmjs.com/package/unminify)

Rust global packages

Darwin only - [ripgrep](https://crates.io/crates/ripgrep) - [dotenv-linter](https://crates.io/crates/dotenv-linter)

Go global packages

Darwin only - [lazydocker](https://pkg.go.dev/github.com/jesseduffield/lazydocker) - [lazygit](https://pkg.go.dev/github.com/jesseduffield/lazygit) - [bat](https://pkg.go.dev/github.com/astaxie/bat) - [httpx](https://pkg.go.dev/github.com/projectdiscovery/httpx) - [subfinder](https://pkg.go.dev/github.com/projectdiscovery/subfinder)

Requirements

  1. Install Xcode or run xcode-select --install
  2. Download and install Python
  3. Download and install Node.js
  4. Download and install Go
  5. Download and install Rust via curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  6. Install Atom and CMD+SHIFT+P to Window: Install shell commands
  7. Optional, install GPG Suite
  8. Optional, Install KeyBase

Installation

Clone the package via git:

# macOS
git clone --recurse-submodules -j4 git@github.com:0-vortex/dotfiles.git .dotfiles
cd .dotfiles
./install

How to use

If you are on linux, do lsb_release and then duplicate or rename debian.conf.yaml and populate it with your settings.

Make it your own

Make appropriate git to the config/git/.gitconfig and config/git/.gitignore_global files.

Change npm registry username in the config/node/.npmrc-global file.

Enable or disable macOS defaults folder.

Any changes mentioned above will need reflection in install.conf.yaml.

Set up GPG and commit signing

Copy over your ~/.ssh folder.

Optionally import Keybase gpg key into gpg tools for signed commits (replace keyname with the returned key from list secret keys)

keybase pgp export --secret | gpg --allow-secret-key --import
gpg --list-secret-keys --keyid-format LONG
gpg --armor --export keyname | pbcopy

Dockerize your fork

Assuming you are happy with your fork and just want to show it off, change the following to your docker username and just ship it.

Here are manual examples of all the tags available in the current Dockerfile, testing included.

Debian

docker build -t 0vortex/dotfiles:debian --squash --target debian .
docker run -dit --rm --name dotfiles-debian 0vortex/dotfiles:debian
docker exec -it dotfiles-debian zsh
docker push 0vortex/dotfiles:debian

Ubuntu

docker build -t 0vortex/dotfiles:ubuntu --squash --target ubuntu .
docker run -dit --rm --name dotfiles-ubuntu 0vortex/dotfiles:ubuntu
docker exec -it dotfiles-ubuntu zsh
docker push -0vortex/dotfiles:ubuntu

Alpine

docker build -t 0vortex/dotfiles:alpine --squash --target alpine .
docker run -dit --rm --name dotfiles-alpine 0vortex/dotfiles:alpine
docker exec -it dotfiles-alpine zsh
docker push 0vortex/dotfiles:alpine

Arch

docker build -t 0vortex/dotfiles:arch --squash --target arch .
docker run -dit --rm --name dotfiles-arch 0vortex/dotfiles:arch
docker exec -it dotfiles-arch zsh
docker push 0vortex/dotfiles:arch