Ejecutar apps NW.js en Wayland
NW.js es un framework que nos permite crear aplicaciones de escritorio con tecnologĂas web, es decir, podemos crear aplicaciones con HTML , CSS y JavaScript, y ejecutarlas en el escritorio de cualquier sistema operativo. Y si bien es un framework muy interesante, tiene un problema, no funciona en Wayland. O al menos no antes de la version 0.50.0. Sin embargo hay una forma de hacerlo funcionar en Wayland, y es modificando el package.json de la app siempre y cuando use la version 0.50.0 o superior.
Modificando el package.json como dev #
Dentro de nuestro package.json debemos agregar la siguiente linea:
|
|
De esta forma, cuando ejecutemos nuestra app, lo haremos con Wayland.
Modificando el package.json como usuario #
Supongamos que no somos los desarrolladores de la aplicacion y no podemos modificar el package.json, pero queremos ejecutar la app en Wayland. Para esto podemos modificar el package.json
de la siguiente forma agregando la linea mencionada anteriormente, y en el caso de existir agregarle ambos valores a la linea chromium-flags
Caso practico Kera Desktop #
Hace no mucho se dio a conocer este escritorio que si bien no es funcional aun porque no permite ejecutar aplicaciones, es un proyecto muy interesante. Y si bien no es funcional, ya podemos comenzar a probarlo en conjunto con nuestro escritorio, claro siempre y cuando estemos en x11 (o en wayland con el soporte para apps x11)
Sin embargo si estamos en wayland y queremos tener una mejor experiencia con Kera Desktop, podemos modificar el package.json de la siguiente forma:
Abrimos la carpeta de la app, en mi caso
~/Kera-Desktop-Linux-X64
Abrimos la carpeta
package.nw
y dentro de ella el archivopackage.json
Veremos un archivo como este:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
{ "name": "kera-desktop", "main": "main.js", "chromium-args": "--enable-experimental-web-platform-features --enable-features=OverlayScrollbar", "cldr-data-urls-filter": "(cldr-core|cldr-numbers-modern|cldr-dates-modern|cldr-localenames-modern|cldr-misc-modern|cldr-units-modern)", "window": { "title": "Kera Desktop", "id": "KeraDesktop", "icon": "logobig.png" }, "webview": { "partitions": [ { "name": "trusted", "accessible_resources": ["*"] }, { "name": "normal", "accessible_resources": ["api/*"] }, { "name": "incognito", "accessible_resources": ["api/*"] } ] }, "devDependencies": { "eslint": "^8.41.0", "eslint-config-google": "^0.14.0" } }
Agregamos los valores mencionados anteriormente a la linea
chromium-flags
y quedara de la siguiente forma:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
{ "name": "kera-desktop", "main": "main.js", "chromium-args": "--enable-experimental-web-platform-features --enable-features=OverlayScrollbar --enable-features=UseOzonePlatform --ozone-platform=wayland", "cldr-data-urls-filter": "(cldr-core|cldr-numbers-modern|cldr-dates-modern|cldr-localenames-modern|cldr-misc-modern|cldr-units-modern)", "window": { "title": "Kera Desktop", "id": "KeraDesktop", "icon": "logobig.png" }, "webview": { "partitions": [ { "name": "trusted", "accessible_resources": ["*"] }, { "name": "normal", "accessible_resources": ["api/*"] }, { "name": "incognito", "accessible_resources": ["api/*"] } ] }, "devDependencies": { "eslint": "^8.41.0", "eslint-config-google": "^0.14.0" } }
De esta forma a la hora de volver a abrir la app en nuestro entorno de wayland podemos hacerlo con una ventana nativa y sin ningun problema.
Fuente: https://nwjs.readthedocs.io/en/latest/