The core system daemon for JappeOS, manages sessions, power, and more.
This is the core system daemon for JappeOS, which manages sessions, accounts, power, and more.
It exposes a backend-agnostic D-Bus interface intended to be consumed by higher-level system components such as the
desktop environment, which uses it through jappeos_services.
- Session management
- Account management
- Power management
- Network handling
Manages user sessions and everything system-related that is managed via a GUI.
Important
This daemon is a core system component of JappeOS. It is not intended to be run on a general-purpose Linux distribution or a personal system.
You should only run it inside a JappeOS environment, such as:
- A JappeOS development VM
- A chroot or container matching the JappeOS root filesystem
- A JappeOS system image used for debugging or testing
Running this daemon on a host system outside JappeOS may interfere with system services, session management, networking, or power management. You can still build it on any system, given that the requirements below are met.
Building requires a Linux system with the following dependencies available:
- CMake ≥ 3.31
- C++20-compatible compiler (e.g. GCC or Clang)
- pkg-config
- systemd (runtime requirement)
- Development headers for:
dbus-1pamlibnm(NetworkManager)
From the project root directory:
mkdir -p build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .This will produce the jappeos_core executable in the build/ directory.
For a debug build, use:
cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake --build .- This project is Linux-only and relies on Linux-specific APIs and system services.
- The daemon is designed to run exclusively as a systemd service and should not be launched manually.
- CPU feature flags are intentionally restricted to ensure compatibility across supported hardware.
For now, the JappeOS filesystem has this service and its required systemd, PAM, D-Bus files "hardcoded" inside the
/jappeos/ directory. See JappeOS-Build for the latest filesystem structure.
Installation should be as easy as dropping the built jappeos_core binary inside the /jappeos/ directory in the
filesystem, and building the *.iso.
Binaries will later be served from a proper package manager repository.
Contributions of all kinds are welcome and appreciated. You can help the project by:
- ⭐ Starring the repository to show your support
- 💖 Sponsoring the project (if available)
- 🐞 Reporting bugs via GitHub Issues
- 💡 Requesting or discussing new features
For code contributions, please see CONTRIBUTING.md for guidelines.
This repository is part of the JappeOS project and is licensed under the terms described in the LICENSE file.