No description
Find a file
2026-03-08 18:15:34 +02:00
.config fix: zed keymaps with nvim 2026-03-08 18:15:34 +02:00
scripts fix: windows script 2026-03-08 17:06:27 +02:00
.gitattributes fix: windows keybinds 2026-02-26 21:53:50 +02:00
.gitconfig initial commit 2025-10-25 21:53:20 +02:00
.gitignore feat: added zed config translation of nvim ocnfig 2026-03-08 17:32:49 +02:00
.tmux.conf fix: windows keybinds 2026-02-26 21:53:50 +02:00
.zshrc feat(dotfiles): add Windows/WSL sync workflow and harden cross-platform theming 2026-02-26 21:08:53 +02:00
LICENSE Initial commit 2025-10-25 14:20:05 +02:00
README.md feat(dotfiles): add Windows/WSL sync workflow and harden cross-platform theming 2026-02-26 21:08:53 +02:00

dotfiles

Windows + WSL Sync (No Stow)

If you use manual copy/paste on Windows, you can sync configs automatically with:

scripts/sync-windows-wsl-dotfiles.ps1

This script runs in Windows PowerShell and syncs:

  • nvim, tmux, starship -> \\wsl.localhost\<distro>\home\<user>\.config
  • .zshrc -> \\wsl.localhost\<distro>\home\<user>\.zshrc
  • .config/.vimrc -> \\wsl.localhost\<distro>\home\<user>\.vimrc
  • .config/wezterm/wezterm.lua -> Windows WezTerm config path

Run From Windows PowerShell

Dry run:

powershell -ExecutionPolicy Bypass -File "\\wsl.localhost\Ubuntu-24.04\home\<user>\dotfiles\scripts\sync-windows-wsl-dotfiles.ps1" -Distro "Ubuntu-24.04" -WslUser "<user>" -WindowsWeztermPath "C:\Users\<user>\wezterm.lua" -DryRun

Apply:

powershell -ExecutionPolicy Bypass -File "\\wsl.localhost\Ubuntu-24.04\home\<user>\dotfiles\scripts\sync-windows-wsl-dotfiles.ps1" -Distro "Ubuntu-24.04" -WslUser "<user>" -WindowsWeztermPath "C:\Users\<user>\wezterm.lua"

Notes:

  • -WslUser can be omitted; the script auto-detects it from WSL.
  • -WindowsWeztermPath can be omitted; the script defaults to %USERPROFILE%\.wezterm.lua (or %USERPROFILE%\wezterm.lua if that exists and .wezterm.lua does not).

Neovim Offline Setup (Corporate Proxy)

If you're behind a corporate proxy where Mason, Treesitter, or plugin installs fail, you can pre-download everything on a machine with internet access and deploy offline.

Prerequisites

On the machine with internet access, make sure you have:

  • Docker (Linux containers enabled)

Step 1: Prepare the bundle (with internet)

./scripts/nvim-offline-prepare.sh

Optionally pin Neovim to a specific tag:

NVIM_RELEASE_TAG=v0.11.6 ./scripts/nvim-offline-prepare.sh

This pre-downloads:

  • All lazy.nvim plugins (git clones + build steps)
  • All Mason packages (LSP servers, linters, formatters, DAP adapters)
  • All Treesitter parsers (compiled .so files)

Output: scripts/nvim-offline-bundle-output/nvim-offline-bundle.tar.gz

Step 2: Install the bundle (on the proxy machine)

Transfer the tarball to your corporate machine, then run:

./scripts/nvim-offline-install.sh ./scripts/nvim-offline-bundle-output/nvim-offline-bundle.tar.gz

This extracts plugins to ~/.local/share/nvim/lazy/ and Mason packages to ~/.local/share/nvim/mason/.

Step 3: Enable offline mode

Add to your ~/.zshrc (or ~/.bashrc):

export NVIM_OFFLINE=1

Then restart your shell or run source ~/.zshrc.

What offline mode disables

Component Behavior when NVIM_OFFLINE=1
lazy.nvim Disables update checker, sets git timeout to 1s
Mason Skips ensure_installed for LSP servers and tools
Treesitter Disables auto_install for parsers
mason-nvim-dap Disables automatic_installation for debug adapters

Re-enabling network access

To go back to normal (online) mode:

unset NVIM_OFFLINE

Or remove the export NVIM_OFFLINE=1 line from your shell profile.