Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
283 changes: 258 additions & 25 deletions README.md
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/oc what about the opencode folder on the project, which has agent and skills sets for agentic/ai driver development?

Original file line number Diff line number Diff line change
@@ -1,42 +1,275 @@
# Dotfiles

This repository contains some of my personal dotfiles. Feel free to use them as inspiration to build your own setup from these files.
This repository contains my personal dotfiles and configuration files for a complete Linux development environment. These configurations are optimized for productivity with Neovim, Fish shell, and Hyprland on Wayland.

## Contents
## Overview

- neovim config
- git config
- fish config
- tmux
- hyprland
- wofi
- waybar
- kitty terminal
This dotfiles repository includes configurations for:

## Neovim setup
- **Neovim** - Modern Vim-based text editor with LSP support
- **Fish Shell** - User-friendly command line shell
- **Tmux** - Terminal multiplexer for managing multiple sessions
- **Hyprland** - Dynamic tiling Wayland compositor
- **Waybar** - Highly customizable Wayland bar
- **Wofi** - Application launcher for Wayland
- **Kitty** - Fast, feature-rich, GPU-based terminal emulator
- **Git** - Version control with custom aliases
- **Opencode** - AI-driven development environment with agents and skills

#### Requirements
## Requirements

- Neovim **0.11.2** (needs to be built with **LuaJIT**)
- Git >= **2.34.1** (probably, idk)
- [LazyVim](https://www.lazyvim.org/)
- for [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) **_(optional)_**
- **live grep**: [ripgrep](https://github.com/BurntSushi/ripgrep)
- **find files**: [fd](https://github.com/sharkdp/fd)
- Hyprland
### System Prerequisites

- **OS**: Linux (tested on Arch Linux and similar distributions)
- **Display Server**: Wayland
- **Compositor**: Hyprland

### Fish
### Tool Versions

| Tool | Minimum Version | Notes |
|------|-----------------|-------|
| Neovim | 0.11.2 | Must be built with LuaJIT |
| Fish | 3.6+ | Interactive shell |
| Tmux | 3.3+ | Terminal multiplexer |
| Git | 2.34.1+ | Version control |
| Hyprland | 0.35+ | Wayland compositor |
| Kitty | 0.30+ | GPU terminal emulator |
| Opencode | Latest | AI development environment |

## Installation

### Quick Setup

```bash
# Clone the repository
git clone https://github.com/guilchaves/dotfiles.git ~/.dotfiles
cd ~/.dotfiles

# Install configurations using stow
stow nvim fish kitty tmux hyprland waybar wofi git opencode
```

### Manual Installation

If you prefer to set up configurations manually:

```bash
# Create config directories
mkdir -p ~/.config/{nvim,fish,kitty,hypr,waybar,wofi}

# Symlink configurations
ln -sf ~/.dotfiles/nvim/.config/nvim/* ~/.config/nvim/
ln -sf ~/.dotfiles/fish/.config/fish/* ~/.config/fish/
ln -sf ~/.dotfiles/kitty/.config/kitty/* ~/.config/kitty/
ln -sf ~/.dotfiles/tmux/.tmux.conf ~/
ln -sf ~/.dotfiles/hyprland/.config/hypr/* ~/.config/hypr/
ln -sf ~/.dotfiles/waybar/.config/waybar/* ~/.config/waybar/
ln -sf ~/.dotfiles/wofi/.config/wofi/* ~/.config/wofi/
ln -sf ~/.dotfiles/.gitconfig ~/
```

## Component Details

### Neovim

A modern Neovim configuration built on [LazyVim](https://www.lazyvim.org/) with extensive customizations.

**Key Features:**
- LSP support for 15+ languages (TypeScript, Go, Rust, Python, Ruby, Elixir, and more)
- TreeSitter for syntax highlighting
- Telescope for fuzzy finding
- Oil.nvim for file management
- Copilot integration for AI-assisted coding
- Custom color schemes (Rose Pine, Catppuccin, Kanagawa)

**Required Dependencies:**
```bash
# Telescope.nvim requirements
# For live grep:
sudo pacman -S ripgrep
# For find files:
sudo pacman -S fd
```

**Post-Installation:**
Launch Neovim and run `:Lazy` to install all plugins automatically.

- [Fish shell](https://fishshell.com/)
### Fish Shell

Fish shell with enhanced prompt and productivity plugins.

**Plugins Installed:**
- [Fisher](https://github.com/jorgebucaran/fisher) - Plugin manager
- [Tide](https://github.com/IlanCosman/tide) - Shell theme. Use version 5: `fisher install ilancosman/tide@v5`
- [Tide](https://github.com/IlanCosman/tide) v5 - Shell theme (use: `fisher install ilancosman/tide@v5`)
- [z for fish](https://github.com/jethrokuan/z) - Directory jumping
- [fzf](https://github.com/PatrickF1/fzf.fish) - Interactive filtering
- [nvm.fish](https://github.com/jorgebucaran/nvm.fish) - Node version manager
- [rose-pine/fish](https://github.com/rose-pine/fish) - Color theme

**Installation Steps:**
```bash
# Install Fish
sudo pacman -S fish

# Install Fisher (plugin manager)
curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher

# Install all plugins from fish_plugins file
fisher update

# Set Fish as default shell
chsh -s /usr/bin/fish
```

### Tmux

Tmux configuration optimized for Neovim and Wayland.

**Key Bindings:**
- `Ctrl+s` - Prefix key (instead of Ctrl+b)
- `Prefix + r` - Reload config
- `Prefix + h/j/k/l` - Navigate panes (vim-style)
- Mouse support enabled

**Setup:**
```bash
# Install Tmux
sudo pacman -S tmux

# Install Tmux Plugin Manager (TPM)
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

# Start tmux and press `Prefix + I` to install plugins
```

**True Color Support:**
This configuration includes fixes for Neovim true colors in Tmux based on [this guide](https://www.cyfyifanchen.com/blog/neovim-true-color).

### Hyprland

Dynamic tiling Wayland compositor with custom keybindings and workspace management.

**Configuration Highlights:**
- Dual monitor support (eDP-1 and DP-1)
- Workspaces 1-5 on primary monitor, 6-10 on secondary
- GTK dark theme (Catppuccin Mocha)
- Custom animations and window rules

### Waybar

Customizable status bar with system monitoring.

**Features:**
- Clock and calendar
- CPU, memory, and disk usage
- Network status
- Audio volume control
- System tray
- Hyprland workspace indicators
- Application launcher integration (Wofi)

### Wofi

Application launcher styled with Catppuccin Mocha color scheme.

**Features:**
- Custom CSS styling with rosewater, pink, and mauve accents
- Nerd Font icons support
- Keyboard-driven navigation

### Kitty Terminal

GPU-accelerated terminal with beautiful themes.

**Configuration:**
- Font: JetBrainsMono Nerd Font Mono (size 12)
- Theme: Rose Pine
- Background blur and opacity (0.8)
- True color support

### Git

Comprehensive Git configuration with useful aliases.

**Notable Aliases:**
- `git st` - Short status
- `git co` - Checkout
- `git cm` - Checkout main
- `git cb` - Create and checkout new branch
- `git ca` - Amend commit
- `git ps` - Push current branch to origin
- `git pl` - Pull current branch from origin
- `git hist` - Pretty history graph with relative dates
- `git rollback` - Soft reset to previous commit

**Configuration:**
- Default editor: Neovim
- Diff tool: nvimdiff
- GitHub user: guilchaves
- Case-sensitive file matching

### Opencode (AI Development)

Configuration for [Opencode](https://opencode.ai) - an AI-driven development environment with agents and skills.

**Agent Configuration:**
- **Core Agent** (`agent/core.md`) - Primary agent orchestrating the development workflow through planning, task management, implementation, and review phases
- **Planner Agent** (`agent/subagents/planner.md`) - Analyzes requests and gathers context
- **Task Manager** (`agent/subagents/task-manager.md`) - Breaks down plans into actionable steps
- **Reviewer Agent** (`agent/reviewer.md`) - Validates implementation quality

**Available Skills:**
- **write-a-prd** - Creates Product Requirements Documents through user interviews and codebase exploration
- **prd-to-issues** - Converts PRDs into GitHub issues
- **prd-to-plan** - Transforms PRDs into multi-phase implementation plans using tracer-bullet vertical slices
- **ubiquitous-language** - Extracts DDD-style domain terminology and creates glossaries
- **grill-me** - Stress-tests plans and designs through relentless questioning
- **request-refactor-plan** - Plans refactoring efforts
- **improve-codebase-architecture** - Analyzes and suggests architecture improvements

**Themes:**
- Custom Opencode themes: `opencode-transparent.json`, `ayu-dark.json`

**Installation:**
```bash
# Install opencode configuration
stow opencode
```

## Theme Information

This configuration primarily uses the **Rose Pine** and **Catppuccin Mocha** color schemes across all applications for a consistent visual experience.

## Troubleshooting

### Neovim

**Issue**: LSP not working
- Run `:Mason` to ensure language servers are installed
- Check `:LspInfo` for active clients

**Issue**: Colors not displaying correctly
- Ensure terminal supports true color (256color)
- Check `TERM` environment variable

### Tmux

- add .tmux.conf on ~/
- install Tmux Plugin Manager
- neovim colorscheme on tmux fixed based on this [article](https://www.cyfyifanchen.com/blog/neovim-true-color)
**Issue**: Colors look wrong in Neovim
- Verify `default-terminal` is set to `xterm-256color`
- Ensure terminal-overrides includes `Tc` flag

### Fish

**Issue**: Tide prompt not loading
- Run `fisher install ilancosman/tide@v5`
- Configure with `tide configure`

## License

Feel free to use these configurations as inspiration for your own setup. This is a personal configuration repository, so modify as needed for your workflow.

## Credits

- [LazyVim](https://www.lazyvim.org/) - Neovim configuration framework
- [Catppuccin](https://catppuccin.com/) - Soothing color scheme
- [Rose Pine](https://rosepinetheme.com/) - All-natural pine, faux fur and a bit of soho vibes