Snaps to develop a Web kiosk on Ubuntu Core (using Wayland)

This is possible with maim. Here is my snap/snapcraft.yaml to create a snap:

name: maim
base: core18
version: "5.4.68-1.1"
summary: DOSBox
description: |
  maim - takes screenshots of your desktop

confinement: devmode

apps:
  maim:
    command: maim
    plugs:
      - x11-plug
    slots:
      - x11

parts:
  maim:
    plugin: nil
    stage-packages:
      - maim

plugs:
  x11-plug: # because cannot have identical plug/slot name in same yaml.
    interface: x11

With maim installed I’ll take a screenshot with

sudo DISPLAY=:`pgrep --list-full Xwayland | cut -d: -f2` maim -g 1080x1080+0+0

As described above there is a problem with the portrait mode and currently I am only able to take a screenshot in this size, even if the screen is 1080 x 1920.

@greyback I want to give this a try, and I was checking the source code of the chromium-mir-kiosk, which I understand is here:

In the code the chromium version is still 72.x, but on the store the latest available version is 76.x:

$ snap info chromium-mir-kiosk
name:      chromium-mir-kiosk
...
channels:
  stable:    –                                   
  candidate: –                                   
  beta:      69.0.3497.100 2018-09-26 (35) 163MB -
  edge:      76.0.3809.100 2019-08-20 (64) 174MB -

So I was guessing, where is the latest code for the snap?

Thanks!

@pachulo
Source is here: https://git.launchpad.net/~mir-team/+git/chromium-mir-kiosk?h=master
but it hasn’t been touched in some time, so I’ve no idea if it will build. We’re not developing it any further, and instead pointing people at https://snapcraft.io/wpe-webkit-mir-kiosk
Thanks
-G

Well, the latest snap from the edge channel is from yesterday, so I guess that it builds OK.

I’ve read about this, but for a kiosk running a browser and an app that does not need any graphics accelerated by hardware, it made more sense to have a Chromium browser with this kiosk extension, at least from what I’ve read so far…

I guess that this also means that you are not gonna update this anymore, isn’t it?

Thanks again!

I’d be surprised if wpe-webkit doesn’t work on hardware without a GPU. It is lighter so might be more performant…

Kiosk extension can indeed work with chromium (that’s what chromium-mir-kiosk has built-in), but I found it hard to trust the extension system to make a fully secure kiosk - as in, I often found ways to break out of the kiosk to get a fully chromed webbrowser. IMO it would be safer to just use something that gives you a simple webview, which you can add whatever kiosk-y features you need on top.

Nope, we’re not planning on developing chromium-mir-kiosk further.
-G

1 Like

Yeah, I’m sure that it should perform better for graphic applications, but I’m interested in raw JavaScript performance, and my experience tells me that V8, which Chromium uses, is one of the best.
I guess I will have to find out if JavaScriptCore, which I understand WPE also uses, is as good.

This is great information! :grinning: Thanks a lot!

sigh

I realize chromium-mir-kiosk was offered as a proof of concept. People weren’t supposed to use it but rather build their own. But this is Ubuntu where the goal is to lower the barrier to entry. And chromium-mir-kiosk works. It didn’t require figuring out all the nitty-gritty of snaps and wayland and X11 and on and on to make a kiosk. I’m disappointed that it has been abandoned.

Things always change but it would be really nice if tools being created for people who are making these sorts of unattended systems were a bit more stable. At least make sure that before switching things up, the new solution at least has a way to do everything the old one does and a path to get there. For example, wpe-webkit-mir-kiosk does not appear to have the same options that chromium-mir-kiosk did. resettime, hidecursor, multiple urls, etc. Not to mention that using a different rendering engine has implications for development, testing, and performance. I can run chromium and be pretty confident that APIs, CSS, and rendering will be the same and JS performance will be good. What should I run on my desktop to mimic wpe-webkit-mir-kiosk?

