-
Notifications
You must be signed in to change notification settings - Fork 0
Updated README with full installation docs and guides. #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
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?