Estoy trabajando con una aplicación de electrones y tengo la tarea de deshabilitar las esquinas activas en Mac con un script. Soy bastante nuevo en el tema, así que me pregunto si alguien alrededor ya se ha enfrentado a una situación similar.
Al iniciar la aplicación, la ventana de electrones no ocupa todo el ancho, pero es algo que podríamos implementar si las esquinas activas se pueden desactivar de esta manera.
Cualquier sugerencia sería apreciada. Gracias
No existe una forma "segura" de hacer esto que no corra el riesgo de deshabilitar indefinidamente las esquinas activas de sus usuarios. Si su programa se bloquea o finaliza inesperadamente, debe asegurarse absolutamente de que haya alguna contingencia para restablecer estas claves a sus valores originales . Me atrevería a decir que este no es un enfoque recomendado en absoluto y que este tipo de trucos que modifican la experiencia de usuario son mucho menos que ideales.
Si debe hacerlo, probablemente pueda salirse con la suya haciendo algo a través node-applescript :
const applescript = require('applescript'); var hotCorners = { 'wvous-bl-corner': null, 'wvous-bl-corner-modifier': null, 'wvous-br-corner': null, 'wvous-br-modifier': null, 'wvous-tl-corner': null, 'wvous-tl-modifier': null, 'wvous-tr-corner': null, 'wvous-tr-modifier': null } // read current default values first Object.keys(hotCorners).forEach(key => hotCorners[key] = applescript.execString(`do shell script "defaults read com.apple.Dock ${key}"`)); // overwrite with zeros to disable hot corner functionality Object.keys(hotCorners).forEach(key => applescript.execString(`do shell script "defaults write com.apple.Dock ${key} -int 0"`));Y en el momento en que desee volver a escribir estas configuraciones:
Object.keys(hotCorners).forEach(key => applescript.execString(`do shell script "defaults write com.apple.Dock ${key} -int ${hotCorners[key] ?? 0}"`));También debe tener cuidado de escribir la configuración actual en un medio de almacenamiento menos efímero que la RAM; La forma más fácil de hacerlo sería escribir la estructura JSON en un archivo dentro de su aplicación Electron (o en el almacenamiento en otro lugar del dispositivo cliente).
El éxito de este método dependerá de varios factores relacionados con la versión de macOS y la postura de seguridad del dispositivo cliente y del propio usuario (si aceptan las indicaciones de seguridad relacionadas con esta funcionalidad en versiones posteriores de macOS). Como tal, también debe implementar la verificación de errores con este tipo de funcionalidad para asegurarse de que puede reaccionar adecuadamente ante condiciones inesperadas.
En interés de la divulgación completa, ya no tengo acceso a una máquina macOS para probar esto; como tal, este código no se ha probado y no garantizo su éxito de ninguna manera; use esta guía bajo su propio riesgo.