Skip to content

JoannaaKL/dotfiles

Repository files navigation

Dotfiles

Shell Lint

Opinionated workstation + Codespaces bootstrap.

Features

  • Idempotent install.sh with:
    • Environment detection (local vs Codespaces)
    • Neovim install + minimal config bootstrap
    • Spaceship ZSH theme setup
    • Meslo Nerd Font install (skips if present)
    • Safe dotfile symlinking (backs up existing files)
    • Optional GitHub Copilot CLI extension
    • Delta (syntax highlighted pager) install
  • Managed Codespaces SSH config export (export_codespace_cfg)
  • Codespace cleanup utility (clean-codespaces.sh --dry-run)
  • Shell linting via GitHub Actions + local make lint.

Libraries and Packages

Shell & Terminal

  • Oh My Zsh - Zsh framework for managing configuration
  • Spaceship Prompt - Minimalistic and powerful Zsh prompt
  • tmux - Terminal multiplexer
  • fzf - Command-line fuzzy finder

Editors

  • Neovim - Hyperextensible Vim-based text editor

CLI Utilities

  • bat - A cat clone with syntax highlighting
  • ripgrep - Fast line-oriented search tool
  • git-delta - Syntax-highlighting pager for git
  • GitHub CLI - GitHub's official command-line tool
  • GitHub Copilot CLI - AI-powered CLI extension for GitHub CLI

Fonts

Development Tools

  • ShellCheck - Static analysis tool for shell scripts

Oh My Zsh Plugins

  • git - Git aliases and functions
  • alias-finder - Find existing aliases
  • kubectl - Kubectl autocompletion and aliases
  • docker - Docker autocompletion and aliases
  • gh - GitHub CLI autocompletion

Setup Instructions

Prerequisites

  • macOS: Homebrew installed
  • Linux/Codespaces: apt-get package manager available
  • Both: git, curl, and zsh installed

Installation

  1. Clone the repository:

    git clone https://github.com/JoannaaKL/dotfiles.git
    cd dotfiles
  2. Run the install script:

    ./install.sh
  3. Start a new shell or source the configuration:

    source ~/.zshrc

What the Install Script Does

The install.sh script performs the following actions:

  1. Preflight checks - Verifies required tools (git, curl) are available
  2. Environment-specific setup:
    • Codespaces: Installs tmux, bat, ripgrep, neovim, and shellcheck via apt-get
    • Local (macOS): Installs the same tools via Homebrew
  3. Symlinks dotfiles - Creates symlinks for configuration files (.gitconfig, .zshrc, .tmux.conf, etc.) with automatic backup of existing files
  4. Installs fonts - Downloads and installs Meslo Nerd Font
  5. Sets up Spaceship theme - Clones and configures the Spaceship Zsh theme

Manual Setup (Optional)

If you prefer to install components individually:

Linting Shell Scripts

Run locally:

make lint

The CI workflow runs automatically on pushes and pull requests touching any *.sh files.

Codespaces SSH Config Export

./export_codespace_cfg

This inserts/updates a managed block in ~/.ssh/config between markers:

# >>> codespaces (managed) >>>
# <<< codespaces (managed) <<<

Cleaning Shutdown Codespaces

Preview:

./clean-codespaces.sh --dry-run

Execute deletions:

./clean-codespaces.sh

Future Ideas

  • Brewfile / apt manifest abstraction
  • Tmux plugin manager integration
  • Advanced Neovim config module

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages