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
Provides DBus for client and server.
In your initialization scripts:
npm install @osjs/dbus-provider
// Client import {DBusServiceProvider} from '@osjs/dbus-provider'; osjs.register(DBusServiceProvider); // Server const {DBusServiceProvider} = require('@osjs/dbus-provider/src/server.js'); osjs.register(DBusServiceProvider);
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);
- Use internal websocket
- Sponsor on Github
- Become a Patreon
- Support on Open Collective
- Contribution Guide
See the Official Manuals for articles, tutorials and guides.