Skip to content

Terminal-First Dev Environment Setup for Hardcore Linux Users #73

@kevinevans1

Description

@kevinevans1

User Story: Terminal-First Dev Environment Setup for Hardcore Linux Users

As a platform engineer and power user on Linux (Ubuntu or Arch),
I want an automated setup script to configure a terminal-native development environment using NeoVim, fish shell, and other advanced CLI tools,
So that I can maximize productivity in a minimal, efficient, and aesthetic environment without manual setup.

Acceptance Criteria:

✅ Script Support:
• A Bash or fish script that detects whether the system is Ubuntu (APT) or Arch (pacman) and installs accordingly.

✅ Essential Packages:
• NeoVim (with minimal LSP and plugin config)
• Git (with global config and SSH key setup)
• Terminal Emulator (Tilix or Alacritty)
• Fish Shell with Oh My Fish and bobthefish theme
• Oh My Posh (for prompt styling)
• cowsay, lolcat, and asciiquarium (for terminal aesthetic)

✅ Cloud CLIs:
• Azure CLI
• AWS CLI
• Google Cloud SDK

✅ Infrastructure-as-Code Tools:
• Terraform
• OpenTofu
• Bicep
• Helm

✅ Kubernetes Tooling Suite:
• kubectl
• k9s
• kind
• minikube
• skaffold
• helmfile
• stern
• kubectx / kubens

✅ Terminal-based Tools:
• lazygit
• fzf, ripgrep, bat, htop, tldr, exa

✅ Neovim Configuration:
• Plugin manager (lazy.nvim or vim-plug)
• LSP support for Terraform, Kubernetes, YAML, Git
• Terminal file tree (e.g., nvim-tree.lua)

✅ Git Setup:
• Git installed and configured
• SSH key generated and added to GitHub (or prompted to)

✅ Shell Configuration:
• fish shell set as default
• Custom theme with Oh My Fish or bobthefish
• Post-setup success confirmation with asciiquarium

Documentation Requirements:

📁 Modular README Structure:
• Documentation must avoid a single monolithic README.
• Use a modular folder-based structure that mirrors our current platform engineering documentation format (e.g., docs/, modules/, tools/).

🎯 Accessible Formatting & UX:
• Use accessible markdown formatting, icons (e.g., ✅ 🐳 ☁️), and concise, friendly language.
• Include navigation links between sections and use consistent styling across files.

📚 Reference Inspiration:
• Use our wider Platform Engineering repo as inspiration for structure, tone, and organization.
• Optional: include .devcontainer/ or .nvim/ folder references for portable setups.

Deliverables:
• setup-dev-env.sh — executable setup script
• docs/ folder with subtopics (e.g., tools, cloud, shell setup, Neovim)
• README.md as a landing page with links to module-specific docs
• Optional: GitHub Actions or Makefile to test setup script locally

Current Placeholder: ./local_development_module/terminal_first_linux/readme.md

Be sure to also update development setup MD accordingly.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions