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
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
- Install Xcode or run
xcode-select --install
- Download and install Python
- Download and install Node.js
- Download and install Go
- Download and install Rust via
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Install Atom and
CMD+SHIFT+P
to Window: Install shell commands
- Optional, install GPG Suite
- 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