The snap system and ubuntu core sell themselves on low-maintenance, deploy and forget use cases. But if every year snap app developers are going to jump on some new thing and abandon users who took them up on previous stuff, then it isn’t stable at all. If I were a competent Linux app developer with time on my hands, I wouldn’t need snaps. As a researcher in a completely different field trying to cobble something together, snaps are fantastic (when they work consistently.)

Anyway, there are my two cents. I will spend some time and see if I can sort out how to maintain chromium-mir-kiosk myself. If I am successful, I’ll let people know.

Don’t sigh

A lot of software developed to prove a concept never reaches the status of being a supported product. There can be many reasons for this: Maybe the concept is flawed and there are insurmountable technical issues, maybe a better alternative is found, or maybe the hoped for value isn’t realized.

In the closed source world you rarely see the many projects that don’t make it to “product”, in the FOSS world you’ll see many that don’t get that far. That should be seen as an advantage of FOSS, not a disappointment.

If these projects work well enough for you, you can use them. If they don’t work well enough for you then you can benefit from them by fixing them yourself or motivating someone with the necessary skills to do it. If even that is impossible you may be inspired to do something better.

As for chromium-mir-kiosk: We know people are using it and, because of that, haven’t removed it from the store. But, as a result of our work on chromium-mir-kiosk, we identified a number of technical issues that we could not have predicted beforehand. Fortunately our work inspired something similar that has fewer problems: wpe-webkit-mir-kiosk.

I realise that it is unlikely for “a researcher in a completely different field”, but you want to approach Canonical on a commercial basis, they would likely be willing to revive the project. (To do a good job, that would require funding at least one developer.) Similarly, If you want to take over chromium-mir-kiosk yourself, that’s FOSS (but, in practice, I think you’ll reach the same conclusion we did).

Please see the good in having all these options!

As for testing on your desktop:

6 Likes

Hi There! hidecursor=true is not working

I believe this to be this (resolved) issue?

https://github.com/MirServer/mir-kiosk/issues/30

Hello guys. I would like to kindly ask you - is it possible to boot directly into mir-kiosk with preferable snap started? Ubuntu / Ubuntu Core? I’m trying to build a plug-n-play solution and can’t find any information on this usecase in forums nor documentation.

In other words - I’m able to start mir-kiosk from terminal and also to start a snap - but is it possible to start this session at boot/reboot, without login, ubuntu loading screen, etc, and jump right into mir-kiosk?

Thank you very much for your patience and help. All the best, Tomas

You’re looking at the wrong thread. Try here:

How about:

I’m the developer of the previously mentioned kiosk app. Found this thread since I’m in the initial stages of doing this exact work: moving over the functionality from the existing Chrome App into a proper snap and primarily starting to focus on ubuntu core instead of Chrome OS.

Hey @lookitscook, welcome aboard :slight_smile:

Let us know if you need any help - here is fine, or we’re in #mir-server on Freenode.

2 posts were split to a new topic: Mir-kiosk on Raspberry Pi 4

Hi @alan_g and @greyback

I have cloned chromium-mir-kiosk to my own repo. https://github.com/zhex900/mir-kiosk-chromium

I managed to build a new snap. It works. But I have one problem. The keyboard and mouse does not work! I can see the cursor. But I cannot click anything. The interesting thing when the page first loads I can only click once.

I have a touch screen, all the touch function works.

Your original snap chromium-mir-kiosk mouse and keyboard works. Are you able to help me?

Another question, why was chromium-mir-kiosk abandoned? @alan_g mentioned technical issues. What was it? It works fine for me on Intel NUC.

No, the issues are logistic.

Browsers are expensive to package, not only are the codebases large which takes time to build, they are subject to frequent security advisories and releases. The PPA from which the snap was built is no longer maintained and, as you see, problems crop up.

There was, and is no value to my team to justify continuing this experiment when Glancr support wpe-webkit-mir-kiosk which does a better job.

Hi @alan_g

Thank you for your reply. Do you have any idea why my chromium snap does not work with mouse and keyboard. Where @greyback’s original version works fine.

Any suggestions?

Jake

chromium-mir-kiosk is a dead end, we can’t help you with it.