Skip to content

sneha-afk/dotfiles

Repository files navigation

dotfiles

📁 structure

Area Location / Notes
Shells dot-bash/, pswh
PowerShell windows\profile\Microsoft.PowerShell_profile.ps1
Neovim dot-config/nvim — see its README.md
WSL windows\.wslconfig, dot-home/.wsl_env
Terminals WezTerm, Windows Terminal
Fonts Geist Mono, Segoe UI Emoji (built-in), optional Symbols Nerd Font Mono

Other helpful files in dot-config -> .config and dot-home -> ~/*.

💻 my hardware
  • Laptop: ThinkPad X1 Carbon Gen 10 (2022)
    • Intel Core i7-1260P (12th Gen)
    • Intel Iris Xe Graphics
  • OS: Windows 11 Pro with WSL2 (Ubuntu)
  • Monitor: Dell U2723QE

⚙️ Setup

🐧 Linux

Recommended: Makefile and using GNU stow

sudo apt-get install git make stow
make         # Bootstrap symlinks, installs, etc.
make delete  # Remove all symlinks
make dry-run # Preview changes
Manual Symlinks
ln -sf "$(pwd)/dot-config/nvim" "$HOME/.config/nvim"
ln -sf "$(pwd)/dot-vim/.vimrc" "$HOME/.vimrc"
ln -sf "$(pwd)/dot-bash/.bashrc" "$HOME/.bashrc"

🪟 Windows

Recommended: using the bootstrap script to cover all setup

.\windows\bootstrap.ps1
# Skip components: -SkipScoop, -SkipWinget, -SkipSymlinks, etc.

Getting packages through manifests:

winget import -i .\windows\winget_packages.json
scoop import .\windows\scoopfile.json
Run with elevated permissions

If bootstrap fails, run in elevated PowerShell (auto-elevation within the script should handle this):

Start-Process wt -Verb RunAs -ArgumentList `
  "powershell -NoProfile -ExecutionPolicy Bypass -File `"$PWD\windows\bootstrap.ps1`""
Manual Symlinks
# PowerShell profile
New-Item -ItemType SymbolicLink `
  -Path $PROFILE `
  -Target "$(Resolve-Path .\windows\Microsoft.PowerShell_profile.ps1)" `
  -Force

# WSL config
New-Item -ItemType SymbolicLink `
  -Path "$env:USERPROFILE\.wslconfig" `
  -Target "$(Resolve-Path .\windows\.wslconfig)" `
  -Force

# Vim / Neovim
New-Item -ItemType SymbolicLink `
  -Path "$HOME\_vimrc" `
  -Target "$(Resolve-Path .\dot-home\.vimrc)" `
  -Force

New-Item -ItemType SymbolicLink `
  -Path "$env:LOCALAPPDATA\nvim" `
  -Target "$(Resolve-Path .\dot-config\nvim)" `
  -Force

⚠️ On $PROFILE

The default $PROFILE path resolves inside OneDrive, which leads to:

  • Unwanted OneDrive pollution when modules or profile-related files are created
  • Reduced portability across machines
  • Ongoing background sync overhead for files that don’t need it
Solution: relocate the PowerShell profile

Redirect $PROFILE to a local path under Documents\WindowsPowerShell (and the equivalent directory for pwsh).

A small utility script is used to redefine $PROFILE. This script is copied into the standard Documents directory and sourced automatically. As a result, only this single profile file remains in OneDrive, while the actual working profile lives locally.

Copy-Item -Path ".\windows\utils\fix_profile_path.ps1" `
          -Destination (Join-Path $env:OneDrive "Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1") `
          -Force

Do not attempt to change the registry entries related to OneDrive.. been there done that.

About

time spent : yeah

Resources

Stars

Watchers

Forks