# 🚀 Dotfiles - QA Engineer Dev Setup Meine persönliche Development-Umgebung optimiert für: - **TypeScript/Playwright** Testing (QA) - **Go** Development (Benchmarking & Learning) - **Fish Shell** mit modernen Tools - **Ghostty** Terminal - **Neovim** (Scratch Build - kein Framework!) --- ## 📦 Was ist enthalten? ### Core Tools - **Neovim** - Scratch config mit lazy.nvim (TypeScript/Go optimiert) - **Fish Shell** - Mit Fisher, NVM, FZF Integration - **Ghostty** - Modernes Terminal mit Tokyo Night Theme - **Starship** - Cross-shell prompt ### Development - **LSP Support**: TypeScript (ts_ls), Go (gopls), Lua, HTML, CSS, JSON, YAML - **Completion**: nvim-cmp mit Snippets - **Navigation**: Harpoon, Telescope, Neo-tree - **Git**: LazyGit, Fugitive, Gitsigns - **Formatting**: Conform (Prettier, Black, gofumpt) ### System Monitoring & Window Managers - **btop** - Ressourcen-Monitor (Primary) - **htop** - Fallback Monitor (wenn btop abstürzt) - **neofetch** - System Info - **yabai** - Tiling Window Manager (macOS) - **Hyprland** - Dynamic tiling Wayland compositor (Linux) --- ## 🔧 Installation ### Schnellstart (macOS/Linux) ```bash # 1. Clone das Repo git clone https://github.com/yourusername/dotfiles.git ~/gits/dotfiles # 2. Run install script cd ~/gits/dotfiles chmod +x install.sh ./install.sh # 3. Restart terminal # 4. Open Neovim (plugins werden automatisch installiert) nvim ``` ### Manuelle Installation ```bash # Custom taps hinzufügen (für Yabai) brew tap koekeishiya/formulae # Core & Development tools installieren brew install git neovim fish starship fzf ripgrep fd bat btop neofetch direnv lazygit mise yabai tmux brew install --cask ghostty 1password-cli # Symlinks erstellen ln -sf ~/gits/dotfiles/.config/fish ~/.config/fish ln -sf ~/gits/dotfiles/.config/nvim ~/.config/nvim ln -sf ~/gits/dotfiles/.config/ghostty ~/.config/ghostty ln -sf ~/gits/dotfiles/.config/starship.toml ~/.config/starship.toml ln -sf ~/gits/dotfiles/.config/neofetch ~/.config/neofetch ln -sf ~/gits/dotfiles/.config/yabai ~/.config/yabai ln -sf ~/gits/dotfiles/.config/hypr ~/.config/hypr # Btop & Htop Konfigurationsdateien verlinken mkdir -p ~/.config/btop ~/.config/htop ln -sf ~/gits/dotfiles/.config/btop/btop.conf ~/.config/btop/btop.conf ln -sf ~/gits/dotfiles/.config/htop/htoprc ~/.config/htop/htoprc # Tmux Konfiguration verlinken (modern & klassisch) mkdir -p ~/.config/tmux ln -sf ~/gits/dotfiles/.config/tmux/tmux.conf ~/.config/tmux/tmux.conf ln -sf ~/gits/dotfiles/.config/tmux/tmux.conf ~/.tmux.conf # Fish als default shell chsh -s $(which fish) ``` --- ## 📁 Struktur ``` dotfiles/ ├── .config/ │ ├── fish/ # Fish shell config + plugins │ │ ├── conf.d/ # Auto-loaded configs │ │ ├── functions/ # Fish functions │ │ └── config.fish # Main config │ ├── ghostty/ # Terminal config + themes │ ├── nvim/ # Neovim scratch config │ │ ├── lua/ │ │ │ ├── core/ # Options, keymaps, lazy.nvim │ │ │ └── plugins/ # Plugin configs (modular!) │ │ └── init.lua # Entry point │ ├── btop/ # System monitor config (primary) │ ├── htop/ # System monitor fallback │ ├── neofetch/ # System info config │ ├── yabai/ # Window manager (macOS) │ ├── hypr/ # Window manager (Linux/Wayland) │ └── starship.toml # Prompt config ├── install.sh # Automated setup └── README.md # This file ``` --- ## 🎯 Neovim Keybindings (Wichtigste) ### General - `` - Leader key - `ee` - Go error handling snippet ### File Navigation - `ff` - Telescope find files - `fg` - Telescope live grep - `fb` - Telescope buffers - `e` - Neo-tree toggle ### Harpoon (File Switching) - `a` - Mark file - `h` - Harpoon menu - `` - Jump to file 1 - `` - Jump to file 2 - `` - Jump to file 3 - `` - Jump to file 4 ### Git - `gs` - Git status (Fugitive) - `gg` - LazyGit ### LSP - `gd` - Go to definition - `gr` - Go to references - `K` - Hover documentation - `ca` - Code actions - `rn` - Rename --- ## 🔄 Updates ```bash # Dotfiles updaten cd ~/gits/dotfiles git pull # Neovim plugins updaten nvim :Lazy sync # Fish plugins updaten fisher update ``` --- ## 🛠️ Anpassungen ### Neovim - **Neue Sprache hinzufügen**: Editiere `~/.config/nvim/lua/plugins/lsp.lua` - **Neues Plugin**: Erstelle neue Datei in `~/.config/nvim/lua/plugins/` - **Keymaps ändern**: Editiere `~/.config/nvim/lua/core/keymaps.lua` ### Fish - **Neue Aliases**: `~/.config/fish/conf.d/aliases.fish` - **Environment Variables**: `~/.config/fish/conf.d/paths.fish` - **Functions**: Neue Datei in `~/.config/fish/functions/` ### Ghostty - **Theme ändern**: Editiere `~/.config/ghostty/config` - **Neue Themes**: Hinzufügen in `~/.config/ghostty/themes/` --- ## 🐛 Troubleshooting ### Neovim Plugins laden nicht ```bash # Lazy.nvim neu installieren rm -rf ~/.local/share/nvim nvim ``` ### Fish Plugins fehlen ```bash # Fisher neu installieren curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source fisher install jorgebucaran/fisher fisher update ``` ### LSP funktioniert nicht ```bash # Mason servers neu installieren nvim :Mason # Dann manuell die benötigten Server installieren ``` --- ## 📝 System Requirements ### Minimum - **OS**: macOS 12+, Linux (Arch, Debian, Fedora) - **Neovim**: 0.10+ - **Git**: 2.30+ - **Fish**: 3.5+ ### Recommended - **Neovim**: 0.11+ (für moderne LSP APIs) - **Terminal**: Ghostty, iTerm2, Alacritty - **Font**: Nerd Font (für Icons) --- ## 🤖 KI / AI CLI Tools (Optional) Das Installationsskript kann optional verschiedene KI-Kommandozeilentools für Sie einrichten: * **Google Antigravity CLI (`agy`)**: Das primäre AI-Agent-Werkzeug für dieses Setup. * Installation: `curl -sS https://antigravity.google/install.sh | bash` * **Claude Code (`@anthropic-ai/claude-code`)**: Anthropic's offizielles, agentisches Terminal-Tool für Claude. * Installation (via Mise): `mise exec -- npm install -g @anthropic-ai/claude-code` * **LLM CLI (`llm`)**: Simon Willison's CLI für den universellen API-Zugriff auf ChatGPT, Claude und DeepSeek über Plugins. * Installation: `brew install llm` bzw. `pip install llm` * Plugins: `llm install llm-claude llm-gpt3 llm-deepseek` * **tgpt**: Ein Zero-Config Terminal ChatGPT Client (benötigt keinen API-Key). * Installation: `brew install tgpt` * **Ollama**: Zum lokalen Offline-Ausführen von Modellen wie `deepseek-coder`. * Installation: `brew install --cask ollama` (macOS) bzw. `curl -fsSL https://ollama.com/install.sh | sh` (Linux) * Ausführen: `ollama run deepseek-coder` --- ## 🎨 Features ### Neovim ✅ **Scratch Build** - Kein Framework, volle Kontrolle ✅ **Modern APIs** - Neovim 0.11 ready ✅ **TypeScript/Playwright** - Optimiert für QA ✅ **Go Support** - gopls mit gofumpt ✅ **Modular** - Jedes Plugin in eigener Datei ✅ **Lazy Loading** - Schneller Start ### Fish Shell ✅ **Mise Integration** - Modernes Tool- & Node-Version-Management ✅ **FZF Integration** - Fuzzy finding everywhere ✅ **Git Shortcuts** - Aliases für häufige Commands ✅ **Kubernetes** - kubectl completion ✅ **Auto-completion** - Für Docker, Git, etc. --- ## 📚 Resources - [Neovim Docs](https://neovim.io/doc/) - [Fish Shell Docs](https://fishshell.com/docs/current/) - [Ghostty Terminal](https://ghostty.org/) - [lazy.nvim](https://github.com/folke/lazy.nvim) - [ThePrimeagen's Neovim Setup](https://github.com/ThePrimeagen/init.lua) --- ## 📄 License MIT - Do whatever you want with it! --- ## 🙏 Credits - **Neovim** Community - **ThePrimeagen** - Harpoon & Inspiration - **folke** - lazy.nvim, tokyonight - **Fish Shell** Community - **Ghostty** Team --- **Happy Coding!** 🚀