Weston

Pekka Paalanen ppaalanen at gmail.com
Fri Nov 11 11:19:51 UTC 2016


On Fri, 11 Nov 2016 10:18:04 +0000
Andrea Giammarchi <andrea.giammarchi at gmail.com> wrote:

> Thanks for your answer.
> 
> > you should be starting weston, not weston-launch, when you have a proper  
> logind. weston-launch is for users who do not have logind service.
> 
> I think weston-launch does more than just weston, in some case weston
> wasn't able to start full-screen but I might give it another try with just
> weston on that very same service, unless there is a better way (for which
> I'd love an example)

Start-up problems may have well been because your abuse of the shell
client parameter.

There is https://phabricator.freedesktop.org/T63 with some hints.

One key point I believe is that Weston expects the VT to be already
active where it will be started on. That might use some fixing in
Weston, but without breaking setups that have no VTs.

> > This is really not meant to be used like you use it. The shell client is  
> a special client, it is not the place to plug in random applications for
> autolaunch.
> 
> AFAIK Weston is a compositor but it does not provide a way to auto launch
> applications if not through the shell.

Correct, patches to add autolaunch feature were started but never finished:
https://lists.freedesktop.org/archives/wayland-devel/2014-October/017971.html


> What you see there is what Tizen does (or used to do) together with every
> other Kiosk based on Weston.
> 
> Is there any other way to launch a full screen-kiosk app if not through
> shell?

Perhaps with a systemd unit?

Conceptually, both Weston and the app should be launched from a systemd
user session, because Weston is supposed to run in a valid session. I
just don't know how to do auto-login with systemd, and the other issue
is the VT switching.

Weston also supports systemd socket activation and watchdog, if you
load Weston's systemd plugin. The plugin also provides start-up
notification so that systemd won't start dependent services too early
AFAIU.

> > E.g. if you have a floating window, and you want to resize it by dragging  
> a pointer, the cursor is left as what the app last set it, rather than the
> cursor the compositor would pick.
> 
> Benja is a Web Kiosk, has no floating window, just evnetually Gtk modals
> and these show up fine.
> 
> 
> > You cannot have screen locking.  
> 
> I've posted my configuration which disables screen locking, not an issue.
> 
> 
> > Indications for frozen app windows is missing.  
> 
> if the browser freeze there's nothing else Benja can do if not a browser
> reset

Indications for the user; For frozen windows, weston is intended to
show a busy cursor. In your case, the cursor will be left what ever it
happened to be, the browser window is frozen, and no other indication
is given to the user. The cursor will stil move.

If your browser was managed by systemd, you could implement the systemd
watchdog in the browser process and have systemd restart the browser if
it hangs.

Weston also detects frozen windows, but does not implement an auto-kill
or restart.

> > The compositor start-up will take long, because it needs to time out before  
> fading in since the shell client is not signalling ready. In the future
> there might be more things than just fade-in that wait for the read-signal.
> 
> the fade and animations are disabled, as you can see from the config so not
> an issue.
> 

Until we add the next feature that requires the ready-signal before
weston becomes usable.

> 
> > If your app ever goes non-fullscreen, you will see garbage outside the app  
> window.
> 
> it never does that. It's an always full screen Web Kiosk with disabled
> resize.
> 
> 
> 
> > You possibly see garbage or glitches during startup if you disable the fade-in  
> animation.
> 
> I don't, like I've said Benja works already. It has been out for months now.
> 
> 
> 
> > Maybe mod+tab shows wrong blending as there is no wallpaper.  
> 
> I don't want wallpaper, or at least not a system one, it's a Web Kiosk
> system.

You missed the point. Mod+tab makes windows temporarily
semi-transparent. That effect will probably screw up if there is no
opaque surface at the bottom of the scenegraph (the wallpaper).

Users can also use the mouse and keyboard to make windows
semi-transparent.

> > Those are just what came to mind off-hand, there's possibly more.  
> 
> If you think there are more specific for Benja use case please let me know
> 'cause so far ....
> 
> 
> > So yeah, it probably works for you for now, if you don't pay attention to  
> details and nothing in apps ever fails. I'd call that fragile.
> 
> ... I've paid attention already to these details and configured it to *not*
> be fragile. (it's been on for weaks now on my raspi2)

That's your opinion. This is mine. You are abusing a feature of weston
in a way it was never meant to be used, and is not intended to keep on
working. It's your choice, at least now you know there might be issues.

In the future the special shell client will likely gain more
responsibilities. Whether that will break your use case or not remains
to be seen.


Thanks,
pq


> On Fri, Nov 11, 2016 at 9:47 AM, Pekka Paalanen <ppaalanen at gmail.com> wrote:
> 
> > On Thu, 10 Nov 2016 14:48:53 +0000
> > Andrea Giammarchi <andrea.giammarchi at gmail.com> wrote:
> >  
> > > > why is it using weston-launch when you have systemd?  
> > >
> > > I am not sure I understand; that file is a service that's enable via
> > > systemctl and it launches weston once the graphic is ready, right?
> > >
> > > How else would you start weston on boot? Is there already a weston  
> > service  
> > > I am missing? That might simplify things for me.  
> >
> > Hi,
> >
> > you should be starting weston, not weston-launch, when you have a
> > proper logind. weston-launch is for users who do not have logind
> > service.
> >
> > weston-launch does support cases where logind exists, in which case it
> > remains unused - an extra setuid-root process with no purpose.
> >  
> > > > No, that does not fully work  
> > >
> > > FWICT benja works already pretty well and for a kiosk like system I think
> > > the following is enough, or at least it is enough for benja use case ...
> > > isn't it? Am I missing some configuration?
> > >
> > > ```
> > > [core]
> > > idle-time=0
> > > modules=xwayland.so
> > >
> > > [shell]
> > > client=/usr/bin/app  
> >
> > This is really not meant to be used like you use it. The shell client
> > is a special client, it is not the place to plug in random applications
> > for autolaunch.
> >  
> > > animation=none
> > > close-animation=none
> > > startup-animation=none
> > > locking=false
> > > ```
> > >  
> > > > It may appear to work at first, but you will miss the corner cases.  
> > >
> > > can you please indicate some of these corner cases?  
> >
> > I listed them already.
> >
> > E.g. if you have a floating window, and you want to resize it by
> > dragging a pointer, the cursor is left as what the app last set it,
> > rather than the cursor the compositor would pick.
> >
> > You cannot have screen locking.
> >
> > Indications for frozen app windows is missing.
> >
> > The compositor start-up will take long, because it needs to time out
> > before fading in since the shell client is not signalling ready. In the
> > future there might be more things than just fade-in that wait for the
> > read-signal.
> >
> > If your app ever goes non-fullscreen, you will see garbage outside the
> > app window.
> >
> > You possibly see garbage or glitches during startup if you disable the
> > fade-in animation.
> >
> > Maybe mod+tab shows wrong blending as there is no wallpaper.
> >
> > Those are just what came to mind off-hand, there's possibly more.
> >
> > So yeah, it probably works for you for now, if you don't pay attention
> > to details and nothing in apps ever fails. I'd call that fragile.
> >
> >
> > Thanks
> > pq
> >
> >  
> > > On Thu, Nov 10, 2016 at 10:57 AM, Pekka Paalanen <ppaalanen at gmail.com>
> > > wrote:
> > >  
> > > > On Thu, 10 Nov 2016 09:44:58 +0000
> > > > Andrea Giammarchi <andrea.giammarchi at gmail.com> wrote:
> > > >  
> > > > > It looks like you want something like benja ( https://benja.io/ )  
> > which  
> > > > is  
> > > > > Weston + Electron based.
> > > > >
> > > > > It uses a service:
> > > > > https://github.com/WebReflection/benja/blob/gh-  
> > > > pages/os/sh/weston-compositor.service  
> > > > > You can enable it via `systemctl enable weston-compositor`  
> > > >
> > > > Hi,
> > > >
> > > > why is it using weston-launch when you have systemd?
> > > >  
> > > > >
> > > > > You also need to put
> > > > > ```
> > > > > [shell]
> > > > > client=/usr/bin/chromium
> > > > > ```
> > > > > or the application you want to use instead of the default  
> > desktop/shell  
> > > > > inside the `~/.config/weston.ini` file, and this can be also a bash  
> > file  
> > > > > that launches chrome in fullscreen or with specific parameters.  
> > > >
> > > > No, that does not fully work, unless you have modified chromium to also
> > > > take care of weston-desktop-shell's responsibilities.
> > > >
> > > > weston-desktop-shell does not only do the wallpaper and panel, it also
> > > > provides the lock screen and pointer cursors for grabs and unresponsive
> > > > apps, plus more. See weston-desktop-shell.xml in Weston repository.
> > > >
> > > > It may appear to work at first, but you will miss the corner cases.
> > > >
> > > > Doing that also gives the app privileges it would not have otherwise
> > > > (i.e. bind to and use weston_desktop_shell interface).
> > > >
> > > >
> > > > Thanks,
> > > > pq
> > > >  
> > > > > You can test that everything works as expected simply using
> > > > > `/usr/bin/weston-terminal` as client to find yourself within the  
> > shell  
> > > > (or  
> > > > > you can just use Benja to develop your portable app)
> > > > >
> > > > > Best Regards
> > > > >
> > > > >
> > > > >
> > > > > On Wed, Oct 26, 2016 at 3:10 PM, Nikola Popovic <  
> > > > nikola.popovic at rt-rk.com>  
> > > > > wrote:
> > > > >  
> > > > > > Greetings.
> > > > > >
> > > > > > I have installed yocto on my board. Im planing to run weston just  
> > after  
> > > > > > boot finish and to run chromium inside weston. Is it possible to  
> > write  
> > > > some  
> > > > > > script or something in weston.ini to run chromium inside weston  
> > > > without my  
> > > > > > interaction.
> > > > > >
> > > > > > Tnx!
> > > > > >
> > > > > > --
> > > > > > Nikola Popovic
> > > > > > Software Engineer
> > > > > > Tel: +381 21 4801 1304
> > > > > > E-mail : nikola.popovic at rt-rk.com
> > > > > >
> > > > > > RT-RK LLC
> > > > > > Narodnog fronta 23a
> > > > > > 21000 Novi Sad
> > > > > > Serbia
> > > > > > www.rt-rk.com
> > > > > >
> > > > > > _______________________________________________
> > > > > > wayland-devel mailing list
> > > > > > wayland-devel at lists.freedesktop.org
> > > > > > https://lists.freedesktop.org/mailman/listinfo/wayland-devel
> > > > > >  
> > > >
> > > >  
> >
> >  

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 801 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20161111/ec7e0a81/attachment.sig>


More information about the wayland-devel mailing list