Al instalar Nuke, hacer doble click en un archivo .nk siempre abre una nueva instancia de Nuke (no NukeX).
Aunque se puede redirigir para usar NukeX, igual se crea una nueva instancia cada vez, acumulando varias ventanas abiertas.
LGA_OpenInNukeX soluciona esto.
Permite abrir archivos .nk directamente en NukeX desde el explorador de archivos:
• Si ya hay una instancia de NukeX abierta → abre el script ahí
• Si no hay ninguna → abre una nueva instancia de NukeX
Es una aplicación de dos partes:
• Servidor en NukeX: corre desde init.py, escucha por TCP en el puerto 54325 y recibe comandos externos (run_script||<path> y paste_clipboard).
• Cliente Qt/C++: corre fuera de Nuke, administra la asociación de archivos .nk, detecta la ruta configurada de NukeX y decide si enviar el archivo a una instancia ya abierta o lanzar una nueva.
La lógica de apertura es esta:
1. Si ya hay una instancia de NukeX abierta, el cliente envía el .nk vía TCP a esa sesión activa.
2. Si no hay una instancia abierta, el cliente lanza el ejecutable de NukeX configurado en la sección Preferred Nuke Version.
Solo funciona con NukeX y no con otras variantes de Nuke. El servidor en init.py verifica esto antes de iniciar.

El servidor escucha en localhost:54325 y soporta estos comandos:
ping: respondepongcuando el servidor esta activo en NukeX.run_script||<path>: cierra el proyecto actual connuke.scriptClose()y abre el.nkindicado connuke.scriptOpen().paste_clipboard: ejecutanuke.nodePaste("%clipboard%")en el proyecto actual. No cierra ni abre scripts. Este comando permite que herramientas externas, como el Contact Sheet del Review Panel de Hiero, copien clips al clipboard y pidan a NukeX que los pegue como nodos.
-
Copiar la carpeta LGA_OpenInNukeX a %USERPROFILE%/.nuke en Windows o a ~/.nuke en macOS.
Debería quedar así:.nuke/ └─ LGA_OpenInNukeX/ ├─ init.py └─ LGA_QtAdapter_OpenInNukeX.py -
Con un editor de texto, agregar esta línea al archivo init.py que está dentro de la carpeta .nuke:
nuke.pluginAddPath('./LGA_OpenInNukeX')
-
Windows: ejecutar
LGA_OpenInNukeX_Setup.exe. Al terminar la instalación, abrir la aplicación para entrar a la configuración. -
macOS: copiar
LGA_OpenInNukeX.appa/Applications. Después abrir la aplicación para entrar a la configuración.
-
El botón APPLY asocia los archivos
.nkcon OpenInNukeX. Después de aplicarlo, hacer doble clic en cualquier.nkdesde el Explorer o Finder lo abrirá a través de esta app.- En Windows se usa la app
SetUserFTA.exeque viene incluida en el paquete. - En macOS se registra con Launch Services y usa
dutisi está instalado (brew install duti). Si no, la app indica el flujo manual en Finder: clic derecho en un.nk→ Obtener información → Abrir con → Cambiar todo.
- En Windows se usa la app
-
La sección Preferred Nuke Version escanea automáticamente las rutas comunes del sistema al abrirse y muestra un botón por cada versión de Nuke detectada. Al hacer clic en uno de esos botones la ruta se carga en el campo de texto. Si la instalación de Nuke está en una ubicación no estándar, se puede usar BROWSE para localizarla manualmente.
- En Windows escanea
C:\Program FilesyC:\Program Files (x86). - En macOS escanea
/Applications. - El botón BROWSE en macOS acepta tanto el
.appcomo el binario directamente y resuelve la ruta automáticamente.
- En Windows escanea
Windows
cd QtClient/scripts
deploy.bat # Release + paquete portable
instalador.bat # Genera el instalador .exe con Inno SetupmacOS
cd QtClient
./compilar_dev.sh # Build rápido (Debug) para desarrollo y pruebas
./deploy.sh # Build Release, genera el .app distribuible| Archivo | Funciones / clases clave |
|---|---|
| init.py | setup_debug_logging(), handle_client(), run_script_with_logging(), paste_clipboard_with_logging(), servidor TCP en puerto 54325 |
| main.cpp | NukeApp::event(), main() |
| nukeopener.cpp | sendToNuke(), onConnected(), onResponseReceived(), openNukeWithFile() |
| configwindow.cpp | applyFileAssociation(), executeMacAssociation(), executeRegistryCommands(), browseNukePath() |
| nukescanner.cpp | getCommonNukePaths(), scanDirectory(), isValidNukeExecutable(), isValidNukeAppBundle() |
| CMakeLists.txt | definición de targets Win/Mac, bundle macOS, recursos, deploy |
| Info.plist.in | CFBundleDocumentTypes, UTI .nk, bundle identifier |
