Skip to content

maxrdz/lotus

Repository files navigation

Lotus

The Lightweight Open Source Touchscreen User Shell

Pipeline

Project Mission

To deliver a lightweight, modular, touchscreen-friendly shell for GNU/Linux mobile devices that provides the bare minimum set of features to use your mobile device while providing a modular system for extending the shell. The stock shell should consume the least possible amount of system resources. (CPU time, memory, etc.) The user experience should be modern, respectful, and elegant.

Project Requirements

  • Support the Wayland display server protocol.
  • Make use of Freedesktop (XDG) standards.
  • Support for internationalization and accessibility.
  • Shell should be modular in the sense that it can be extended by third party software.
  • Stock shell should have zero integration with any existing desktop environment ecosystem.
  • Support plugins that can be loaded at runtime as dynamic libraries.
  • Provide a plugin API that exposes a stable FFI (C ABI) via cdylib crates.
  • Rollback mechanism for hot reloading plugins at runtime without leaving orphaned changes.

Building

Lotus uses Git for version control and Meson+Ninja as the build system. The quickest way to build for release is to do the following:

Getting the source

git clone https://gitlab.com/maxrdz/lotus.git
cd lotus/

Dependencies

To build Lotus, run the following in the repo root directory:

meson setup build
meson compile -C build

You can append the -Dprofile=debug argument to build for debug.

Installing

To install a build of Lotus, run:

meson install -C build

Cross Compiling

PLEASE install cross-rs via:

cargo install cross --git https://github.com/cross-rs/cross

The cross project is in a weird state where it doesn't have much motivation and/or time to cut a release, so you need to pull from the main branch to get a lot of bug fixes since the 'latest' release as of December 2024.

Then, you can run:

meson setup build -Dtarget=aarch64-unknown-linux-gnu
meson compile -C build

Copyright and Software License

Copyright (c) 2025 Max Rodriguez me@maxrdz.com

"Lotus" can be found at https://gitlab.com/lotus-shell/lotus

"Lotus" is distributed under the terms of the GNU General Public License, either version 3.0 or, at your option, any later version WITHOUT ANY WARRANTY. You can read the full copy of the software license in the COPYING file.