Skip to content

dannylongeuay/workstation-bootstrap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Workstation Bootstrap

This repo contains scripts that I used to bootstrap/update my personal and professional developer workstations.

Table of Contents

Disclaimer

This repo has only been tested and used on Pop!_OS 22.04. Use at your own risk on other distributions/platforms!

Usage

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.

Features

Outlined below are various features this bootstrapping process offers. This is not an exhaustive list, but rather a highlight reel.

Shell

The default shell is fish and starship is used for the prompt.

Starship Clean Prompt:

Starship Clean Prompt Example

Starship Untracked Prompt:

Starship Untracked Prompt Example

Starship Tracked Prompt:

Starship Tracked Prompt Example

The following fish plugins are installed:

Hotkeys:

Find files - Ctrl+Alt+F

Fish Find Example Usage

Search command history - Ctrl+R

Fish History Example Usage

Accept entire autosuggestion - Ctrl+F

Accept first suggested word - Alt+F

Abbreviations:

  • k = kubectl
  • ka = kubectl get all -A
  • nv = nvim
  • tl = tree | less
  • xc = xclip -selection clipboard

Packages

Noteworthy packages installed using aptitude:

Github CLI:

Github CLI Example Usage

Docker

This script will install docker and add the current user to the docker group. It also installs docker-compose v1 and docker compose v2.

ASDF

The following is a list of tools installed using asdf-vm:

Bat Example:

cat clone with syntax highlighting

Bat Example

Bpytop Example:

Resource monitor

Bpytop Example

Commitizen Examples:

Conventional commits with git emojis. Use cz instead of git commit.

CZ Emoji Example

CZ Commit Example

Delta Example:

Syntax highlighting pager for git, diff, and grep output.

Delta Example

Duf Example:

Disk usage utility.

Duf Example

Eza Example:

Modern replacement for ls.

Exa Example

Fx Example:

JSON processing tool.

Fx Example

Httpie Example:

User-friendly HTTP CLI.

Httpie Example

K9S Example:

Terminal UI to interact with kubernetes cluster.

K9S Example

Dotfiles

The following dotfiles will be installed/updated:

  • .bashrc
  • .czrc
  • .tmux.conf
  • config.fish
  • starship.toml
  • alacritty.yml

Tmux

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 Multipane Example

Tmux plugins:

Tmux abbreviations:

  • tmd = tmux new -s dev
  • tma = tmux a

Git

Fish abbreviations:

  • awsso = aws_sso_login
  • cf = create_file
  • el = eza -lh
  • ela = eza -lha
  • elt = eza -lht
  • et = eza -T
  • g = git
  • ga = git add -A
  • gb = git branch
  • gbd = git branch -d
  • gbD = git branch -D
  • gc = git checkout
  • gcb = git checkout -b
  • gd = git diff
  • gdh = git diff HEAD
  • gds = git diff --staged
  • gl = glab
  • glo = git log --oneline
  • gpl = git pull
  • gm = git merge
  • gmc = git merge --continue
  • gpu = git push
  • gs = git status
  • zz = z -

Fonts

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.

Motivation

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.

About

Bash script to bootstrap a developer workstation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published