1.0.6 • Published 4 years ago

@osjs/dbus-provider v1.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

OS.js is an open-source web desktop platform with a window manager, application APIs, GUI toolkit, filesystem abstractions and much more.

Support Support Donate Donate Community

OS.js DBus Service Provider

Provides DBus for client and server.

Installation

In your initialization scripts:

npm install @osjs/dbus-provider

Usage

// Client
import {DBusServiceProvider} from '@osjs/dbus-provider';
osjs.register(DBusServiceProvider);

// Server
const {DBusServiceProvider} = require('@osjs/dbus-provider/src/server.js');
osjs.register(DBusServiceProvider);

Client Example

const created = dbus => {
  // Send a raw dbus message
  dbus.send({
    path: '/org/freedesctop/DBus',
    destination: 'org.freedesktop.DBus',
    interface: 'org.freedesktop.DBus',
    member: 'AddMatch',
    signature: 's',
    body: [
      'type='signal''
    ]
  });

  // Listen for raw messages
  dbus.on('response', (...args) => console.log(args));

  // Subscribe to some event
  const iface = dbus.interface('org.freedesktop.Notifications', '/org/freedesktop/Notifications', 'org.freedesktop.Notifications');
  iface.subscribe('ActionInvoked', (...args) => {
    console.log(...args);
  });

  // Call some member
  const iface = dbus.interface('org.freedesktop.Notifications', '/org/freedesktop/Notifications', 'org.freedesktop.Notifications');
  iface.call('Notify', 'exampl', 0, '', 'summary 3', 'new message text', ['foo', 'bar'], [], 5)
    .then(response => console.log(response));

  // Get all properties
  const iface = dbus.interface('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager/Devices/4', 'org.freedesktop.NetworkManager.Device');
  iface.props()
    .then(response => console.log(response));

  // Get a property
  const iface = dbus.interface('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager/Devices/4', 'org.freedesktop.NetworkManager.Device');
  iface.get('Managed')
    .then(response => console.log(response));

  // Set a property
  const iface = dbus.interface('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager/Devices/4', 'org.freedesktop.NetworkManager.Device');
  iface.set('Managed', false)
    .then(response => console.log(response));

  // Close the bus
  dbus.close();
};

core.make('osjs/dbus')
  .systemBus()
  .then(created);

TODOs

  • Use internal websocket

Contribution

Documentation

See the Official Manuals for articles, tutorials and guides.

Links

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago