生态:手机交互kde connect

它是什么(能力总览)

KDE Connect 的核心是让手机和电脑在同一 Wi-Fi 下无缝协作,远不止收发短信。

📁 文件与内容共享

  • 跨设备传输文件:手机 ↔ 电脑双向发文件/照片/文档;Android 分享菜单里选 KDE Connect 即发
  • 共享剪贴板:手机复制的文本/链接可在电脑粘贴,反之亦然
  • 发送链接(URL):手机浏览网页时把链接推到电脑浏览器打开
  • 无线浏览手机文件:在电脑文件管理器里直接浏览手机文件,无需数据线(需手机端系统级“所有文件访问”授权,见下文 P3)

🔔 通知与消息同步

  • 通知同步:手机通知(来电/应用提醒)镜像到电脑桌面(需系统级“通知使用权”,见 P1)
  • 在电脑上回复消息:对同步过来的消息直接回复(短信/部分 IM)
  • 发送短信:在电脑上撰写并发送短信(本机已含 kdeconnect-sms 命令;需 P4/P5)

🎮 远程控制与输入

  • 虚拟触摸板与键盘:把手机当电脑的无线触摸板/键盘(需无障碍服务,见 P2)
  • 多媒体遥控:控制 VLC/mpv 等播放器的播放/暂停/切歌
  • 演示遥控器:演讲时用手机翻页,可模拟激光笔
  • 控制电脑音量:手机上直接调系统音量
  • 运行远程命令(进阶):电脑端预设 Shell 命令,手机上一点触发

🔧 设备管理与安全

  • 查找手机:点“响铃”让手机发声
  • 查看手机电量:电脑端实时显示
  • Wi-Fi 与加密:全部走本地网络,不经互联网,端到端 TLS 加密

功能由“插件”系统管理,手机与电脑端可分别启用/禁用;GNOME 桌面可用 GSConnect 扩展获得类似体验。

电脑端:本机是怎么装的(nix 声明式,2026-10-11)

模块文件: modules/system/service/kdeconnect.nix(与 docker/proxy/firewall/displayserver/git 同组)
契约: import 即生效 —— 清单里放开这一行即启用,注释掉即失效

内容(就两行有效配置):
programs.kdeconnect.enable = true;
# package 默认 = pkgs.kdePackages.kdeconnect-kde(要换 GSConnect 才改这里)

它自动做了两件事(nixpkgs 模块实测):
① environment.systemPackages 装入 kdePackages.kdeconnect-kde
② networking.firewall.allowed{TCP,UDP}PortRanges = 1714–1764

与本机防火墙的关系:
modules/system/service/firewall.nix 已把 wlp2s0 列入 trustedInterfaces
⇒ 当前走 Wi-Fi 的入站本就全通;1714–1764 这条规则是“以后收紧 trustedInterfaces”
或“改用其它接口”时的兜底,与 trustedInterfaces 不冲突。

世代: kdeconnect-desktop-module(已 rebuild)

实测验收(全部真跑过)

① 可执行文件(均在 /run/current-system/sw/bin/)
kdeconnect-cli kdeconnectd kdeconnect-indicator kdeconnect-app kdeconnect-sms
(无 kdeconnect-settings,设置入口在托盘/系统设置里,属于正常)
② Plasma 小程序:包内含 share/plasma/plasmoids/org.kde.kdeconnect ⇒ 托盘图标本体齐备
③ 自启:用户单元 app-org.kde.kdeconnect.daemon@autostart.service(generated;本次会话由 D-Bus 激活)
④ 监听端口:UNCONN *:1716(发现协议在跑)
⑤ 发现手机:
$ kdeconnect-cli --list-devices
- Find X3 Pro 中国版: d8b4c172b86e48779c7d0cff84c85edc 通过 LAN 地址 192.168.1.100
(配对前显示“可访问”,配对后显示“已配对且可访问”)
⑥ avahi-daemon = inactive,但设备照样被发现 ⇒ 不需要 avahi/mDNS(KDE Connect 用自己的 UDP 广播)
⑦ 本机 Wi-Fi 地址: wlp2s0 = 192.168.1.120/24(手机 192.168.1.100,同一 LAN)

配对已完成(2026-10-11 15:40 实测)

受信列表 ~/.config/kdeconnect/trusted_devices(710 字节):
[d8b4c172b86e48779c7d0cff84c85edc]
name=Find X3 Pro 中国版 type=phone protocolVersion=8
私钥与证书: ~/.config/kdeconnect/{privateKey.pem,certificate.pem}(0600,自动生成)
已互动过的插件目录: kdeconnect_clipboard · kdeconnect_runcommand · kdeconnect_share

所以现在可直接使用的功能: 剪贴板双向同步、发送文件/链接、通知镜像、响铃找手机、短信(kdeconnect-sms)等。
电脑端插件开关位置: 托盘图标 → 点设备名 → 插件列表(或用 kdeconnect-app 打开设备页)。

手机端系统级权限清单(不是 app 内的开关,是 Android 系统层面的授权)

说明: 下面这些绝大多数**不在** “KDE Connect 应用 → 权限” 页面里,而在**系统设置**的不同入口;
不同 ROM 菜单名略不同(本机手机为 OPPO 系),以下给“入口关键词”方便搜。

P1 通知使用权 — 入口: 设置 → 通知 → 通知使用权(或输“通知使用权”搜索)
作用: 手机通知镜像到电脑;在电脑上回复手机消息
不开会怎样: 通知不同步(这是最常被漏的一项)
验证: 让手机来一条通知,看电脑是否弹出

P2 无障碍服务 — 入口: 设置 → 无障碍 → KDE Connect(或输“无障碍”搜索)
作用: 把手机当电脑的触摸板/键盘(远程输入)
不开会怎样: “远程输入”插件点了没反应
验证: 手机 KDE Connect → 远程输入,能移动电脑鼠标即通

P3 所有文件访问 — 入口: 设置 → 应用 → 特殊应用权限 → 所有文件访问 → KDE Connect
作用: 在电脑文件管理器里无线浏览手机文件(文件系统导出/SFTP)
不开会怎样: 电脑端 daemon 日志反复报 “缺少权限:文件系统访问”(← 当前就是这项缺)
验证: journalctl --user -b 0 --no-pager | grep -i '缺少权限' 不再出现

P4 电话 / 通话记录 — 入口: 设置 → 应用 → KDE Connect → 权限 → 电话
作用: 来电通知、拨号相关
验证: 来电时电脑是否提示

P5 短信(SMS) — 入口: 设置 → 应用 → KDE Connect → 权限 → 短信
作用: 在电脑上收发短信(kdeconnect-sms)
注意: 部分 ROM 还要求把 KDE Connect 设为**默认短信应用**才允许发
验证: kdeconnect-sms 发一条短信

P6 联系人 — 入口: 设置 → 应用 → KDE Connect → 权限 → 联系人
作用: 短信会话里显示联系人姓名(而非号码)

P7 文件与媒体(存储) — 入口: 设置 → 应用 → KDE Connect → 权限 → 文件和媒体
作用: 向电脑发文件/接收电脑文件
验证: 手机上分享一张图到电脑,Dolphin 收到即通

P8 后台运行与自启白名单 — 入口: 设置 → 应用 → KDE Connect → 电池/耗电管理 → 允许后台运行;
并在多任务卡片上“锁定” KDE Connect
作用: 长期保持连接(国产 ROM 不设这项会“过一会儿就掉”)
验证: 闲置 10 分钟后再 kdeconnect-cli --list-devices,仍显示“已配对且可访问”

P9 位置(附近设备) — 入口: 设置 → 应用 → KDE Connect → 权限 → 位置
作用: 部分 ROM 的设备发现依赖它
验证: 只在“双方都在线却互相发现不到”时才需要补这项

本机侧对应的真问题(2026-10-11): P3 未授权 ⇒ daemon 日志刷 “缺少权限:文件系统访问”;其余功能已通。

排障口径(按现象定位)

报错“Did not receive a reply …”(QtDBus):
⇒ 这是电脑端 kdeconnect-cli/小程序与 daemon 之间的 D-Bus 调用超时,常见于**配对过程等待手机确认**时
⇒ 不代表失败:改看受信列表与设备状态即可判定
kdeconnect-cli --list-devices # 显示“已配对且可访问”即成功
pgrep -a kdeconnectd # daemon 在跑吗
busctl --user list | grep kdeconnect # 会话总线上有 org.kde.kdeconnect 吗
⇒ 若确实没配对:重发请求 kdeconnect-cli --pair --device <id>,手机保持 KDE Connect 前台再确认一次

手机看不到电脑 / 电脑看不到手机:
① 两端必须在同一 Wi-Fi 且在“同一网段”(本机 192.168.1.120 ✓)
② 手机关掉 VPN(VPN 会把流量导走,KDE Connect 就发现不到)
③ 手机端 P1/P8 要给足(P8 就是“后台白名单”,不锁后台会间歇性掉线)
④ 本机侧确认 daemon 在跑: ss -lun | grep 1716
配对不上 / 已配对但连不上:
① 换网络(如手机开了热点)会导致配对残留但不可达 ⇒ 同 Wi-Fi 后重试
② 电脑端重启 daemon: systemctl --user restart app-org.kde.kdeconnect.daemon@autostart.service
端口/防火墙:
本机 wlp2s0 已 trusted ⇒ 入站不受限;若以后收紧 trustedInterfaces,务必保留 1714–1764 的 TCP/UDP 放行
(取消模块即同时撤销端口规则 ⇒ 手机再也连不上,属预期)

常用命令(已配对后)

kdeconnect-cli --list-devices                    # 设备与可达性(含“已配对”字样)
kdeconnect-cli -d <id> --ring # 响铃找手机
kdeconnect-cli -d <id> --share <文件> # 从电脑推文件到手机
kdeconnect-cli -d <id> --send-text "文本" # 推剪贴板文本到手机
kdeconnect-cli -d <id> --list-commands # 手机端已开启的远程命令(为空 = 手机端未开 RunCommand)

相关笔记

  • 「服务:KDE 的崩溃上报器」IEc7aTLeLGdE(同属桌面服务类,排障方法可参照)
  • 「服务:x11/wayland/plasma 在注销和重启下的不同行为」YzwTPiLBkfhb(本机 X11 会话与显示栈现状)