# Dotfiles

Personal dotfiles for development environment configuration.

## Structure

```
nvim/                   # Neovim config (symlink to ~/.config/nvim)
├── init.lua
└── lua/
    ├── config/
    │   ├── autocmds.lua
    │   ├── keymaps.lua
    │   └── options.lua
    └── plugins/
        ├── bufferline.lua
        ├── cmp.lua
        ├── colorscheme.lua
        ├── editor.lua
        ├── git.lua
        ├── lsp.lua
        ├── lualine.lua
        ├── session.lua
        ├── telescope.lua
        └── treesitter.lua

bazzite/                # Bazzite (Fedora) + Niri compositor configs
├── niri/config.kdl
├── btop/btop.conf
├── glow/glow.yml
├── gtk-3.0/
│   ├── colors.css
│   ├── gtk.css
│   └── settings.ini
├── gtk-4.0/
│   ├── colors.css
│   ├── gtk.css
│   └── settings.ini
├── fuzzel/fuzzel.ini
├── waybar/
│   ├── config.jsonc
│   └── style.css
├── xsettingsd/xsettingsd.conf
├── environment.d/intel-gtk-fix.conf
└── autostart/steam.desktop
```

## Neovim

Requires Neovim 0.11+ — uses native APIs (`vim.lsp.config`, `vim.lsp.enable`, built-in treesitter).

**Plugin manager:** lazy.nvim (auto-bootstraps on first launch).

**Leader key:** Space.

### Languages

Rust, Zig, TypeScript/JavaScript, C/C++.

### LSP servers

| Server | Language | Install |
|---|---|---|
| rust-analyzer | Rust | `rustup component add rust-analyzer` (via rustaceanvim) |
| clangd | C/C++ | auto-installed via mason |
| ts_ls | TypeScript/JS | auto-installed via mason |
| zls | Zig | `brew install zls` |

### Key plugins

telescope, treesitter, nvim-cmp, bufferline, neo-tree, gitsigns, lazygit, lualine, which-key, persistence, alabaster theme.

## Bazzite

Configs for Bazzite (Fedora Atomic) with Niri Wayland compositor.

| Config | Description |
|---|---|
| `niri/config.kdl` | Niri compositor |
| `fuzzel/fuzzel.ini` | App launcher |
| `waybar/` | Top panel (config + style) |
| `btop/btop.conf` | System monitor |
| `glow/glow.yml` | Terminal markdown viewer |
| `gtk-3.0/`, `gtk-4.0/` | GTK theme and colors |
| `xsettingsd/xsettingsd.conf` | X11/XWayland settings (fonts, theme) |
| `environment.d/intel-gtk-fix.conf` | Intel GPU environment fix |
| `autostart/steam.desktop` | Steam autostart |

## Setup

### macOS (Neovim)

```bash
ln -s ~/Docs/Projects/dotfiles/nvim ~/.config/nvim
brew install lazygit

# First nvim launch will auto-install plugins, then run:
# :TSInstall rust zig typescript javascript tsx c cpp lua json yaml toml html css markdown bash
```

### Bazzite

```bash
# Symlink configs to ~/.config/
for dir in niri fuzzel waybar btop glow gtk-3.0 gtk-4.0 xsettingsd environment.d autostart; do
  ln -sf ~/Docs/Projects/dotfiles/bazzite/$dir ~/.config/$dir
done
```
