Skip to content

just1jray/dots

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

150 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

dots βš«οΈπŸ”΅πŸ”΄βšͺ️

ShellCheck

A collection of dotfiles to make my life at the command line easier (or harder).

Found, borrowed, stolen, picked, and pulled from peers, colleagues, blogs, forums, posts, AI, Claude, and more. Refined through daily use at home, on the job, and remotely.

Used across various platforms for various things.


✨ Features

  • 🎨 Catppuccin Mocha theme across Ghostty, fzf, and Neovim
  • βš™οΈ Automated setup with intelligent backup and symlink management
  • πŸ’» Platform-specific profiles for macOS and Linux
  • πŸš€ Modern tooling with Starship prompt, Zinit plugin manager, and NVChad
  • ⌨️ Vi mode keybindings in zsh for modal editing
  • πŸͺŸ Tmux integration with plugin management and custom layouts
  • πŸ€– Claude Code configuration with custom skills and git safety hooks

πŸ”§ Tools & Prerequisites

Required:

  • πŸ”— Git - Version control (required for setup and plugin management)
  • 🐚 zsh - Shell (recommended as default shell)
  • πŸ“₯ curl or wget - For downloading plugins

🍎 macOS:

Recommended:

  • πŸ‘» Ghostty - Fast, feature-rich terminal emulator
  • πŸ”€ JetBrains Mono Nerd Font - Nerd Font with icon support (required for prompt symbols)
  • 🌟 Starship - Fast, customizable cross-shell prompt
  • πŸ“ Neovim - Modern vim with NVChad configuration
  • πŸͺŸ tmux - Terminal multiplexer with plugin support
  • πŸ” fzf - Fuzzy finder for command history and file search
  • πŸ“‚ zoxide - Smarter cd command

Optional:

  • 🎨 vivid - LS_COLORS generator (Catppuccin theme)
  • πŸ“‘ mosh - Mobile shell for better remote connections
  • 🐍 pyenv - Python version manager
  • πŸ“¦ nvm - Node version manager
  • πŸ₯Ÿ Bun - Fast JavaScript runtime and package manager
  • πŸ€– Claude Code - AI-powered coding assistant CLI

The setup script automatically installs Zinit plugin manager, NVChad, and Tmux Plugin Manager.

πŸ–₯️ Platforms

  • 🍎 macOS
  • 🐧 Linux
  • πŸ“± iPadOS (via Blink)

πŸ“¦ Installation

βœ… Check Prerequisites

Run this command to check which tools are installed:

for cmd in git zsh curl wget starship nvim tmux fzf zoxide; do command -v $cmd >/dev/null && echo "βœ“ $cmd" || echo "βœ— $cmd"; done

πŸš€ Quick Start

git clone https://github.com/just1jray/dots.git ~/Developer/src/dots
cd ~/Developer/src/dots
./setup.sh

πŸŽ›οΈ Setup Script Options

./setup.sh [options]

Options:
  -h, --help          Show help message
  -f, --force         Force overwrite without backup
  -n, --dry-run       Preview changes without applying
  -s, --skip-plugins  Skip plugin installation
  -c, --check-nvchad  Check NVChad installation status

πŸ“‹ What the Setup Script Does

  1. πŸ“ Creates necessary directories for configs and plugins
  2. πŸ’Ύ Backs up existing configs (unless --force is used)
  3. πŸ”— Symlinks config files to proper locations:
    • ~/.zshrc β†’ zsh/zshrc
    • ~/.config/starship.toml β†’ starship/starship.toml
    • ~/.config/nvim/ β†’ nvim/
    • ~/.tmux.conf β†’ tmux/tmux.conf
    • ~/.vimrc β†’ vim/vimrc
    • ~/.claude/ β†’ claude/ (if Claude Code is installed)
  4. πŸ”Œ Installs Zinit plugin manager for zsh
  5. πŸ“ Installs NVChad for Neovim (if nvim is installed)
  6. πŸͺŸ Installs Tmux Plugin Manager (TPM) and plugins
  7. πŸ’» Loads platform-specific profiles based on OS

πŸ› οΈ Customization

πŸ’» Platform-Specific Settings

The zshrc automatically loads platform-specific profiles:

  • 🍎 macOS: Sources ~/.config/zsh/profile-macos
  • 🐧 Linux: Sources ~/.config/zsh/profile-linux

Add platform-specific environment variables, paths, or aliases to these files.

🌟 Starship Prompt

Edit starship/starship.toml to customize your prompt appearance and modules.

πŸ‘» Ghostty

The ghostty/config includes several customizations:

  • ⚑ Quick terminal - Toggle terminal with ctrl+`` (requires Ghostty 1.1+)
  • βœ‚οΈ Split keybindings:
    • cmd+shift+enter - Horizontal split
    • cmd+opt+enter - Vertical split
    • cmd+d - Close split

πŸ“ NVChad

Customize Neovim by editing files in nvim/lua/:

  • chadrc.lua - NVChad theme and UI settings
  • options.lua - Vim options
  • mappings.lua - Custom keybindings
  • plugins/ - Plugin configurations

πŸ€– Claude Code

The dotfiles include Claude Code configuration in the claude/ directory:

  • πŸͺ hooks/ - Custom hook scripts
    • stop-hook-git-check.sh - Git safety hook that prevents closing sessions with uncommitted/unpushed changes
  • πŸ’¬ commands/ - Custom slash commands
    • /review-edu - Educational code review command
  • 🧠 skills/ - Custom Claude Code skills
    • session-start-hook/ - Skill for creating startup hooks in repositories
    • code-review-edu/ - Thorough code review skill (triggers on "review this code", "find bugs", etc.)

The setup script automatically symlinks ~/.claude/ to the claude/ directory in this repository.

Note: Claude Code will create additional directories in ~/.claude/ for session data, plans, and other runtime files. These are managed by Claude and not tracked in this dotfiles repository.


Open to suggestions, feedback, pull requests, forks, and/or ridicule.

About

βš«οΈπŸ”΅πŸ”΄βšͺ️

Topics

Resources

Stars

Watchers

Forks

Contributors