Skip to content

Ranteck/Mirror-script

Repository files navigation

WindSurf Config Sync

Scripts para sincronizar configuraciones y extensiones de WindSurf entre múltiples computadoras. Soporta Windows (PowerShell) y Linux (Bash).

🎯 Características

  • ✅ Exporta/importa todas las extensiones instaladas
  • ✅ Sincroniza settings.json (configuraciones del editor)
  • ✅ Sincroniza keybindings.json (atajos de teclado personalizados)
  • ✅ Sincroniza snippets personalizados
  • ✅ Crea backups automáticos antes de importar
  • ✅ Modo dry-run para previsualizar cambios
  • ✅ Soporte multiplataforma (Windows + Linux)

📋 Requisitos

  • Windows: PowerShell 5.1 o superior
  • Linux: Bash 4.0 o superior
  • WindSurf instalado y en el PATH del sistema
  • Git (para sincronización con repo privado)

🔐 Setup Inicial (Repo Privado)

La configuración personal (settings, extensiones, etc.) se almacena en un repositorio privado separado e independiente. La carpeta windsurf-config/ está en .gitignore, así que el repo público no contiene ninguna referencia a tus datos personales.

Primera vez (Computadora A)

  1. Crea un repo privado vacío en GitHub (ej: windsurf-config-private)

  2. Exporta tu configuración:

    # Windows
    .\export-windsurf-config.ps1
    # Linux
    ./export-windsurf-config.sh
  3. Vincula y sube al repo privado:

    # Windows
    .\scripts\setup-private-config.ps1 -RepoUrl "git@github.com:tu-usuario/windsurf-config-private.git" -Push
    # Linux
    ./scripts/setup-private-config.sh "git@github.com:tu-usuario/windsurf-config-private.git" --push

Clonar en otra computadora

git clone https://github.com/tu-usuario/Mirror-script.git
cd Mirror-script

Un solo comando para configurar todo:

# Windows
.\setup-windsurf.ps1 -RepoUrl "https://github.com/tu-usuario/windsurf-config-private.git"
# Linux
./setup-windsurf.sh "https://github.com/tu-usuario/windsurf-config-private.git"

Esto clona el repo privado e importa la config automáticamente.

🚀 Uso

Exportar configuración (Computadora A)

Windows (PowerShell):

.\export-windsurf-config.ps1

Linux (Bash):

./export-windsurf-config.sh

Esto crea la carpeta windsurf-config con toda tu configuración.

Importar configuración (Computadora B)

Windows (PowerShell):

# Ver qué cambiaría sin aplicar (recomendado primero)
.\import-windsurf-config.ps1 -DryRun

# Aplicar cambios
.\import-windsurf-config.ps1

Linux (Bash):

# Ver qué cambiaría sin aplicar (recomendado primero)
./import-windsurf-config.sh --dry-run

# Aplicar cambios
./import-windsurf-config.sh

IMPORTANTE: Reinicia WindSurf después de importar para aplicar todos los cambios.

⚙️ Parámetros

Exportar

PowerShell Bash Descripción Por Defecto
-OutputPath <ruta> <ruta> (argumento posicional) Carpeta de salida .\windsurf-config
# Windows
.\export-windsurf-config.ps1 -OutputPath "D:\Backups\WindSurf"
# Linux
./export-windsurf-config.sh ~/backups/windsurf

Importar

PowerShell Bash Descripción Por Defecto
-ConfigPath <ruta> <ruta> (argumento posicional) Carpeta con la configuración a importar .\windsurf-config
-DryRun --dry-run Mostrar cambios sin aplicarlos false
-Force --force Desinstalar extensiones que no están en la config false
-NoBackup --no-backup No crear backup antes de importar false
# Windows - ejemplos
.\import-windsurf-config.ps1 -ConfigPath "D:\Backups\windsurf-config"
.\import-windsurf-config.ps1 -DryRun
.\import-windsurf-config.ps1 -Force
.\import-windsurf-config.ps1 -NoBackup
# Linux - ejemplos
./import-windsurf-config.sh ~/backups/windsurf-config
./import-windsurf-config.sh --dry-run
./import-windsurf-config.sh --force
./import-windsurf-config.sh --no-backup

