Skip to content

About

No description, website, or topics provided.

Resources

Contributing

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

ย 

History

214 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš My Shell Setup

This project codifies how I configure my development environment across Windows, Linux, and OSX, using Windows Terminal1, Powerlevel10k2, Neovim3, and more.

๐Ÿš€ Quick Start

Run this in a Linux or macOS terminal:

curl -fsSL https://shell.jasonwohlgemuth.me/install.sh | bash

Tip

Install only selected packages by passing their names after bash -s --:

curl -fsSL https://shell.jasonwohlgemuth.me/install.sh | bash -s -- git neovim agents

Separate arguments are recommended. A comma-separated list also works:

curl -fsSL https://shell.jasonwohlgemuth.me/install.sh | bash -s -- git,neovim,agents

Package names must match directories listed under Install packages. With no names, the installer uses its default package set.

On Windows, run this in PowerShell:

irm https://shell.jasonwohlgemuth.me/install.ps1 | iex

To install only selected Windows packages, invoke the downloaded script with -Packages:

& ([scriptblock]::Create((irm https://shell.jasonwohlgemuth.me/install.ps1))) -Packages nushell,starship

The Windows installer supports nushell, neovim, and starship; with no package names, it installs all three. Package names can be separate array values, comma-separated strings, or space-separated strings. The installer requires Git and clones the repository to $HOME\.dotfiles (or updates an existing clone). Set $env:GOLD_DOTFILES before running the command to use a different clone location.

๐Ÿค“ Manual Setup

Make sure you have these things

  • Git - easiest way to get the files within this project
  • Stow - primary technology for configuration

Tip

For a given application configuration to be useful, the associated software must be installed

Clone this project

git clone https://github.com/jhwohlgemuth/my-shell-setup "${HOME}/.dotfiles"

Install packages

stow --dir "${HOME}/.dotfiles" --target "${HOME}" --stow git neovim ohmyposh powerlevel10k powershell
Package Configuration
Agent skills logo agents Personal AI agent skills installed into ~/.agents โ€” skills/
Waza development and test workflow โ€” README.md
Clojure logo clojure Leiningen user profile, aliases, dependencies, and plugins โ€” profiles.clj
Elixir logo elixir IEx configuration โ€” .iex.exs
Git logo git Configures Delta and adds some useful aliases โ€” .gitconfig
GNU Bash logo gold Collection of utility functions and installation scripts. See the Gold project for motivation and example usage.
Hunk logo hunk Review configuration โ€” config.toml
Neovim logo neovim Usage and plugin guide โ€” README.md
Themes โ€” themes/
Editor configuration โ€” init.vim and general/
Plugin configuration โ€” plug-config/
Nushell logo nushell Shell configuration โ€” config.nu and env.nu
Setup and reusable modules โ€” setup.nu and modules/
OCaml logo ocaml utop configuration โ€” init.ml and .utoprc
Oh My Posh logoOh My Posh logo ohmyposh Theme โ€” .theme.omp.json
Zsh logo powerlevel10k Configuration โ€” .p10k.zsh
PowerShell logo powershell Profile โ€” Microsoft.PowerShell_profile.ps1
Settings โ€” settings.json
Starship logo starship Prompt configuration and default theme โ€” starship.toml and default.toml

Agent skills

Install the agent skills into the home directory target used by the other packages. The package's .agents/ directory maps to ~/.agents:

stow --no-folding --dir "${HOME}/.dotfiles" --target "${HOME}" --stow agents

From the repository root, verify the Stow layout without changing your home directory, then use Waza for static checks, a credential-free mock test, or interactive development:

make agents-stow-check
make agents-check
make agents-test
make agents-dev

The included blank-test skill is a canary for skill discovery. Ask an agent to run the blank test skill after installation; a successful invocation returns BLANK_TEST_SKILL_OK. Pass AGENT_SKILL=<name> to the Waza Make targets to develop another skill. See the agent skills guide for Waza installation and scaffolding.

Remove packages

stow --delete <package names> --target <target>

Docker rootless install

The gold/install_docker script now supports configuring Docker rootless mode for a non-root user.

  • ROOTLESS_USER: Target Linux user for rootless Docker setup. Defaults to nonroot when omitted.
  • ROOTLESS_ONLY: Defaults to 1 (rootless/client components only). Set to 0 to also install and start rootful Docker (docker.service).

Examples:

# Install rootless/client components only (default behavior)
ROOTLESS_USER=jason ./gold/install_docker

# Install rootful Docker and also configure rootless mode for user jason
ROOTLESS_USER=jason ROOTLESS_ONLY=0 ./gold/install_docker

After setup, use the rootless socket for that user session:

export DOCKER_HOST=unix:///run/user/$(id -u)/docker.sock

Update packages

cd "${HOME}/.dotfiles"
git pull origin main
stow --target <target> --restow <package>

๐Ÿ”ฎ What Next?!

Add or improve some packages and/or try developing with containers!


Footnotes

1

Windows Terminal is an open source terminal for the modern developer. Combined with Powershell, anyone can easily enjoy a comfortable and truly robust developer experience on Windows. #cantBelieveItsNotLinux

2

powerlevel10k is a theme for Zsh

3

Example Neovim configuration

Neovim in action!

About

No description, website, or topics provided.

Resources

Contributing

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages