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, 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
- Install Xcode and run
xcode-select --install
- Download Python, Node.js, Go and Rust via
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Install Antibody via
sudo sh -s -c "$(curl -sfL git.io/antibody)" - -b /usr/local/bin
- 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 [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