Skip to content

ZSH · Starship · Neovim · Opencode — fast terminal configs

Notifications You must be signed in to change notification settings

plutowang/term.conf

Repository files navigation

Terminal Configuration

Neovim Startup Time ZSH Startup Time Platform License

A high-performance terminal configuration optimized for speed and developer productivity, now featuring OpenCode AI skills integration.

Quick Start

Prerequisites

System Requirements

# Command line developer tools (required for compilation)
xcode-select --install

# Install Rust (needed for tree-sitter-cli)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env

# Neovim (latest version)
brew install neovim

# Essential development tools
brew install git make cmake

Complete Development Environment Setup

# Install Rust (for tree-sitter-cli)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env

# Essential Neovim utilities
brew install neovim git make cmake lazygit pngpaste ripgrep fd bat

# Tree-sitter CLI (required for nvim-treesitter main branch)
cargo install tree-sitter-cli

# Essential terminal utilities
brew install starship fzf zoxide eza

# ZSH enhancements
brew install zsh-fast-syntax-highlighting

# Update shell configuration (use .zshenv for environment variables)
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> ~/.zshenv
source ~/.zshenv

Optional but Recommended Enhancements

# Nerd Font for icons (required for proper icon display)
brew install font-jetbrains-mono-nerd-font
# OR download from: https://www.nerdfonts.com/font-downloads

# Ghostty cursor shader effects (optional but recommended)
git clone https://github.com/sahaj-b/ghostty-cursor-shaders ~/.config/ghostty/shaders
# Available shaders: cursor_sweep.glsl, cursor_warp.glsl, rectangle_boom_cursor.glsl,
# ripple_rectangle_cursor.glsl, cursor_tail.glsl, ripple_cursor.glsl, sonic_boom_cursor.glsl

Plugin Dependencies: For detailed information about Neovim plugin dependencies and external requirements, see nvim/README.md.

Installation

  1. Backup existing configurations:

    # Backup ZSH config
    [[ -f ~/.zshrc ]] && mv ~/.zshrc ~/.zshrc.backup.$(date +%Y%m%d_%H%M%S)
    
    # Backup Neovim config
    [[ -d ~/.config/nvim ]] && mv ~/.config/nvim ~/.config/nvim.backup.$(date +%Y%m%d_%H%M%S)
  2. Clone and setup:

    git clone https://github.com/plutowang/term.conf.git
    cd term.conf
    
     # Option 1: Use the setup tool (fast, selective installation)
     ./term_conf link --help           # See all options
     ./term_conf link --all            # Setup everything
     ./term_conf link --zsh --starship # Setup only ZSH and Starship
     ./term_conf link --nvim           # Setup only Neovim
     ./term_conf --dry-run link --all  # Preview changes first
    
    # Option 2: Use bash script (simple, all configurations)
    ./setup-symbolic-links.sh

Configuration Structure

term.conf/
├── nvim/                   # Neovim configuration
│   ├── init.lua           # Main configuration
│   ├── lua/enhancement/   # Custom plugins & configs
│   └── eval_startuptime.zig # Startup time benchmarking
├── opencode/              # OpenCode AI skills
│   ├── global/            # Global skills (system-wide)
│   ├── inventory/         # Individual skills library
│   └── README.md          # Skills setup documentation
├── terminal/
│   ├── zsh/               # ZSH configuration
│   ├── ghostty/           # Ghostty terminal config
│   └── starship/          # Starship prompt config
├── setup-cli/             # Zig setup tool source code
│   ├── main.zig           # Main entry point with zlap parser
│   ├── commands/          # Command handlers
│   │   ├── link.zig       # Link command handler
│   │   └── opencode.zig   # OpenCode command handler
│   └── core/              # Core utilities
│       ├── symlink.zig    # Symlink creation logic
│       ├── config.zig     # Configuration types
│       └── skills.zig     # Skill discovery
├── zig-out/bin/           # Compiled binaries
├── term_conf              # Setup tool executable (release build)
├── build.zig              # Zig build configuration
└── build.zig.zon          # Zig package manifest

Setup Tool

A Zig CLI tool using zlap for managing configurations.

# Link configurations
./term_conf link               # All configs
./term_conf link --nvim        # Specific config
./term_conf link --help        # See all options

# OpenCode skills
./term_conf opencode                      # Global skills
./term_conf opencode --skills angular,go  # Specific skills (comma-separated)
./term_conf opencode --help               # See all options

# Preview changes
./term_conf --dry-run link --all
./term_conf --dry-run opencode --global

Use --help on any command to see all available options and flags.

Features:

  • Selective installation (choose specific components)
  • Automatic backup of existing configurations
  • Colorized logging with clear feedback
  • Smart symlink detection and handling

Option 2: setup-symbolic-links.sh (Complete Setup)

Simple bash script that sets up all configurations:

./setup-symbolic-links.sh

Features:

  • One-command setup (installs everything)
  • Automatic backup of existing configurations
  • Works on all POSIX systems
  • Complete installation with no options needed

Bash Setup Script (Legacy)

  • Compatibility: Works on all POSIX systems
  • Simple: All-or-nothing installation
  • Usage: ./setup-symbolic-links.sh

OpenCode AI Skills

This configuration includes OpenCode AI skills for enhanced development workflows. The skills provide specialized assistance for various programming languages and frameworks.

Available Skills

  • Languages: Go, Rust, Zig, C#
  • Frameworks: React, Angular, AWS
  • Tools: Git workflow, Code review, Development workflows

For detailed setup instructions and available skills, see opencode/README.md.

About

ZSH · Starship · Neovim · Opencode — fast terminal configs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published