aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/modules/kdeconnect/README.md
blob: b92cb2d76868b60abca9acb6cd313762eec52dc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# kdeconnect

KDE Connect devices in the drawer, replacing the `kdeconnect-indicator` tray
icon. Status, battery, pairing, ping, clipboard send, file share, refresh and
filesystem mount.

The tile names the reachable device and its battery when the battery plugin
reports one, a count when several are reachable, `Offline` when paired devices
exist but none is reachable, and `No devices` otherwise.

The page lists paired devices, then any discovered unpaired ones, with a
refresh control at the top and an incoming-pairing banner. A reachable row
offers Ring, Clipboard, Share and Mount; a paired row offers Unpair; an
unpaired reachable one offers Pair.

## The daemon does the clipboard

Quickshell 0.3.1 has no generic D-Bus module, only `Quickshell.DBusMenu`, so
nothing here binds to `org.kde.kdeconnect`. State is read by `qdbus6` and
actions run through `kdeconnect-cli`, with `qdbus6` for pair accept and reject,
which the CLI does not expose.

The phone-to-PC clipboard is not this module's. `kdeconnectd` loads the
clipboard plugin and writes the system clipboard itself (through
`KSystemClipboard`), and the indicator was never part of that path, so removing
the indicator does not break it. If it fails on Hyprland it is the compositor
refusing `set_selection` from a daemon with no keyboard focus, which no code
here can fix.

## Service lifetime

`alwaysActive: false`. There is no push to listen to, so the state is polled
every 5s while the drawer is open. The tile is created when the drawer panel
loads and destroyed when it unloads, and it is the tile that turns polling on
and off, so nothing polls while the drawer is closed. A consequence: an
incoming pairing request that arrives while the drawer is closed is not noticed
until it is opened, though the daemon keeps the request.

## Not built

SMS, notification forwarding, remote input, media control, presenter mode,
find-this-device and remote commands. The daemon supports them and the
indicator surfaced some; this module does not. Pairing failure comes from the
`kdeconnect-cli` exit code, not the `pairingFailed` signal, since there is no
D-Bus module to subscribe with.