Getting Started
Develop new features for Luniris OS easily thanks to its modular architecture.
How Features Work
Features are lightweight programs that communicate with the Luniris OS main application through a local gRPC API. This architecture enables features to control various system components, including:
- Eye movement and positioning
- Bluetooth LE communication
- Settings storage
- And much more
Technical Implementation
The gRPC communication uses a UNIX socket file located at:
[temp_directory]/features.socket
Socket Path Examples by Language/Framework:
- C#
- Node.js
var socketPath = Path.Combine(Path.GetTempPath(), "features.socket");
const os = require("os");
const socketPath = `unix:${os.tmpdir()}/features.socket`;
Supported Development Options
Programming Languages and Frameworks
Thanks to gRPC's wide compatibility, you can develop features using:
- .NET 10 (C#)
- NodeJS (Javascript / Typescript)
- Native binary (wide compatibility)
Native binaries must be compiled for the ARM64 platform with static linking.
Feature Structure
Required Manifest Files
Each feature requires two JSON manifest files and two PNG icons, located in the root directory:
-
manifest.json- Contains feature metadata (name, version, ID, etc.)
- View the manifest.json guide
-
settings.manifest.json- Defines the settings structure and database fields
- View the settings.manifest.json guide
-
icon.256.pngandicon.64.png- Used to display the feature icon across different sections of the OS
- Requires one 256x256 PNG file named
icon.256.png - Requires one 64x64 PNG file named
icon.64.png
Packaging
Package all feature files, including the manifest files, into a standard ZIP archive.
Building Your Feature
-
Create a project directory containing:
- Your source code files
- The required manifest files
- Any additional assets
-
Package your feature into a ZIP file:
- Your source code files
- The required manifest files
-
Install your feature by following the installation guide