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, neofetch

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](/screenshots/iterm.png)
Text Editor: Atom beta with dash-ui theme (managed plugins on macOS) ![Atom](/screenshots/atom.png)
Co-working: VSC Insiders with Nord theme (unmanaged) ![VSC Insiders](/screenshots/vscode.png)
IDE: WebStorm with Nord theme (unmanaged) ![WebStorm](/screenshots/webstorm.png)

Batteries included

GNU/BSD packages - [bc-gh](https://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/math/bc-gh/index.html) - [curl](https://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/www/curl/index.html) - [gmake](https://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/devel/gmake/index.html) - [gnuls](https://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/misc/gnuls/index.html) - [gnupg](https://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/security/gnupg/index.html) - [watchman](https://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/sysutils/watchman/index.html) - [weechat](https://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/chat/weechat/index.html)
User installed packages - [powerline fonts](https://github.com/powerline/fonts) - [JetBrains Mono font](https://github.com/JetBrains/JetBrainsMono) - [git-extras](https://github.com/tj/git-extras) - [neofetch](https://github.com/dylanaraps/neofetch) - [ohmyzsh](https://github.com/ohmyzsh/ohmyzsh) - [antibody](https://github.com/getantibody/antibody)
Python user modules - [asciinema](https://github.com/asciinema/asciinema) - [dnstwist](https://github.com/elceef/dnstwist) - [git-fame](https://github.com/casperdcl/git-fame) - `git fame` - [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 - [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) - [commitizen](https://www.npmjs.com/package/commitizen) - [cz-conventional-changelog](https://www.npmjs.com/package/cz-conventional-changelog) - [depcheck](https://www.npmjs.com/package/depcheck) - [diff-so-fancy](https://www.npmjs.com/package/diff-so-fancy) - [dree](https://www.npmjs.com/package/dree) - [envinfo](https://www.npmjs.com/package/envinfo) - [eslint](https://www.npmjs.com/package/eslint) - [fx](https://www.npmjs.com/package/fx) - [git-recent](https://www.npmjs.com/package/git-recent) - [git-standup](https://www.npmjs.com/package/git-standup) - [git-split-diffs](https://www.npmjs.com/package/git-split-diffs) - [how-2](https://www.npmjs.com/package/how-2) - [http-server](https://www.npmjs.com/package/http-server) - [jsnice](https://www.npmjs.com/package/jsnice) - [localtunnel](https://www.npmjs.com/package/localtunnel) - [madge](https://www.npmjs.com/package/madge) - [n](https://www.npmjs.com/package/n) - [npm-check-updates](https://www.npmjs.com/package/npm-check-updates) - [npkill](https://www.npmjs.com/package/npkill) - [ntl](https://www.npmjs.com/package/ntl) - [openapi-to-graphql-cli](https://www.npmjs.com/package/openapi-to-graphql-cli) - [percollate](https://www.npmjs.com/package/percollate) - [quicktype](https://www.npmjs.com/package/quicktype) - [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 - [exa](https://crates.io/crates/exa) - [petname](https://crates.io/crates/petname) - [fd-find](https://crates.io/crates/fd-find) - [ripgrep](https://crates.io/crates/ripgrep) - [dotenv-linter](https://crates.io/crates/dotenv-linter)
Go global packages - [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) - [glow](https://pkg.go.dev/github.com/charmbracelet/glow) - [httpx](https://pkg.go.dev/github.com/projectdiscovery/httpx) - [naabu](https://pkg.go.dev/github.com/projectdiscovery/naabu) - [subfinder](https://pkg.go.dev/github.com/projectdiscovery/subfinder)

Requirements

  1. Install Xcode and run xcode-select --install
  2. Download Python, Node.js, Go and Rust via curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  3. Install Antibody via sudo sh -s -c "$(curl -sfL git.io/antibody)" - -b /usr/local/bin
  4. Install Atom and CMD+SHIFT+P to Window: Install shell commands
  5. Optional, install GPG Suite
  6. Optional, Install KeyBase

Installation

Clone the package via git:

# macOS
git clone --recurse-submodules -j4 [email protected]:0-vortex/dotfiles.git .dotfiles
cd .dotfiles
./install

# Debian
git clone [email protected]:0-vortex/dotfiles.git .dotfiles
cd .dotfiles
./install -c install.conf.debian.yaml

How to use

If you are not planning on using Atom you can safely delete the config/atom folder.

If you are not planning on using Karabiner you can safely delete the config/karabiner folder.

Config

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 and subsequently install.conf.debian.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.

docker build . --squash -t 0vortex/dotfiles:base --target base
docker build . --squash -t 0vortex/dotfiles:toolchain --target toolchain
docker build . --squash -t 0vortex/dotfiles
docker push -a 0vortex/dotfiles