kdeconnect
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

KDE Connect Bindings for NodeJS

Small script using DBus to allow a NodeJS application to communicate with connected devices via KDE Connect

Requirements

  • DBus support
    • NodeJS >= 10.8.0
    • Linux Desktop with DBus Support
  • KDE Connect installed and running

API

The API is written fully in Typescript, so check out the declaration file for additional infos

async getAvailableDevices()

Returns a list of KDEDevices currently known or available

class KDEDevice

Can be manually created or retrieved using getAvailableDevices

Constructor

KDEDevice(id, bus)

Name Type Info
id string KDE ID, can be stored from old device or retrieved manually
bus MessageBus optional, DBus-Session to use

Properties

Name Type Info
id string KDE ID
name string Device Name
type string smartphone | desktop
isReachable boolean Is device currently reachable
isTrusted boolean Is device trusted
connectivity {type: string, strength: number} cellular data (not wifi)
battery {charge: number, charging: boolean} battery status
media KDEMediaHandler Returns a separate handler for media control. See below

Functions

Signature Info
async setup(): Promise<void> if a device is manually created, using its KDE ID, this must be called befor use
async shareFile(filePath: string): Promise<void> Shares the file from file path with the device (copying it to the previously chosen folder on the device)
async shareURL(urL: string): Promise<void> Shares the url with the device, either as a notification or by directly opening the link
async shareText(text: string): Promise<void> Shares the text with the device, normally copying it into the devices clipboard
async ring(): Promise<void> Let`s the device ring
async ping(msg?: string): Promise<void> Sends a notification with an optional message to the device
async getNotifications(): Promise<KDENotification[]> Returns a list of notifications currently present on the device. See below
async requestPair(): Promise<void> Request pairing
async unpair(): Promise<void> Unpair device

Events

Every device has an event handler linked to it, accessible by the events Property.

Event Values
onTrustedChanged (boolean)
onNameChanged (string)
onTypeChanged (string)
onReachableChanged (boolean)
onBatteryChanged ({charge: number, charging: boolean})
onConnectivityChanged ({type: string, strength: number})
onConnectivityChanged ({type: string, strength: number})
onPairingRequest (KDEPairingRequest)

class KDENotification

Constructor

Not externally accessible

Properties

Name Type Info
appName string App origin name
dismissable boolean Is this message dismissable
silent boolean Is it a silent message
text string Message text
ticker string Message short version
title string Message title

Functions

Signature Info
async dismiss(): Promise<boolean> Dismisses message on device. Returns true if message is dismissable, false otherwise

Events

No events

class KDEMediaHandler

Constructor

Not externally accessible

Properties

Name Type Info
length number length of currently playing track in ms
position number already passed time of currently playing track in ms
volume number device volume in %
isPlaying boolean is music playing or paused
player string name of currently playing app
nowPlaying string name & artist of track
title string track title
artist string track artist name
album string track album name

Functions

Signature Info
async Next(): Promise<void> Play next track
async Previous(): Promise<void> Play previous track / Jump to start of current track
async Play(): Promise<void> Play track
async Pause(): Promise<void> Pause track
async PlayPause(): Promise<void> Switch Between Play/Pause
async Stop(): Promise<void> Stop track
async update(): Promise<void> Manually update data; Use to keep track of position

Events

Event Values Info
onMediaPlayerUpdated () Called when any data changes. Can fire multiple times in succession; Does NOT fire when position changes

class KDEPairingRequest

Constructor

Not externally accessible

Properties

None

Functions

Signature Info
async Accept(): Promise<void> Accept request
async Reject(): Promise<void> Reject request

Events

None

Do To / Not supported yet

  • Multiple Media Players
  • SFTP Bindings
  • Contacts / SMS / Telephone
  • Photo Requesting / Recieving
  • Remote Control / Keyboard
  • Remote Commands

Package Sidebar

Install

npm i kdeconnect

Weekly Downloads

1

Version

1.0.2

License

BSD-3-Clause

Unpacked Size

55.2 kB

Total Files

21

Last publish

Collaborators

  • markandre2106