254 lines
6.0 KiB
Markdown
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!** 🚀
|