ef37fbbcbf
- 新增 run_step 辅助函数:成功时仅显示末尾 3 行,失败时打印完整输出, 解决原 | tail -3 管道吞掉 find_package 关键错误、用户无法定位缺包问题 - 新增 [1/6] 构建依赖预检:用 dpkg -s 检查 qt6-base-dev / qt6-declarative-dev / libdtkcommon-dev / libdde-shell-dev,缺失时 直接给出 sudo apt install 命令并退出,步骤编号顺延为 [1/6]~[6/6] - README 新增「构建依赖」小节:完整 apt install 命令 + 依赖包与 find_package 对照表 + 运行时无需 -dev 包说明,删除原一句话提示
97 lines
3.1 KiB
Markdown
97 lines
3.1 KiB
Markdown
# JNetApplet
|
||
|
||
基于 dde-shell 的**深度系统任务栏网络速率监控插件**,使用 C++ 后端采集数据、
|
||
QML 前端渲染界面,实时显示当前网卡的上行/下行速率与累计流量。
|
||
|
||
- 插件 ID:`space.jokul.JNetApplet`
|
||
- 适用环境:deepin 桌面环境(dde-shell 面板)
|
||
- 数据源:读取 `/proc/net/dev` 计算网络流量
|
||
|
||
## 功能特性
|
||
|
||
- 实时上行/下行速率监控(1 秒刷新)
|
||
- 累计上传/下载流量统计
|
||
- 多网卡支持,可在弹窗中切换活动网卡
|
||
- 任务栏图标实时显示速率,高速时变色提示
|
||
- 悬停显示速率摘要,点击展开详情弹窗
|
||
- 详情弹窗展示活动网卡 IP 地址、各网卡速率对比与统计图表
|
||
- 支持从弹窗一键卸载插件
|
||
|
||
## 构建与安装
|
||
|
||
### 构建依赖
|
||
|
||
构建需要以下开发包:
|
||
|
||
```sh
|
||
sudo apt install build-essential cmake pkg-config qt6-base-dev qt6-declarative-dev libdtkcommon-dev libdde-shell-dev
|
||
```
|
||
|
||
各包与 CMake `find_package` 的对应关系:
|
||
|
||
| 依赖包 | 提供 | 对应 CMake find_package |
|
||
|---|---|---|
|
||
| qt6-base-dev | Qt6 Core / DBus / Network | Qt6 Core DBus Network |
|
||
| qt6-declarative-dev | Qt6 Quick | Qt6 Quick |
|
||
| libdtkcommon-dev | Dtk6 Core | Dtk6 Core |
|
||
| libdde-shell-dev | DDEShell | DDEShell |
|
||
|
||
> 运行时仅需 `dde-shell` 及 Qt6/Dtk6 运行库,上述 `-dev` 包仅构建时需要。
|
||
|
||
### 方式一:从源码安装
|
||
|
||
```sh
|
||
cmake -B build
|
||
cmake --build build
|
||
sudo cmake --install build # -> /usr/share/dde-shell/space.jokul.JNetApplet/
|
||
```
|
||
|
||
或使用安装脚本:
|
||
|
||
```sh
|
||
bash install.sh
|
||
```
|
||
|
||
`cmake --install` 需要 `sudo`,因为默认 `DDE_SHELL_PACKAGE_INSTALL_DIR`
|
||
为 `/usr/share/dde-shell`(本机 CMake CACHE 变量)。
|
||
|
||
安装后重启 dde-shell 使插件生效:
|
||
|
||
```sh
|
||
systemctl --user restart dde-shell@DDE
|
||
```
|
||
|
||
### 方式二:打包为 deb 安装
|
||
|
||
仓库提供 `build-deb.sh` 一键打包脚本,会从 `CMakeLists.txt` 读取版本号并构建 deb 包:
|
||
|
||
```sh
|
||
bash build-deb.sh
|
||
```
|
||
|
||
产物为 `jnetapplet_<version>_<arch>.deb`,可直接用 `dpkg -i` 安装。
|
||
|
||
## 验证
|
||
|
||
项目无测试 / lint / typecheck / CI 流程,验证方式为手动:安装后重启 `dde-shell`
|
||
(其通过扫描安装目录中的 `metadata.json` 发现插件)。
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
├── CMakeLists.txt # 构建配置
|
||
├── install.sh # 安装脚本
|
||
├── build-deb.sh # deb 一键打包脚本
|
||
├── src/
|
||
│ ├── networkmonitorapplet.h # C++ 后端头文件
|
||
│ └── networkmonitorapplet.cpp # C++ 后端实现
|
||
├── package/
|
||
│ ├── metadata.json.in # 插件元数据模板(由 CMake 生成 metadata.json)
|
||
│ ├── networkview.qml # QML 界面主入口
|
||
│ └── components/ # 拆分出的子组件
|
||
│ └── AboutWindow.qml # 关于窗口组件
|
||
├── docs/ # 设计文档与实现计划
|
||
├── README.md # 本文件
|
||
└── AGENTS.md # AI 代理工作指引
|
||
```
|