Solución rápida: Windows 11 no tiene un cambio de tema programado integrado, pero el Programador de tareas junto con un script de PowerShell de dos líneas que alterna los valores del registro AppsUseLightTheme y SystemUsesLightTheme te da luz al amanecer y oscuridad al atardecer sin ninguna aplicación de terceros.
macOS y la mayoría de los teléfonos cambian su interfaz entre claro y oscuro automáticamente a medida que avanza el día. Windows 11 incluye ambos temas pero los trata como un único interruptor en Personalización — sin programación, sin conciencia del amanecer/atardecer. Microsoft mostró brevemente una función de programación en una compilación de Insider hace años y nunca la lanzó. La buena noticia es que los dos valores del registro que controlan el interruptor están bien documentados, y el Programador de tareas puede cambiarlos con el desencadenador que quieras.
Afecta a: Windows 11, cualquier edición.
Tiempo de solución: 15 minutos para la configuración inicial; se ejecuta automáticamente después.
Qué controla el cambio de tema internamente
La página Personalización en Configuración no hace nada misterioso. Cuando cambias Elige tu modo, Windows escribe dos DWORD en HKCU\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize: AppsUseLightTheme (gobierna Configuración, el Explorador de archivos, las aplicaciones modernas) y SystemUsesLightTheme (gobierna Inicio, la barra de tareas y el centro de actividades). Establecer ambos en 1 es el tema claro; 0 para ambos es oscuro. Los valores mixtos (aplicaciones claras, sistema oscuro) son válidos y Windows los aplica inmediatamente.
Como no hay una API expuesta ni un registro de eventos para “modo cambiado”, la ruta de automatización más simple es el Programador de tareas ejecutando un pequeño script de PowerShell a las horas que quieras. Las aplicaciones que observan la clave del registro (que son la mayoría) cambian inmediatamente. Unas pocas aplicaciones más antiguas necesitan reiniciarse para adoptar el cambio.
Método 1: Programar dos tareas de PowerShell para horas fijas
- Abre el Bloc de notas y pega esto en un archivo nuevo:
$path = “HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize”
Set-ItemProperty -Path $path -Name AppsUseLightTheme -Value 1
Set-ItemProperty -Path $path -Name SystemUsesLightTheme -Value 1 - Guárdalo como
C:\Users\<you>\theme-light.ps1. - Duplica el archivo, cambia las dos entradas
Value 1aValue 0, y guárdalo comotheme-dark.ps1en la misma carpeta. - Abre Programador de tareas (busca en Inicio). En el panel Acciones haz clic en Crear tarea.
- En la pestaña General, nombra la tarea Tema – Claro, establece Ejecutar solo cuando el usuario haya iniciado sesión, y marca Ejecutar con los privilegios más altos.
- En la pestaña Desencadenadores, haz clic en Nuevo, establece Diariamente a las
07:00, y guarda. - En la pestaña Acciones, haz clic en Nuevo. Acción: Iniciar un programa. Programa:
powershell.exe. Argumentos:-ExecutionPolicy Bypass -WindowStyle Hidden -File "C:\Users\<you>\theme-light.ps1". - Guarda la tarea. Repite los pasos 4–7 con el script oscuro activándose a las
19:00.
Ambas tareas se ejecutan silenciosamente en segundo plano — no aparece ninguna ventana de consola. El script tarda unos milisegundos; la interfaz se vuelve a dibujar en un segundo.
Método 2: Vincular el cambio al amanecer/atardecer local en lugar de horas fijas
Las horas fijas se desvían con respecto a la luz diurna real a lo largo del año. Si prefieres que el modo oscuro cambie al atardecer real, calcúlalo dentro del mismo script de PowerShell usando la API gratuita sunrise-sunset.org.
- Reemplaza tus scripts claro/oscuro con un único script combinado que obtiene el atardecer de hoy y decide qué modo establecer:
$lat = 35.6895; $lon = 139.6917 # your coordinates
$r = Invoke-RestMethod “https://api.sunrise-sunset.org/json?lat=$lat&lng=$lon&formatted=0”
$sunset = [datetime]$r.results.sunset
$mode = if ((Get-Date) -gt $sunset) { 0 } else { 1 }
$path = “HKCU:\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize”
Set-ItemProperty -Path $path -Name AppsUseLightTheme -Value $mode
Set-ItemProperty -Path $path -Name SystemUsesLightTheme -Value $mode - Guarda como
theme-auto.ps1y actualiza una de tus tareas del Programador de tareas para ejecutar este script a las 06:00 y 17:00 (o el intervalo que cubra tu latitud en todas las estaciones). - Opcionalmente programa una tercera ejecución al iniciar sesión (Desencadenadores → Al iniciar sesión) para que se establezca el modo correcto cuando enciendas el PC a mitad del día.
La API no tiene autenticación, no tiene límite de velocidad a este volumen, y devuelve horas UTC. La conversión [datetime] de PowerShell convierte a tu hora local automáticamente.
Método 3: Cambio solo de aplicaciones cuando la barra de tareas debe permanecer siempre oscura
Algunos usuarios quieren que el Explorador de archivos y Configuración sigan la hora del día pero quieren la barra de tareas permanentemente oscura para que no brille por la noche. Elimina SystemUsesLightTheme de tus scripts por completo.
- Edita tanto
theme-light.ps1comotheme-dark.ps1(o el script automático) y elimina la línea que estableceSystemUsesLightTheme. - Abre Configuración → Personalización → Colores y establece el Modo de Windows en Oscuro manualmente una última vez.
- Ejecuta tu tarea. Las aplicaciones cambian; la barra de tareas permanece oscura.
Esta es la configuración a la que llegan la mayoría de los noctámbulos. La barra de tareas es visible contra ventanas de aplicaciones brillantes todo el día de cualquier manera, y una barra de tareas oscura contra una página de Configuración clara es menos chocante que lo contrario.
Cómo verificar que la solución funcionó
- Abre el Programador de tareas, encuentra tu tarea, haz clic derecho y elige Ejecutar. El tema debería cambiar en un segundo.
- Revisa Resultado de la última ejecución en la lista de tareas — debería mostrar (0x0) para indicar éxito.
- Espera hasta tu hora programada y confirma que el cambio ocurre sin intervención.
Si nada de esto funciona
Si los valores del registro cambian (verifícalo con reg query “HKCU\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize”) pero la interfaz no se vuelve a dibujar, reinicia el Explorador con taskkill /f /im explorer.exe && start explorer.exe al final de tu script. Si el Programador de tareas ejecuta el script pero los valores siguen igual, tu política de ejecución de PowerShell está bloqueando el script — abre PowerShell como el mismo usuario que la tarea y ejecuta Set-ExecutionPolicy -Scope CurrentUser RemoteSigned. Para los usuarios que no quieren mantener un script, Auto Dark Mode (de código abierto, en GitHub) maneja todo esto en una interfaz gráfica; es la única herramienta de terceros que vale la pena recomendar para este nicho.
Conclusión: Dos DWORD del registro más el Programador de tareas te dan la programación de temas que Windows 11 debería haber incluido. La variante de amanecer/atardecer del Método 2 tarda diez minutos más pero es la versión que configuras una vez y nunca vuelves a tocar.