Digital Signage Touchscreen Displays with a Mac Mini?

Use Case

First of all, why would you want to? Digital Signage isn’t always just a video playing in a loop, which can run off a built-in media player (like on a Samsung DM55E screen with MagicInfo S3 Digital Signage Software) or a BrightSign player with it’s overly convoluted content management system. Sometimes you have an HTML5 application that can run in Google Chrome as a full screen app, other times you have a complex Unity3D desktop app that also needs to run off more of a serious machine than a typical media player.

You’re certainly better off with a PC in this situation. Intel’s NUC and others now even allow the small form factor that Mac Mini used to rule.

Mac Minis weren’t originally designed for touchscreen displays, but what if you’re stuck with venue or client that has already purchased a Mac Mini and now you have to use that equipment because the budget’s been spent?

One option that works

Assuming there’s budget and you have some leeway in choice of touchscreens, rent an ELO touchscreen. Something like the 4202L 42″ Interactive Digital Signage. ELO does provide drivers for Mac that work with single touch (at least).

Note: ELO’s site provides drivers for lower versions of Mac OS / OS X and says “MAC OS X (10.12): Contact Tech Support for Max OSX 10.12”. Unofficially, their latest driver at the time – UPDD_05_01_1482.dmg – worked for me on Mac OS 10.12. Their tech support never got back to me, so keep that in mind.


Up and Running with NW.js on OS X

Formerly known as node-webkit, NW.js lets you convert pretty much any HTML5 project into a desktop app.

First, make sure you have the right versions of npm and node installed. I updated npm and ended up updating node via nvm to maintain various versions of node and getting the right one for NW.js.

To launch the test app, I ran this command via Terminal:

open -n -a nwjs --args "/Users/your_usr_name/path_to_project/html_nwjs_test"

There’re a few other options on the project’s Github page. Do check it out.

If your package.json has a “window” node that looks like what I have below (aka no window chrome, no taskbar functionality), keep in mind that on OS X you can just launch Activity Monitor and use that utility to shut your app down when you’re ready:

  "name": "HTML5 Desktop Test App",
  "main": "index.html",
  "window": {
    "title": "HTML5 Screensaver Test",
    "frame": false,
    "toolbar": false,
    "fullscreen": true,
    "always-on-top": true,
    "show_in_taskbar": false

I’m sure Windows Task Manager or Windows Explorer has a similar option.

When the app’s ready, nw-builder seems like a good option to create executables for multiple platforms (win32, win64, osx32, osx64, linux, etc). It seems a bit annoying that for Windows, nw-builder outputs a bunch of .dll files along with the .exe.