GithubHelp home page GithubHelp logo

geraintwalesuk / balena-weston Goto Github PK

View Code? Open in Web Editor NEW

This project forked from igalia/balena-weston

0.0 0.0 0.0 49 KB

A drop-in wayland compositor block for Balena

License: MIT License

Shell 92.96% BitBake 7.04%

balena-weston's Introduction

balena-weston

Project Status: No Longer Under Active Development

This project was an experiment to integrate WPE into the Balena Hub.
It is not currently actively developed or maintained. The current version available from Balena Hub does not reflect the most recent advancements or patches in the WPE ecosystem.

If an up to date Balena block is very important to you, we'd be very interested to hear more. Meanwhile, if you encounter issues or are seeking updates, we recommend exploring alternative solutions or resources that align with your requirements.

Should you have any further questions or inquiries, please feel free to get in touch.

Description

Weston is the reference implementation of a Wayland compositor, as well as an useful environment in and of itself.

Out of the box, Weston provides a very basic desktop, or a full-featured environment for non-desktop uses such as automotive, embedded, in-flight, industrial, kiosks, set-top boxes and TVs. It also provides a library allowing other projects to build their own full-featured environments on top of Weston's core.

The core focus of Weston is correctness and reliability. Weston aims to be lean and fast, but more importantly, to be predictable. Whilst Weston does have known bugs and shortcomings, we avoid unknown or variable behaviour as much as possible, including variable performance such as occasional spikes in frame display time.


Requirements

Configuration Value
Define DT overlays vc4-kms-v3d

Usage

docker-compose file

version: '2'

volumes:
    weston:

services:
  weston:
    restart: always
    build: ./weston
    privileged: true
    volumes:
      - 'weston:/run/weston'

  myBlock:
    restart: always
    build: .
    privileged: true
    volumes:
      - 'weston:/run/weston'

Customization

Extend image configuration

Dockerfile.template

FROM igalia/balena-weston:%%BALENA_MACHINE_NAME%%

COPY data/	 /data/

COPY weston-init /weston-init
RUN chmod +x /weston-init

CMD [ "/weston-init" ]

weston/weston-init

...
[shell]
# Set a custom wallpaper
background-image=/data/wallpapers/MyWallpaper.jpg
...

Environment variables

There are several environment variables that can be used to tweak the Weston settings. The defaults should be okay for most cases.

Environment variable Options Default Description
WESTON_IDLE_TIME integer 0 (never) Idle time in seconds (e.g. 900)
WESTON_SHELL string desktop The shell to use (desktop, fullscreen, kiosk etc.)
WESTON_OUTPUT_USE_CURRENT_MODE 0, 1 0 Inherit the display mode from KMS console
WESTON_OUTPUT_MAX_WIDTH integer 0 Maximum horizontal resolution the compositor may set
WESTON_OUTPUT_MAX_HEIGHT integer 0 Maximum vertical resolution the compositor may set

The maximum-resolution environment variables rely on the list of modes advertised by the DRM subsystem. That means if you set for example the maximum horizontal resolution to 1920 and the list contains 3840x2160, 2560x1440, 1920x1080 and 1280x800, 1920x1080 will be picked.

The shell used will be ${WESTON_SHELL}-shell.so. You can use any shell shipped with Weston by default.

How to build

  • Getting the sources

    git clone https://github.com/Igalia/balena-weston.git
    repo init -u https://github.com/Igalia/balena-weston.git -m manifest-hardknott.xml -b main
    repo sync --force-sync
  • Generating the image root filesystem with Yocto:

    MACHINE=raspberrypi3
    ./build.sh
  • Pushing the image to the registered Docker repository:

    MACHINE=raspberrypi3
    IMAGE_DOCKER_PATH=igalia
    # BALENA_BUILD_EXTRA_ARGS="-e"  # In case of balena is being executed on a different host architecture than the balena machine target
    ./push.sh

balena-weston's People

Contributors

psaavedra avatar q66 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.