Files
dotfiles/README.md

254 lines
6.0 KiB
Markdown

# 🚀 Dotfiles - QA Engineer Dev Setup
Meine persönliche Development-Umgebung optimiert für:
- **TypeScript/Playwright** Testing (QA bei Mobilistics)
- **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
- **btop** - Ressourcen-Monitor (Primary)
- **htop** - Fallback Monitor (wenn btop abstürzt)
- **neofetch** - System Info
- **yabai** - Tiling Window Manager (macOS)
---
## 🔧 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
# Core tools installieren
brew install git neovim fish starship fzf ripgrep fd bat btop
brew install --cask ghostty
# 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
# 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)
│ └── starship.toml # Prompt config
├── install.sh # Automated setup
└── README.md # This file
```
---
## 🎯 Neovim Keybindings (Wichtigste)
### General
- `<Space>` - Leader key
- `<leader>ee` - Go error handling snippet
### File Navigation
- `<leader>ff` - Telescope find files
- `<leader>fg` - Telescope live grep
- `<leader>fb` - Telescope buffers
- `<leader>e` - Neo-tree toggle
### Harpoon (File Switching)
- `<leader>a` - Mark file
- `<leader>h` - Harpoon menu
- `<C-j>` - Jump to file 1
- `<C-k>` - Jump to file 2
- `<C-l>` - Jump to file 3
- `<C-;>` - Jump to file 4
### Git
- `<leader>gs` - Git status (Fugitive)
- `<leader>gg` - LazyGit
### LSP
- `gd` - Go to definition
- `gr` - Go to references
- `K` - Hover documentation
- `<leader>ca` - Code actions
- `<leader>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)
---
## 🎨 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
**NVM Integration** - 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!** 🚀