He estado intentando durante varios meses, usando varios métodos, ejecutar una aplicación Nuiteq llamada Snowflake en nuestros 10 Mac Minis conectados a pantallas táctiles en modo Kiosco puro. Estoy usando Yosemite. Estas máquinas deben ser capaces de:
- Ejecutar pantallas sin ventanas completas
- Tener el Dock y la barra de menú deshabilitados
- Se eliminó el acceso al buscador
- No muestra el cursor predeterminado, y solo usa la funcionalidad multitáctil en Snowflake
Desafortunadamente, no tengo acceso de compilación a la aplicación y no puedo agregar elementos como NSApplicationPresentationHideMenuBar
a Snowflake ya que es un software propietario.
Inicialmente comencé agregando LUSIPresentationMode
al archivo info.plist de la aplicación, con cierto éxito. El dock y la barra de menú seguían apareciendo. Luego creé una lista en ~/Library/LaunchAgents/
que reemplazó el buscador con la aplicación. Se veía así:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>POSIXSpawnType</key>
<string>App</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<dict>
<key>SuccessfulExit</key>
<true/>
<key>AfterInitialDemand</key>
<false/>
</dict>
<key>Label</key>
<string>com.apple.FindertoSnowflake</string>
<key>Program</key>
<string>/Applications/snowflake/run.sh</string>
<key>CFBundleIdentifier</key>
<string>com.apple.finder</string>
<key>ThrottleInterval</key>
<integer>0</integer>
</dict>
</plist>
y escribí 2 scripts cortos que cargaban y descargaban el plist para detener / iniciar la aplicación. (Lo siguiente es comenzar)
PASSWORD=password
echo $PASSWORD | sudo -S killall Finder
launchctl unload -w /System/Library/LaunchAgents/com.apple.Finder.plist
launchctl load -w /Users/snowbloke/Library/LaunchAgents/com.apple.FindertoSnowflake.plist
Y esto para parar:
PASSWORD=password
echo $PASSWORD | sudo -S killall -vu snowflake
Y luego, el software no ocultaría el cursor principal, así que tuve que escribir en una emulación de teclado de Fn + F3 para iniciar el script. De lo contrario, habría habido 2 juegos de interacción entre los controladores táctiles utilizados por Snowflake y el sistema operativo. Esto fue muy molesto.
osascript -e "tell application \"System Events\" to key code 99"
exit 0
Cada mac inicia sesión directamente en la aplicación desde el inicio.
Después de hacer todo esto y ejecutar las pruebas a lo largo del tiempo, los usuarios todavía pueden ingresar al escritorio del sistema operativo y el buscador simplemente comienza a ejecutarse. Por alguna razón, la barra de menú o el dock se muestran en pantalla. ¿Hay una solución más robusta? ¿Qué estoy haciendo mal?