NOTE:
For whatever reason, notifications do not work with Fluid on Mac OS.
As an alternative, since you may already have Node.js installed, you may want to check out Nativefier. It is based on Chrome sources, there is much more control over initial window sizes, and notifications work correctly on Mac OS, Linux, and probably Windows with it.
EDIT Notifications on Windows 7 work with Nativefier as well.
Iâm trying to get the app.js to load thru the service script but it will not start. I get an error âexecutable path is not absoluteâ. Iâm running the latest dietpi and it runs fine when started manually.
Unfortunately, there is not enough information in your question to be able to help. And it does not help that I am not super familiar with DietPi. I just now started playing with it in a VM. I am not sure what you are referring to when you say âservice scriptâ. Hopefully someone more familiar with DietPi will be able to helpâŚ
Though, the first questions that comes to mind are:
Is Node.js is installed?
It is found under: Software Additional -> Node.js
Are you using the full path in the script for the node executable?
It should be: /usr/local/bin/node
So the executable path for the extension should be: /usr/local/bin/node PATH/app.js
Where you replace âPATHâ with the location that you installed the extension.
Well, that was exactly what I needed!!
/usr/local/bin/node was what I was looking for.
The âservice scriptâ is the *.service script that I liked to load as per instruction on github.
The location of node is in a different place on dietpi.
I had tried Nativefier a while back, but it had some issues for what I wanted. In particular (1) the code as-is doesnât create the tray/menubar icon correctly for macOS. (2) Instead of hiding/showing the window when you click on the tray icon like with Fluid, it shows a context menu to show/hide the window or to quit. It has a commandline switch to disable the context menu but it doesnât seem to be implemented or it doesnât do what I think itâs supposed to. (3) The window doesnât autohide when you click off of it like it does with Fluid. (4) Thereâs no option to hide the app icon in the Dock.
Fortunately, with some help from the interwebs I was able to solve all these things mostly with some kind of brute force changes to Natifierâs code. And since it supports notifications, I donât have to leave Chrome running in the background all the time. I donât plan to submit a pull request to Nativefier (yet) since my changes are kind of brute forcey and very much customized to the web controller and how I wanted it to act, but if anyoneâs interested in having a tray icon like mine, you can find my fork here: https://github.com/jcharr1/nativefier
For #1, apparently you need Xcode (for iconconv) and imagemagick to be installed and in your path for icons to work correctly. I would image that imagemagick being installed is pretty rare on Macs, though⌠https://github.com/jiahaog/nativefier#icon-conversion-for-macos
But yeah, I agree, it is not as Mac centric as Fluid isâŚ
Well, the thing is that their icon info only applies to the main app icon. I already had Xcode and homebrew makes installing imagemagick really easy, so the main app icon wasnât the problem for me. It worked fine out of the box. The thing they didnât address and the code as-is canât handle for you is that the menubar icon for macOS has to be 16x16 (and 32x32 if you want a 2x size too). When I tried hardcoding the path to the full sized icon and rebuilding, the icon in the menubar was a huge mess that took up like 1/2 the menubar. The other problem is that the code that creates the trayicon looks in the wrong place for the icon anyway. It doesnât look for it the main app icon that Nativefier embeds into the app package (Contents/Resources/electron.icns). Itâs looking for an image named âicon.pngâ or âicon.icoâ in the folder, Contents/Resources/app. This all took quite a while to track down what was going on. So what I ended up doing as to not change the code too much, I copied my properly sized icon.png and icon@2x.png files into the app folder in Nativefierâs source directory so that when I ran it to create my RoonWebController app it automatically copied my icons into the right folder in the app package. Maybe it works fine on other platforms, but it didnât on macOS.
Ahh gotcha. Now I see why you were looking at code changes then.
It works on Linux because you just point the launcher shortcut at a .png file and the window manager does the rest. I vaguely remember it working on Windows 7 for the 5 minutes I was using it there, too.
Unfortunately, the newer versions after 1.2.0 do not work anymore with older iPhones/iPads, at least with me. The iPad 2 works well with version 1.2.0., but with the changes in version 1.2.3 there is an error in displaying the zoneList (see image). The great advantage of Roon Web Controller for me is that I can control Roon with an old iPad that cannot run the 64bit RoonRemote App. Since Apple did/does not allow installation the of alternative browser engines old iPhones/iPads are stuck with WebKit of the iOS version that Apple allows to update. For the iPad2 it is iOS version 9.3.5. Same for the iPhone 4s. Independent of the used browser app (Safari, Chrome, Opera, Firefox).
The âLibraryâ part works well (of both 1.2.0 and 1.2.3), only the âNow Playingâ screen does not work.
It would be great when this problem could be resolved. For now I stay with the Roon Web Controller 1.2.0.
That is definitely a bug. The intent is that older devices should work, so if one doesnât it is a problem.
I have some older iPads that I can test with. I will check themâŚ
Does 1.2.1 or 1.2.2 work? I am reviewing a diff between 1.2.0 and 1.2.3 and I am not seeing anything that would cause this error.
Edit: I checked my iPad 4 (IOS 10) and it is working. I am waiting for my iPhone 5s to charge up enough to turn on and I am looking for my iPhone 4 (but I may have gotten rid of itâŚ)
That looks like a Javascript error. Do you have a Mac? If so you can turn on âDeveloper modeâ with Safari on both the Mac and the iPad 2. When you connect the iPad to the Mac, you can open Safari and see the console log from the iPad on the Mac. That should show the Javascript error - including which line of code the error is on.
1.2.1 works on IOS 9.3.5
I do not have 1.2.2. Iâm using zip files from your page as I have no git installed (Iâm less than a hobby programmer). Iâm using Macs and iPad and have installed node.js on the Mac and have followed your instructions and am able to make the Room Web Controller working. At this place many thanks for such a great extension and easy to follow instructions! I followed your advise to turn âDeveloper modeâ on and could identify the error in 1.2.3 that occurs when using IOS 9.3.5. It is the command âletâ on line 96 that might not be available in IOS 9. See screenshot:
Yes, this does the job. With var instead of let ver. 1.2.3 works on my IPad2 with IOS 9.3.5.
Thanks! I hope this does not impede other, future functionality. I would be greatful when I could stay on the official copy.