This repo contains scripts that I used to bootstrap/update my personal and professional developer workstations.
This repo has only been tested and used on Pop!_OS 22.04
. Use at your own risk
on other distributions/platforms!
Clone this repo and run the following top-level script:
./setup.sh
OR
./setup.sh -f
-f will force updates
Then log out and log back in for the changes to take full affect.
Log out/log in is necessary for shell and docker group changes. This is only necessary after the first run of this script.
Outlined below are various features this bootstrapping process offers. This is not an exhaustive list, but rather a highlight reel.
The default shell is fish and starship is used for the prompt.
Starship Clean Prompt:
Starship Untracked Prompt:
Starship Tracked Prompt:
The following fish plugins are installed:
Hotkeys:
Find files - Ctrl+Alt+F
Search command history - Ctrl+R
Accept entire autosuggestion - Ctrl+F
Accept first suggested word - Alt+F
Abbreviations:
k
= kubectlka
= kubectl get all -Anv
= nvimtl
= tree | lessxc
= xclip -selection clipboard
Noteworthy packages installed using aptitude:
Github CLI:
This script will install docker and add the current user to the docker group. It also installs docker-compose v1 and docker compose v2.
The following is a list of tools installed using asdf-vm:
- awscli
- bat
- delta
- doctl
- duf
- eza
- fd
- flux
- fzf
- glab
- go
- helm
- httpie-go
- k3d
- k9s
- kubectl
- node
- poetry
- pulumi
- python
- sops
- terraform
- tilt
- zoxide
Bat Example:
cat
clone with syntax highlighting
Bpytop Example:
Resource monitor
Commitizen Examples:
Conventional commits with git emojis. Use cz
instead of git commit
.
Delta Example:
Syntax highlighting pager for git
, diff
, and grep
output.
Duf Example:
Disk usage utility.
Eza Example:
Modern replacement for ls
.
Fx Example:
JSON processing tool.
Httpie Example:
User-friendly HTTP CLI.
K9S Example:
Terminal UI to interact with kubernetes cluster.
The following dotfiles will be installed/updated:
.bashrc
.czrc
.tmux.conf
config.fish
starship.toml
alacritty.yml
Hotkeys (vim-like navigation):
Prefix - Ctrl+g
Detach - D
Split right - r
Split down - d
Select left pane - h
Select down pane - j
Select up pane - k
Select right pane - l
Select prev window - Ctrl-h
Select next window - Ctrl+l
Select window - 0-9
Window interactive index - w
Tmux Multipane:
Synchronize panes - Ctrl+s
Tmux plugins:
Tmux abbreviations:
tmd
= tmux new -s devtma
= tmux a
Fish abbreviations:
awsso
= aws_sso_logincf
= create_fileel
= eza -lhela
= eza -lhaelt
= eza -lhtet
= eza -Tg
= gitga
= git add -Agb
= git branchgbd
= git branch -dgbD
= git branch -Dgc
= git checkoutgcb
= git checkout -bgd
= git diffgdh
= git diff HEADgds
= git diff --stagedgl
= glabglo
= git log --onelinegpl
= git pullgm
= git mergegmc
= git merge --continuegpu
= git pushgs
= git statuszz
= z -
The following fonts are installed from Nerd Fonts:
- Droid Sans Mono
- DejaVu Sans Mono
Use of patched fonts are necessary for the terminal/shell to render dev icons correctly.
Create a reliable way to bootstrap a developer workstation. Level-up the development environment with a modern shell and tool set.
Support managing cloud resources, AWS and DigitalOcean, with infrastructure as code, Terraform and Pulumi. Package, develop, and deploy apps with kubectl, kubeseal, helm, k3d, and tilt. Build services with python, golang, and javascript/typescript.