📁 Archivos del Proyecto

Mirror-script/
├── export-windsurf-config.ps1   # Exportar (Windows)
├── export-windsurf-config.sh    # Exportar (Linux)
├── import-windsurf-config.ps1   # Importar (Windows)
├── import-windsurf-config.sh    # Importar (Linux)
├── setup-windsurf.ps1            # Setup completo en un paso (Windows)
├── setup-windsurf.sh             # Setup completo en un paso (Linux)
├── scripts/
│   ├── setup-private-config.ps1  # Helper: vincula repo privado (Windows)
│   └── setup-private-config.sh   # Helper: vincula repo privado (Linux)
├── .gitignore
├── README.md
└── windsurf-config/             # Repo privado (gitignored)
    ├── extensions.txt           # Lista de extensiones instaladas
    ├── settings.json            # Configuración del editor
    ├── keybindings.json         # Atajos de teclado (si existen)
    ├── snippets/                # Snippets personalizados (si existen)
    └── export-info.json         # Metadata de la exportación

🛡️ Backups Automáticos

El script de importación crea automáticamente un backup antes de hacer cambios:

windsurf-config-backup-20260121-143022/
├── extensions.txt
├── settings.json
├── keybindings.json
└── snippets/

Para restaurar un backup:

# Windows
.\import-windsurf-config.ps1 -ConfigPath ".\windsurf-config-backup-20260121-143022"
# Linux
./import-windsurf-config.sh ./windsurf-config-backup-20260121-143022

💡 Workflow Recomendado

  1. En Computadora A (después de configurar WindSurf):

    # Windows
    .\export-windsurf-config.ps1
    cd windsurf-config
    git add . && git commit -m "Actualizar config" && git push
    cd ..
    # Linux
    ./export-windsurf-config.sh
    cd windsurf-config
    git add . && git commit -m "Actualizar config" && git push
    cd ..
  2. En Computadora B (para sincronizar):

    # Windows
    cd windsurf-config
    git pull
    cd ..
    .\import-windsurf-config.ps1
    # Reiniciar WindSurf
    # Linux
    cd windsurf-config
    git pull
    cd ..
    ./import-windsurf-config.sh
    # Reiniciar WindSurf

🐛 Solución de Problemas

"WindSurf no encontrado"

Verifica que WindSurf está en el PATH:

windsurf --version

Si no funciona, agrega WindSurf al PATH o reinicia la terminal.

Las extensiones no se instalan

Algunas extensiones requieren reiniciar WindSurf. Cierra y vuelve a abrir después de importar.

Conflictos de configuración

Usa dry-run primero para ver qué cambios se aplicarán:

# Windows
.\import-windsurf-config.ps1 -DryRun
# Linux
./import-windsurf-config.sh --dry-run

ℹ️ Información Adicional

¿Qué se sincroniza?

  • ✅ Extensiones instaladas
  • ✅ Configuraciones del editor (settings.json)
  • ✅ Atajos de teclado personalizados (keybindings.json)
  • ✅ Snippets personalizados

¿Qué NO se sincroniza?

  • ❌ Historial de archivos recientes
  • ❌ Workspaces abiertos
  • ❌ Cache del editor
  • ❌ Configuraciones específicas de workspace

Rutas de configuración de WindSurf

Plataforma Ruta
Windows %APPDATA%\Windsurf\User
Linux ~/.config/Windsurf/User

About

Scripts para sincronizar configuraciones y extensiones de WindSurf entre múltiples computadoras. Soporta Windows (PowerShell) y Linux (Bash).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors