The foundation for many embedded graphical display implementations

Overview

Ubuntu Frame

Description

The foundation for many embedded graphical display implementations. ubuntu-frame is a simple fullscreen shell (based on Wayland) used for kiosks, industrial displays, digital signage, smart mirrors, etc.

The application you choose (or provide) gets a fullscreen window (or windows) and input from touch, keyboard and mouse without needing to deal with the specific hardware.

Configuration

There are three snap configuration options:

  • daemon=[true|false] enables the daemon (defaults to false on classic systems)
  • config=<options for the shell>
  • display=<options for display layout>

The configuration options are described in detail in REFERENCE.md

Development

Developers working with Ubuntu Frame may find the following useful:


ubuntu-frame

Issues
  • Add libfeedback and squeekboard parts

    Add libfeedback and squeekboard parts

    I haven't tested installing/running this yet because I'm having problems with snapd system-wide on Arch and didn't fire up Ubuntu yet. It builds on my machine.

    opened by wmww 20
  • Flutter app can't create a GL context on RPi 4/Ubuntu Core 20

    Flutter app can't create a GL context on RPi 4/Ubuntu Core 20

    Hi, we are in the process to port our flutter app to Ubuntu Core with Ubuntu Frame. But we sadly see an error when we try to start our app and the screen stays white. What prevents us from shipping our devices with Ubuntu Core.

    These are the logs that we see:

    2021-11-26T11:57:34Z trunk-pilot-dashboard.daemon[1071]: + snapctl get daemon
    2021-11-26T11:57:34Z trunk-pilot-dashboard.daemon[773]: + [ true = true ]
    2021-11-26T11:57:34Z trunk-pilot-dashboard.daemon[773]: + exec /snap/trunk-pilot-dashboard/x1/bin/wayland-launch /snap/trunk-pilot-dashboard/x1/bin/trunk_pilot_dashboard
    2021-11-26T11:57:35Z trunk-pilot-dashboard.daemon[1083]: error: error running snapctl: snap "trunk-pilot-dashboard" has no plug or slot named "pulseaudio"
    2021-11-26T11:57:35Z trunk-pilot-dashboard.daemon[773]: WARNING: pulseaudio interface not connected! Please run: /snap/trunk-pilot-dashboard/current/bin/setup.sh
    2021-11-26T11:57:35Z trunk-pilot-dashboard.daemon[1098]: Setting up watches.
    2021-11-26T11:57:35Z trunk-pilot-dashboard.daemon[1098]: Watches established.
    2022-01-03T10:03:44Z trunk-pilot-dashboard.daemon[1098]: /run/user/0/ CREATE wayland-0.lock
    2022-01-03T10:03:45Z -[773]: g_dbus_proxy_new_sync: assertion 'G_IS_DBUS_CONNECTION (connection)' failed
    2022-01-03T10:03:49Z -[773]: Failed to start Flutter renderer: Unable to create a GL context
    

    We followed the "RUNNING_ON_YOUR_DEVICE" documentation to set up Ubuntu Frame and "Run Flutter Applications on Ubuntu Core" to configure our flutter app.

    Here is also our snap config:

    name: trunk-andon
    version: 1.0.3
    summary: Trunk Andon App
    description: Trunk Andon app to visualize pilot data.
    
    confinement: strict
    base: core18
    grade: stable
    
    apps:
      daemon:
        daemon: simple
        restart-condition: always
        command-chain:
          - bin/run-daemon
          - bin/wayland-launch
        command: bin/trunk-andon
        extensions: [flutter-master]
    
      trunk-andon:
        command-chain:
          - bin/wayland-launch
        command: trunk-andon
        extensions: [flutter-master]
    
    parts:
      trunk-andon:
        source: .
        plugin: flutter
        flutter-target: lib/main.dart
    
      mir-kiosk-snap-launch:
        plugin: dump
        source: https://github.com/MirServer/mir-kiosk-snap-launch.git
        override-build: $SNAPCRAFT_PART_BUILD/build-with-plugs.sh opengl pulseaudio wayland
        stage-packages:
          - inotify-tools
    
      assets:
        plugin: nil
        stage-packages:
          - dmz-cursor-theme
          - fonts-dejavu
          - fonts-freefont-ttf
          - fonts-ubuntu
    
    layout:
      /usr/share/fonts:
        bind: $SNAP/usr/share/fonts
      /etc/fonts:
        bind: $SNAP/etc/fonts
      /usr/share/icons:
        bind: $SNAP/usr/share/icons
    

    Did we configure something wrong or do we need to connect the app with wayland manually to make it work? Thank you!

    opened by KirioXX 15
  • [Merged by Bors] - Add screenshot command

    [Merged by Bors] - Add screenshot command

    Draft because it requires unreleased Mir from the dev PPA.

    Used grim (wayshot isn't in the Ubuntu repos, and doesn't seem better in any way relevant to us). Connects to the home plug and saves by default in the current directory.

    opened by wmww 10
  • If aa_getpeercon() fails then ubuntu-frame-* client snaps don't work with default configuration

    If aa_getpeercon() fails then ubuntu-frame-* client snaps don't work with default configuration

    On some systems (e.g. Archlinux minimal console only installation 5.18.12-arch1-1) this call fails and a workaround is required to enable the extensions needed by, for example, ubuntu-frame-osk.


    Original report:

    Hi,

    I have tried to get ubuntu-frame-osk to work unsuccessfully by following https://discourse.ubuntu.com/t/ubuntu-frame-osk-documentation/27568.

    The service was crashing with No virtual keyboard manager Wayland global available on release and edge versions.

    I was only able to get it working when I found this issue https://github.com/MirServer/mir/issues/2063 which resonates with the problem.

    By simply adding the config below ubuntu-frame-osk works fine on edge.

    snap set ubuntu-frame config "
    add-wayland-extensions=zwlr_layer_shell_v1:zwp_virtual_keyboard_manager_v1:zwp_text_input_manager_v3:zwp_input_method_manager_v2
    "
    

    ubuntu-frame 71-mir2.8.0+dev398 ubuntu-frame-osk 40-squeekboard-v1.17.1 wpe-webkit-mir-kiosk 2.30.5

    enhancement 
    opened by m2scared 6
  • How to EXIT the locked screen?

    How to EXIT the locked screen?

    Sorry, it might be a silly question, but I didn't find any info about this. So I installed Ubuntu 22 Desktop (minimal config) and I successfully installed ubuntu-frame and mir server. When I ran "snap set ubuntu-frame daemon=true" the screen locked and I have no idea how to get out of it. I restarted it and, as it should do, it comes back to the locked screen, but I didn;t even get to change the URL or anything else, it's just the grey screen. Usually, the kiosk locking apps have a key combination or a touch sequence to show an admin password. How does ubuntu-frame work in that respect? Thank you so much!

    documentation 
    opened by SomeDevWeb 6
  • Compatibility issues with Intel i915

    Compatibility issues with Intel i915

    Having issues enabling Frame and wondering where in the software stack the issue lies. When switching to daemon=true the screen switches to console mode with the following msg:

    [ 132.546752 ] i915 [drm] *ERROR* failed to enable link training

    Our hardware is Intel i3 with Intel UHD Graphics 620 running Ubuntu 21.10 desktop version.

    I'm guessing this is a video driver issue, but would like to know where to start looking for a fix.

    opened by mtinnes 6
  • [RPi3/Ubuntu Server 21.10] Fails to start Web Kiosk example

    [RPi3/Ubuntu Server 21.10] Fails to start Web Kiosk example

    I've followed the steps described here to set up a raspberry pi with Ubuntu Server 21.10 to show a web page with no success.

    Steps:

    1. Flash the Ubuntu Server 21.10 on an sdcard and insert into the Raspberry Pi
    2. Connected the Raspberry Pi to an HDMI external monitor
    3. Follow the instructions via an SSH connection. After running snap set ubuntu-frame daemon=true command the external monitor turns black and the cursor starts blinking on the top left of the screen. Even after entering the remaining commands the screen remains the same without showing a web page.

    Thank you in advance.

    opened by flaprimo 6
  • [Merged by Bors] - Improve logic for overriding window state

    [Merged by Bors] - Improve logic for overriding window state

    This was going wrong in several scenarios:

    1. Maximized windows were not getting fullscreened
    2. Fullscreening a window (F11 in gedit) led to it being offset from the screen corner
    opened by AlanGriffiths 6
  • Crash in `xkb_context_ref` on first client connection under X11

    Crash in `xkb_context_ref` on first client connection under X11

    Steps:

    • snap remove --purge ubuntu-frame
    • snap install ubuntu-frame --edge
    • ubuntu-frame
    • In another terminal: sudo gdb -p $( pidof frame )
    • In yet another: snap install wpe-webkit-mir-kiosk
    • snap connect wpe-webkit-mir-kiosk:wayland ubuntu-frame
    • wpe-webkit-mir-kiosk.cog
    • đŸ’„
    Thread 5 "Mir/Wayland" received signal SIGSEGV, Segmentation fault.                                                                                                                                                               
    [Switching to LWP 1662713]                                                                                       
    0x00007f74d5fd1e24 in xkb_context_ref () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libxkbcommon.so.0
    
    Thread 5 (LWP 1662713 "Mir/Wayland"):
    #0  0x00007f74d5fd1e24 in xkb_context_ref () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libxkbcommon.so.0
    #1  0x00007f74d5fd3fdc in ?? () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libxkbcommon.so.0
    #2  0x00007f74d5fd37dd in xkb_keymap_new_from_names () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libxkbcommon.so.0
    #3  0x00007f74d68b55fa in mir::input::ParameterKeymap::make_unique_xkb_keymap(xkb_context*) const () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmircommon.so.8
    #4  0x00007f74d6a33a07 in ?? () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmirserver.so.56
    #5  0x00007f74d6a33dbc in ?? () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmirserver.so.56
    #6  0x00007f74d6a33ea4 in ?? () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmirserver.so.56
    #7  0x00007f74d61278c0 in mir::wayland::Seat::Thunks::get_keyboard_thunk(wl_client*, wl_resource*, unsigned int) () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmirwayland.so.3
    #8  0x00007f74d648dff5 in ?? () from target:/lib/x86_64-linux-gnu/libffi.so.7
    #9  0x00007f74d648d40a in ?? () from target:/lib/x86_64-linux-gnu/libffi.so.7
    #10 0x00007f74d5fad628 in ?? () from target:/snap/ubuntu-frame/490/graphics/lib/libwayland-server.so.0
    #11 0x00007f74d5fa99e2 in ?? () from target:/snap/ubuntu-frame/490/graphics/lib/libwayland-server.so.0
    #12 0x00007f74d5fab65a in wl_event_loop_dispatch () from target:/snap/ubuntu-frame/490/graphics/lib/libwayland-server.so.0
    #13 0x00007f74d5fa9bd5 in wl_display_run () from target:/snap/ubuntu-frame/490/graphics/lib/libwayland-server.so.0
    #14 0x00007f74d6a4264d in ?? () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmirserver.so.56
    #15 0x00007f74d6e60de4 in ?? () from target:/lib/x86_64-linux-gnu/libstdc++.so.6
    #16 0x00007f74d649c609 in start_thread () from target:/lib/x86_64-linux-gnu/libpthread.so.0
    #17 0x00007f74d6c9d293 in clone () from target:/lib/x86_64-linux-gnu/libc.so.6
    
    Full gdb dump
      Id   Target Id                     Frame 
      1    LWP 1662678 "frame"           0x00007f74d6c90aff in poll () from target:/lib/x86_64-linux-gnu/libc.so.6
      2    LWP 1662710 "frame"           0x00007f74d64a3376 in [email protected]@GLIBC_2.3.2 () from target:/lib/x86_64-linux-gnu/libpthread.so.0
      3    LWP 1662711 "Mir/Comp"        0x00007f74d64a3376 in [email protected]@GLIBC_2.3.2 () from target:/lib/x86_64-linux-gnu/libpthread.so.0
      4    LWP 1662712 "Mir/Input Reade" 0x00007f74d6c90aff in poll () from target:/lib/x86_64-linux-gnu/libc.so.6
    * 5    LWP 1662713 "Mir/Wayland"     0x00007f74d5fd1e24 in xkb_context_ref () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libxkbcommon.so.0
      6    LWP 1662714 "frame"           0x00007f74d6c90aff in poll () from target:/lib/x86_64-linux-gnu/libc.so.6
    

    Thread 6 (LWP 1662714 "frame"): #0 0x00007f74d6c90aff in poll () from target:/lib/x86_64-linux-gnu/libc.so.6 #1 0x000055b53da9776d in egmde::FullscreenClient::run(wl_display*) () #2 0x000055b53da939d2 in egmde::Wallpaper::operator()(wl_display*) () #3 0x000055b53da90ab0 in void std::__invoke_impl<void, egmde::Wallpaper&, wl_display*>(std::__invoke_other, egmde::Wallpaper&, wl_display*&&) () #4 0x000055b53da90822 in std::__invoke_result<egmde::Wallpaper&, wl_display*>::type std::__invoke<egmde::Wallpaper&, wl_display*>(egmde::Wallpaper&, wl_display*&&) () #5 0x000055b53da900f9 in std::result_of<egmde::Wallpaper& (wl_display*&&)>::type std::reference_wrapperegmde::Wallpaper::operator()<wl_display*>(wl_display*&&) const () #6 0x000055b53da8f0b8 in std::_Function_handler<void (wl_display*), std::reference_wrapperegmde::Wallpaper >::_M_invoke(std::_Any_data const&, wl_display*&&) () #7 0x00007f74d6ffc34a in ?? () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmiral.so.4 #8 0x00007f74d6e60de4 in ?? () from target:/lib/x86_64-linux-gnu/libstdc++.so.6 #9 0x00007f74d649c609 in start_thread () from target:/lib/x86_64-linux-gnu/libpthread.so.0 #10 0x00007f74d6c9d293 in clone () from target:/lib/x86_64-linux-gnu/libc.so.6

    Thread 5 (LWP 1662713 "Mir/Wayland"): #0 0x00007f74d5fd1e24 in xkb_context_ref () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libxkbcommon.so.0 #1 0x00007f74d5fd3fdc in ?? () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libxkbcommon.so.0 #2 0x00007f74d5fd37dd in xkb_keymap_new_from_names () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libxkbcommon.so.0 #3 0x00007f74d68b55fa in mir::input::ParameterKeymap::make_unique_xkb_keymap(xkb_context*) const () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmircommon.so.8 #4 0x00007f74d6a33a07 in ?? () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmirserver.so.56 #5 0x00007f74d6a33dbc in ?? () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmirserver.so.56 #6 0x00007f74d6a33ea4 in ?? () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmirserver.so.56 #7 0x00007f74d61278c0 in mir::wayland::Seat::Thunks::get_keyboard_thunk(wl_client*, wl_resource*, unsigned int) () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmirwayland.so.3 #8 0x00007f74d648dff5 in ?? () from target:/lib/x86_64-linux-gnu/libffi.so.7 #9 0x00007f74d648d40a in ?? () from target:/lib/x86_64-linux-gnu/libffi.so.7 #10 0x00007f74d5fad628 in ?? () from target:/snap/ubuntu-frame/490/graphics/lib/libwayland-server.so.0 #11 0x00007f74d5fa99e2 in ?? () from target:/snap/ubuntu-frame/490/graphics/lib/libwayland-server.so.0 #12 0x00007f74d5fab65a in wl_event_loop_dispatch () from target:/snap/ubuntu-frame/490/graphics/lib/libwayland-server.so.0 #13 0x00007f74d5fa9bd5 in wl_display_run () from target:/snap/ubuntu-frame/490/graphics/lib/libwayland-server.so.0 #14 0x00007f74d6a4264d in ?? () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmirserver.so.56 #15 0x00007f74d6e60de4 in ?? () from target:/lib/x86_64-linux-gnu/libstdc++.so.6 #16 0x00007f74d649c609 in start_thread () from target:/lib/x86_64-linux-gnu/libpthread.so.0 #17 0x00007f74d6c9d293 in clone () from target:/lib/x86_64-linux-gnu/libc.so.6

    Thread 4 (LWP 1662712 "Mir/Input Reade"): #0 0x00007f74d6c90aff in poll () from target:/lib/x86_64-linux-gnu/libc.so.6 #1 0x00007f74d68ad5b6 in ?? () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmircommon.so.8 #2 0x00007f74d68a4413 in ?? () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmircommon.so.8 #3 0x00007f74d6e60de4 in ?? () from target:/lib/x86_64-linux-gnu/libstdc++.so.6 #4 0x00007f74d649c609 in start_thread () from target:/lib/x86_64-linux-gnu/libpthread.so.0 #5 0x00007f74d6c9d293 in clone () from target:/lib/x86_64-linux-gnu/libc.so.6

    Thread 3 (LWP 1662711 "Mir/Comp"): #0 0x00007f74d64a3376 in [email protected]@GLIBC_2.3.2 () from target:/lib/x86_64-linux-gnu/libpthread.so.0 #1 0x00007f74d6e5ae30 in std::condition_variable::wait(std::unique_lockstd::mutex&) () from target:/lib/x86_64-linux-gnu/libstdc++.so.6 #2 0x00007f74d6a67d3b in ?? () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmirserver.so.56 #3 0x00007f74d69d3e92 in ?? () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmirserver.so.56 #4 0x00007f74d6e60de4 in ?? () from target:/lib/x86_64-linux-gnu/libstdc++.so.6 #5 0x00007f74d649c609 in start_thread () from target:/lib/x86_64-linux-gnu/libpthread.so.0 #6 0x00007f74d6c9d293 in clone () from target:/lib/x86_64-linux-gnu/libc.so.6

    Thread 2 (LWP 1662710 "frame"): #0 0x00007f74d64a3376 in [email protected]@GLIBC_2.3.2 () from target:/lib/x86_64-linux-gnu/libpthread.so.0 #1 0x00007f74d6e5ae30 in std::condition_variable::wait(std::unique_lockstd::mutex&) () from target:/lib/x86_64-linux-gnu/libstdc++.so.6 #2 0x00007f74d570fb01 in ?? () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/mir/server-platform/graphics-gbm-kms.so.19 #3 0x00007f74d6e60de4 in ?? () from target:/lib/x86_64-linux-gnu/libstdc++.so.6 #4 0x00007f74d649c609 in start_thread () from target:/lib/x86_64-linux-gnu/libpthread.so.0 #5 0x00007f74d6c9d293 in clone () from target:/lib/x86_64-linux-gnu/libc.so.6

    Thread 1 (LWP 1662678 "frame"): #0 0x00007f74d6c90aff in poll () from target:/lib/x86_64-linux-gnu/libc.so.6 #1 0x00007f74d67a636e in ?? () from target:/lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007f74d67a64a3 in g_main_context_iteration () from target:/lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007f74d6acdee9 in ?? () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmirserver.so.56 #4 0x00007f74d6ad5395 in mir::run_mir(mir::ServerConfiguration&, std::function<void (mir::DisplayServer&)>, std::function<void (int)> const&) () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmirserver.so.56 #5 0x00007f74d6ac063a in mir::Server::run() () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmirserver.so.56 #6 0x00007f74d7009064 in miral::MirRunner::run_with(std::initializer_list<std::function<void (mir::Server&)> >) () from target:/snap/ubuntu-frame/490/usr/lib/x86_64-linux-gnu/libmiral.so.4 #7 0x000055b53da8c760 in main ()

    bug 
    opened by Saviq 5
  • Services are stopped after closing a root SSH session

    Services are stopped after closing a root SSH session

    ubuntu-frame with wpe-webkit-mir-kiosk works well after a reboot. But after a few hours services are automatically shut down. And the screen becomes grey.

    Ubuntu 22.04 LTS (GNU/Linux 5.15.0-33-generic x86_64)

    snap list

    Name                  Version                 Rev    Tracking       Publisher   Notes
    core20                20220512                1494   latest/stable  canonical✓  base
    lxd                   5.0.0-b0287c1           22923  5.0/stable/
   canonical✓  -
    mesa-core20           21.0.3                  95     latest/stable  canonical✓  -
    network-manager       1.22.10-13              735    20/stable      canonical✓  -
    snapcraft             6.1                     7201   latest/stable  canonical✓  classic
    snapd                 2.55.5                  15904  latest/stable  canonical✓  snapd
    ubuntu-frame          61-mir2.7.0             1902   latest/stable  canonical✓  -
    ubuntu-frame-osk      38-squeekboard-v1.17.1  115    latest/stable  canonical✓  -
    wpe-webkit-mir-kiosk  2.30.5                  63     latest/stable  glancr      -
    

    /var/log/syslog

    May 28 20:42:48 ausstellung systemd[1]: session-14.scope: Deactivated successfully.
    May 28 20:42:58 ausstellung systemd[1]: Stopping User Manager for UID 0...
    May 28 20:42:58 ausstellung systemd[2234]: Stopped target Main User Target.
    May 28 20:42:58 ausstellung systemd[2234]: Stopped target Basic System.
    May 28 20:42:58 ausstellung systemd[2234]: Stopped target Paths.
    May 28 20:42:58 ausstellung systemd[2234]: Stopped target Sockets.
    May 28 20:42:58 ausstellung systemd[2234]: Stopped target Timers.
    May 28 20:42:58 ausstellung systemd[2234]: Closed D-Bus User Message Bus Socket.
    May 28 20:42:58 ausstellung systemd[2234]: Closed GnuPG network certificate management daemon.
    May 28 20:42:58 ausstellung systemd[2234]: Closed GnuPG cryptographic agent and passphrase cache (access for web browsers).
    May 28 20:42:58 ausstellung systemd[2234]: Closed GnuPG cryptographic agent and passphrase cache (restricted).
    May 28 20:42:58 ausstellung systemd[2234]: Closed GnuPG cryptographic agent (ssh-agent emulation).
    May 28 20:42:58 ausstellung systemd[2234]: Closed GnuPG cryptographic agent and passphrase cache.
    May 28 20:42:58 ausstellung systemd[2234]: Closed debconf communication socket.
    May 28 20:42:58 ausstellung systemd[2234]: Closed REST API socket for snapd user session agent.
    May 28 20:42:58 ausstellung systemd[2234]: Removed slice User Application Slice.
    May 28 20:42:58 ausstellung systemd[2234]: Reached target Shutdown.
    May 28 20:42:58 ausstellung systemd[2234]: Finished Exit the Session.
    May 28 20:42:58 ausstellung systemd[2234]: Reached target Exit the Session.
    May 28 20:42:58 ausstellung systemd[1]: [email protected]: Deactivated successfully.
    May 28 20:42:58 ausstellung systemd[1]: Stopped User Manager for UID 0.
    May 28 20:42:58 ausstellung systemd[1]: Stopping User Runtime Directory /run/user/0...
    May 28 20:42:58 ausstellung systemd[1]: [email protected]: Deactivated successfully.
    May 28 20:42:58 ausstellung systemd[1]: Stopped User Runtime Directory /run/user/0.
    May 28 20:42:58 ausstellung systemd[1]: Removed slice User Slice of UID 0.
    May 28 20:42:58 ausstellung systemd[1]: user-0.slice: Consumed 1.233s CPU time.
    May 28 20:42:58 ausstellung systemd[1]: snap.wpe-webkit-mir-kiosk.restart-watcher.service: Deactivated successfully.
    May 28 20:42:58 ausstellung systemd[1]: snap.wpe-webkit-mir-kiosk.restart-watcher.service: Scheduled restart job, restart counter is at 1.
    May 28 20:42:58 ausstellung systemd[1]: Stopped Service for snap application wpe-webkit-mir-kiosk.restart-watcher.
    May 28 20:42:58 ausstellung systemd[1]: Started Service for snap application wpe-webkit-mir-kiosk.restart-watcher.
    May 28 20:42:58 ausstellung wpe-webkit-mir-kiosk.restart-watcher[4979]: Wayland socket not available, waiting one second
    
    

    Restarting

    snap restart ubuntu-frame

    fixes the problem. The wpe-webkit-mir-kiosk.restart-watcher restarts the kiosk. For another few hours until the same happens again.

    wontfix 
    opened by bosgold 4
  • Popups are not dismissed after re-clicking the button that triggers them

    Popups are not dismissed after re-clicking the button that triggers them

    It appears https://github.com/MirServer/mir/issues/1818 is still present or has reemerged on frame. The frame window manager has this bug even outside of the snap. miral-shell, using the exact same Mir, does not have the bug.

    opened by wmww 4
  • Add crash reporter

    Add crash reporter

    Combines the wallpaper into a CrashReporter which, when a log file is created at a certain location, displays the log file on screen.

    Creating as draft because I haven't yet looked into where Snapcraft puts logs by default.

    opened by graysonguarino 0
  • Is there any way to run chromium on Ubuntu Core?

    Is there any way to run chromium on Ubuntu Core?

    Is there any way to run chromium on Ubuntu Core? I've just installed chromium snap on a device running Ubuntu Core and I wasn't able to run it.

    chromium --enable-features=UseOzonePlatform --ozone-platform=wayland [4361:4361:0620/151041.863045:ERROR:wayland_connection.cc(209)] Failed to connect to Wayland display [4361:4361:0620/151041.863062:ERROR:ozone_platform_wayland.cc(226)] Failed to initialize Wayland platform [4361:4361:0620/151041.863067:ERROR:env.cc(226)] The platform failed to initialize. Exiting.

    Originally posted by @jdbelo in https://github.com/MirServer/mir/issues/2463#issuecomment-1160570626

    opened by Saviq 17
  • Optionally disable Ctrl+Alt+F* VT switching

    Optionally disable Ctrl+Alt+F* VT switching

    We also may need to think about optionally locking to the Frame virtual terminal - for kiosks that have a keyboard.

    Originally posted by @Saviq in https://github.com/MirServer/ubuntu-frame/issues/66#issuecomment-1143325884

    enhancement 
    opened by Saviq 0
  • Add an option to use a background image

    Add an option to use a background image

    It is almost possible to set a background:

    $ snap set ubuntu-frame config="
    add-wayland-extensions=zwlr_layer_shell_v1
    "
    ubuntu-frame &
    swaybg -i /usr/share/backgrounds/joshua-coleman-something-yellow.jpg
    

    You'll see the default greyscale background, followed by the "something-yellow" image. But both the greyscale and the image can get repainted (e.g. after clicking on the image). The result being that the greyscale often replaces the image.


    Notes on possible implementations:

    We should stop painting the greyscale if a background image is provided.

    1. And enable the required zwlr_layer_shell_v1 extension for specific snaps. (The provider snap should be configurable though, as it needs to contain the custom image.)
    2. Or, we could bundle swaybg (or similar) in the Frame snap and use a content interface to allow users to provide an image.
    opened by AlanGriffiths 1
  • Virtualbox support

    Virtualbox support

    Are there plans to support Virtualbox?

    When I try to run in VM I get this message using the VMSVGA graphics controller:

    [2021-12-03 12:39:56.918150] < - debug - > mirserver: Using Linux VT subsystem for session management
    [2021-12-03 12:39:56.918244] <information> mircommon: Loading modules from: /snap/ubuntu-frame/489/usr/lib/x86_64-linux-gnu/mir/server-platform
    [2021-12-03 12:39:56.918275] <information> mircommon: Loading module: /snap/ubuntu-frame/489/usr/lib/x86_64-linux-gnu/mir/server-platform/graphics-gbm-kms.so.19
    [2021-12-03 12:39:56.918285] <information> mircommon: Loading module: /snap/ubuntu-frame/489/usr/lib/x86_64-linux-gnu/mir/server-platform/server-x11.so.19
    [2021-12-03 12:39:56.918293] <information> mircommon: Loading module: /snap/ubuntu-frame/489/usr/lib/x86_64-linux-gnu/mir/server-platform/input-evdev.so.8
    [2021-12-03 12:39:56.919082] <information> gbm-kms: Unsupported: No DRM devices detected
    [2021-12-03 12:39:56.919106] <information> mirserver: Found graphics driver: mir:gbm-kms (version 2.5.0) Support priority: 0
    [2021-12-03 12:39:56.919127] <information> mirserver: Found graphics driver: mir:x11 (version 2.5.0) Support priority: 0
    ERROR: /build/mir-mreCGI/mir-2.5.0/src/server/graphics/default_configuration.cpp(231): Throw in function virtual const std::vector<std::shared_ptr<mir::graphics::DisplayPlatform> >& mir::DefaultServerConfiguration::the_display_platforms()
    Dynamic exception type: boost::wrapexcept<std::runtime_error>
    std::exception::what: Exception while creating graphics platform
    ERROR: /build/mir-mreCGI/mir-2.5.0/src/server/graphics/platform_probe.cpp(137): Throw in function std::vector<std::shared_ptr<mir::SharedLibrary> > {anonymous}::modules_for_device({anonymous}::ModuleType, const std::vector<std::shared_ptr<mir::SharedLibrary> >&, const mir::options::ProgramOption&, const std::shared_ptr<mir::ConsoleServices>&)
    
    opened by EinarArnason 3
Display array is a board that sets 6 ST7735 display with a resolution of 80x160px in a linear array sharing the clock, data, rs, backlight pins together

The display array is a board that sets 6 ST7735 display with a resolution of 80x160px in a linear array sharing the clock, data, rs, backlight pins together, and leaving individual access to the cs lines of each display, This board allows you to display images with a resolution of 480x160px.

Josue Alejandro Gutierrez 62 Jul 18, 2022
A place to collaborate on code for the Embedded.fm book club. Currently reading "STM32 ARM Programming for Embedded Systems".

Welcome to the Book Club Code site! This is a place for the Embedded.fm book club to collaborate and learn together. Repo Structure Guide Top-level fo

Peter Griffin 11 Jul 21, 2022
Embedded Flutter runtime targeting Embedded Linux with Wayland

ivi-homescreen IVI Homescreen for Wayland Strongly Typed (C++) Lightweight Clang 11 Release Stripped = 151k GCC 9.3 Release Stripped = 168k Source run

null 159 Aug 8, 2022
A collection of different Cellular Automata implementations for recreational purposes

A collection of different Cellular Automata implementations for recreational purposes

Tsoding 20 Jun 27, 2022
Comparing the performance of Wave Digital Filter implementations

WDF Bakeoff Comparing performance between Wave Digital Filters implemented in C++ and Faust. Building First clone the repository and submodules: git c

null 10 Jun 19, 2022
Celeborn is a Userland API Unhooker that I developed for learning Windows APIs and Syscall implementations

Celeborn is a Userland API Unhooker that I developed for learning Windows APIs and Syscall implementations. It mainly detects and patches hooking instructions in NTDLL.dll file. All PRs are welcome!

Furkan Göksel 102 Aug 2, 2022
Competitive Programming Implementations, Resources, Solutions, and Tools

In competitive programming contests, one must write computer programs capable of solving clear-cut problems under the given contraints and limits. Most competitive programmers use C++, Java, or Python.

Dong Liu 14 Sep 23, 2021
Reference Implementations of P0267, the proposed 2D graphics API for ISO C++

P0267 Reference Implementation Please read the LICENSE before cloning or forking the code as there is important information there! Please see the wiki

cpp-io2d 303 Aug 1, 2022
Baseline implementations for common algorithms in C++

Algo Baselines Baseline implementations for common algorithms in C++. The code in this repo will probably not be generic enough that you can use it fo

null 2 Jan 21, 2022
the implementations of 'A Flexible New Technique for Camera Calibration' and Bouguet's method

StereoCameraCalibration MonocularCameraCalibration/StereoCameraCalibration/StereoCameraRectification 1、Class "MonocularCameraCalibration" provides the

gtc1072 6 Apr 14, 2022
A repository containing our learnings and implementations for the project "Anchor: The Docker Clone" under IEEE-NITK

Anchor: The Docker Clone A repository containing our learnings and implementations for the project "Anchor: The Docker Clone" under IEEE-NITK Currentl

Rakshita Varadarajan 1 Feb 7, 2022
A graphical interface to set options on devices with coreboot firmware

Corevantage A graphical interface to set options on devices with coreboot firmware. Introduction This is a utility that allows users to view and modif

null 30 Jan 22, 2022
SerenityOS - Graphical Unix-like operating system for x86 computers. 🐞

SerenityOS is a love letter to '90s user interfaces with a custom Unix-like core. It flatters with sincerity by stealing beautiful ideas from various other systems.

SerenityOS 20.7k Aug 11, 2022
Rule Engine (RE) creates an interpretable anomaly classifier from many one-feature and two-feature decision rules

Rule Engine (RE) creates an interpretable anomaly classifier from many one-feature and two-feature decision rules

James Thomas 14 Jul 16, 2022
A collection of scripts written in many different programming languages and each developed independently to perform very specific tasks (big or small)

Script Collection A collection of scripts written in many different programming languages and each developed independently to perform very specific ta

Giovanni Rebouças 5 Aug 31, 2021
Allows you to easily control via MQTT any Micronova equiped pellet stove. (MCZ, Extraflame, Laminox, and many others brands!)

micronova_controller Kits are available on Tindie! Currently out of stock. V2 will be in stock soon! Here is an overview of the additions: possibility

Philibert Cheminot 27 Apr 13, 2022
A python package to provide you with many useful tools for osu! servers, written in C++ for the best speeds possible.

pysu_bindings A python package to provide you with many useful tools for osu! servers, written in C++ for the best speeds possible. What? As most peop

James 2 Nov 29, 2021
A One Stop Place to find many useful Snippets for competitive programming

CP_Snippets A One Stop Place to find many useful Snippets for competetive programming Contribution Procedure Raise an issue about the snippet you want

Rasesh Shetty 5 Dec 6, 2021