# πŸš€ 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 - `` - 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) --- ## 🎨 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!** πŸš€