gemini-expert
Expert knowledge base for Gemini CLI capabilities, configuration, and state-of-the-art prompting techniques. Activate this skill when creating or modifying Gemini skills, custom commands, hooks, GEMINI.md context files, or when crafting prompts for other AI agents.
SKILL.md
| Name | gemini-expert |
| Description | Expert knowledge base for Gemini CLI capabilities, configuration, and state-of-the-art prompting techniques. Activate this skill when creating or modifying Gemini skills, custom commands, hooks, GEMINI.md context files, or when crafting prompts for other AI agents. |
🏠 dotfiles
Cross-platform dotfiles managed with GNU Stow — macOS, Arch Linux, and Windows.
Features
- Multi-platform — one repo for macOS, Arch Linux, and Windows
- GNU Stow — declarative symlink management with
dot-prefix convention - Catppuccin Macchiato — consistent theme across 9+ tools
- Lazy-loaded shell — fast Zsh startup with deferred nvm/pyenv/jenv loading
- AI-augmented — Claude Code skills, hooks, MCP servers, and Copilot integration
- 60+ CLI tools — curated Brewfile with modern replacements for classic Unix tools
- Session persistence — tmux-resurrect + tmux-continuum survive reboots
- Security — gitleaks pre-commit hook, Bitwarden CLI, rclone cloud backup
What's Inside
Terminal & Shell
| Tool | Description |
|---|---|
| Ghostty | GPU-accelerated terminal emulator |
| Zsh + Oh-My-Zsh | Shell with plugins (autosuggestions, syntax highlighting) |
| Starship | Cross-shell prompt |
| atuin | Shell history database with fuzzy search |
| direnv | Per-directory environment variables |
| fzf-tab | Fuzzy tab completion for zsh |
| Nushell | Structured data shell (secondary) |
Editor
| Tool | Description |
|---|---|
| Neovim | Primary editor — lazy.nvim, LSP, DAP, Telescope, Treesitter |
| VSCode | GUI editor with synced settings |
Terminal Multiplexer
| Tool | Description |
|---|---|
| tmux | Session management with TPM, resurrect, continuum, fzf integration |
CLI Replacements
| Classic | Replacement | Description |
|---|---|---|
ls | eza | Modern ls with icons and git status |
cat | bat | Syntax-highlighted cat |
cd | zoxide | Smarter cd with frecency |
find | fd | Simpler, faster find |
grep | ripgrep | Faster grep |
top | btop | Resource monitor |
git (TUI) | lazygit | Terminal UI for git |
| — | fzf | Fuzzy finder for everything |
Ctrl+R | atuin | Shell history with fuzzy search, sync, per-directory filtering |
| — | television | TUI data browser (git, docker, brew, sessions) |
| — | glow | Terminal markdown renderer |
| — | fastfetch | System info |
Dev Tools
| Tool | Purpose |
|---|---|
| Docker | Containers |
| k9s | Kubernetes TUI |
| Postman | API testing |
| nvm / pyenv / jenv / chruby | Version managers (Node, Python, Java, Ruby) |
| rustup | Rust toolchain |
| Go, Lua | Additional languages |
| uv | Python package manager |
| bun | JavaScript runtime & bundler |
AI Tools
| Tool | Purpose |
|---|---|
| Claude Code | AI coding assistant with custom skills & hooks |
macOS Extras
| Tool | Purpose |
|---|---|
| Karabiner-Elements | Keyboard customization |
| Hammerspoon | macOS automation |
| AltTab | Windows-style alt-tab |
| BoringNotch | Notch utility |
| pam-reattach | Touch ID in tmux |
Security & Backup
| Tool | Purpose |
|---|---|
| Bitwarden CLI | Password management |
| gitleaks | Pre-commit secret scanning |
| rclone | Cloud storage sync (installed from the official binary, not brew — FUSE required for rclone mount) |
🎨 Catppuccin Macchiato
A consistent Catppuccin Macchiato theme applied across:
- Ghostty
- Neovim
- tmux
- Starship prompt
- Zsh syntax highlighting
- fzf
- bat
- btop
- lazygit
- atuin
- television
- glow
- VSCode
Installation
macOS
git clone https://github.com/Raphael67/dotfiles.git ~/Projects/dotfiles
cd ~/Projects/dotfiles
./setup_macos.sh # Xcode CLI, Homebrew, Brewfile, oh-my-zsh, stow
Arch Linux / WSL
git clone https://github.com/Raphael67/dotfiles.git ~/Projects/dotfiles
cd ~/Projects/dotfiles
./setup_archlinux.sh # pacman packages, oh-my-zsh, zsh plugins
Windows (PowerShell as Admin)
.\setup_windows.ps1 # Full setup
.\setup_windows.ps1 -SkipApps # Skip package installation
.\setup_windows.ps1 -SkipWSL # Skip WSL configuration
After any setup script, apply symlinks:
stow .
How It Works
This repo uses GNU Stow with a dot- prefix convention.
- Source files live in
dotfiles/— e.g.,dotfiles/dot-zshrc - Stow creates symlinks in
~/— e.g.,~/.zshrc → dotfiles/dot-zshrc - The
dot-prefix is converted to.automatically - Configuration in
.stowrc:
--dir=./dotfiles
--target=~/
--dotfiles
--ignore='\.DS_Store'
Always run stow . from the repo root, never stow <package>.
Shell Performance
Zsh loads fast thanks to lazy loading of version managers:
# nvm, pyenv, and jenv are NOT loaded at shell startup.
# They initialize on first use of node/npm/python/java commands.
# This keeps shell startup under ~200ms.
Key Aliases
| Alias | Command | Description |
|---|---|---|
ls | eza | Icons, git status, grouped dirs |
cat | bat | Syntax highlighting |
lg | lazygit | Git TUI |
v / vi | nvim | Neovim |
g | git | Git shorthand |
gs | git status | Status |
gc | git commit | Commit |
gp | git push | Push |
gap | git add --patch | Interactive staging |
gqc | quick commit | Auto-prepends ticket ID from branch |
c | clear | Clear terminal |
e | exit | Exit shell |
| Alias | Command |
|---|---|
ga | git add |
gco | git checkout |
gd | git diff |
gds | git diff --staged |
gl | git log --graph (pretty) |
gf | git fetch |
gb | git branch |
gm | git merge |
gup | git pull --rebase |
gafzf | fzf-powered git add |
gcofzf | fzf-powered branch checkout |
r | ranger |
Neovim
Plugin manager: lazy.nvim — plugins load on demand.
Highlights:
- LSP + blink.cmp — language servers with ghost text completion, fuzzy matching
- DAP — debug adapter protocol
- Telescope — fuzzy finder for files, grep, buffers
- Treesitter — syntax highlighting and code objects
- Neo-tree — file explorer
- Harpoon — quick file navigation
- Aerial — symbol outline
- Gitsigns — inline git blame/hunks
- Bufferline — tab-style buffer management
- Lualine — statusline
- vim-tmux-navigator — seamless tmux/nvim pane switching
- mini.surround — add/delete/replace surroundings (quotes, brackets, tags)
- flash.nvim — label-based motions and jumps
- noice.nvim — floating cmdline, notifications, LSP UI
- Claude + Copilot — AI code assistance
tmux
Plugins (via TPM):
- tmux-resurrect — save/restore sessions across reboots
- tmux-continuum — auto-save every 15 min, auto-restore on start
- tmux-fzf — fzf integration for sessions, windows, panes
- tmux-fzf-url — open URLs from scrollback with fzf
- tmux-yank — clipboard integration
- tmux-cpu / tmux-battery — status bar widgets
- tmux-sessionx — fuzzy session manager with zoxide integration
- tmux-floax — floating popup panes
- vim-tmux-navigator — seamless Ctrl+h/j/k/l across tmux/nvim
- catppuccin/tmux — themed status bar
Claude AI Integration
This repo includes a full Claude Code setup deployed via stow to ~/.claude/:
- 14+ custom skills — dotfiles management, document generation (docx, xlsx, pptx, pdf), visual assets, browser automation, prompt engineering, and more
- Damage control hooks — safety hooks that review Bash, Edit, and Write tool calls against destructive patterns
- MCP servers — Atlassian, Playwright, Context7 (library docs), iCal, and more
- Custom commands — context priming, parallel agent orchestration
Tips
Ghostty SSH terminfo
Copy Ghostty terminal info to remote servers:
infocmp -x xterm-ghostty | ssh user@server 'tic -x -'
Karabiner troubleshooting
If Karabiner-Elements stops working after a macOS update, see: karabiner-elements#3620
Inspired By
Built with GNU Stow, Catppuccin, lazy.nvim, TPM, and Oh-My-Zsh.
<p align="center"> <a href="https://buymeacoffee.com/guilyguily"> <img src="https://img.shields.io/badge/Buy_Me_A_Coffee-FFDD00?style=for-the-badge&logo=buy-me-a-coffee&logoColor=black" alt="Buy Me A Coffee" /> </a> </p>