v1.1.0
- CMakeLists.txt: 1.0.0 -> 1.1.0 - metadata.json: 1.0 -> 1.1 - debian/changelog: 新增 1.1.0-1 版本记录
GPU 显卡驱动管理任务栏插件
Deepin V25 DDE Shell 任务栏插件,实时检测 GPU 设备、显示驱动信息和温度/使用率监控。
功能特性
- GPU 设备检测 - 通过
lspci+sysfs检测所有显卡(NVIDIA/AMD/Intel) - 驱动信息显示 - 驱动模块名 + 版本号(NVIDIA 用 nvidia-smi/proc,AMD 用内核版本)
- 实时温度监控 - NVIDIA 用
nvidia-smi,AMD 用hwmon,2 秒自动刷新 - GPU 使用率 - 进度条显示,NVIDIA 用
nvidia-smi,AMD 用gpu_busy_percent - 显存使用 - 已用/总量 (MB),带使用率百分比
- 主副显标识 - 通过
boot_vga区分主显卡(绿色"主显"标签) - GPU 切换模式检测 - 自动识别 PRIME / Bumblebee / Solo / Hybrid 模式
- 国际化 - 支持简体中文、繁体中文、英文
截图
┌─────────────────────────────────────┐
│ GPU 显卡驱动管理 │
│─────────────────────────────────────│
│ 当前驱动: nvidia, amdgpu [PRIME] │
│─────────────────────────────────────│
│ ┌─────────────────────────────────┐ │
│ │ NV NVIDIA GeForce RTX 3060 主显│ │
│ │ nvidia 580.119.02 │ │
│ │ 54°C 108/6144 MB │ │
│ │ GPU ████░░░░░░ 36% │ │
│ └─────────────────────────────────┘ │
│ ┌─────────────────────────────────┐ │
│ │ AMD AMD Radeon Vega │ │
│ │ amdgpu Linux 6.18.36 │ │
│ │ 90°C 471/512 MB │ │
│ │ GPU ████████░░ 71% │ │
│ └─────────────────────────────────┘ │
│ [ 刷新 ] │
└─────────────────────────────────────┘
依赖项
构建依赖
cmake (>= 3.16)
g++
qt6-base-dev
qt6-l10n-tools # lrelease 翻译编译
libdde-shell-dev # DDE Shell 插件头文件
libdtk6core-dev # DTK6 Core
运行时依赖
dde-shell # 任务栏宿主
lspci # GPU 检测(pciutils 包)
nvidia-smi # NVIDIA 监控(可选,nvidia-driver 包自带)
构建
# 安装构建依赖
sudo apt install -y cmake g++ qt6-base-dev qt6-l10n-tools libdde-shell-dev libdtk6core-dev
# 构建
cmake -Bbuild
cmake --build build
安装
方式一:一键脚本
bash install.sh
方式二:手动安装
sudo cmake --install build
systemctl --user restart dde-shell@DDE
方式三:deb 包
bash build-deb.sh --install
卸载
sudo rm -f /usr/lib/x86_64-linux-gnu/dde-shell/org.deepin.ds.graphics-driver.so
sudo rm -rf /usr/share/dde-shell/org.deepin.ds.graphics-driver
systemctl --user restart dde-shell@DDE
项目结构
├── package/
│ ├── metadata.json # 插件元数据(ID、父插件、dockOrder)
│ └── driverview.qml # QML 界面(弹窗、卡片、tooltip)
├── translations/
│ ├── *_zh_CN.ts # 简体中文翻译
│ └── *_zh_TW.ts # 繁体中文翻译
├── graphicsdriverapplet.h # C++ 插件类头文件
├── graphicsdriverapplet.cpp # C++ 插件类实现
├── debian/ # Debian 打包配置
├── docs/ # 设计文档
│ └── GPU_SWITCH_AND_DRIVER_INSTALL.md
├── CMakeLists.txt # 构建配置
├── install.sh # 一键构建安装脚本
├── build-deb.sh # 一键 deb 打包脚本
└── README.md
技术实现
架构
┌──────────────────────────────────────────────┐
│ DDE Shell Taskbar │
├──────────────────────────────────────────────┤
│ org.deepin.ds.graphics-driver │
│ ┌──────────┐ ┌──────────┐ ┌───────────┐ │
│ │ GPU 检测 │ │ 实时监控 │ │ QML UI │ │
│ │ lspci │ │ nvidia-smi│ │ 卡片 │ │
│ │ sysfs │ │ hwmon │ │ tooltip │ │
│ │ boot_vga │ │ drm │ │ 进度条 │ │
│ └──────────┘ └──────────┘ └───────────┘ │
└──────────────────────────────────────────────┘
数据采集方式
| 数据 | NVIDIA | AMD/Intel |
|---|---|---|
| GPU 检测 | lspci -mm |
lspci -mm |
| 驱动名 | /sys/bus/pci/.../driver symlink |
同左 |
| 驱动版本 | /proc/driver/nvidia/version |
/proc/sys/kernel/osrelease |
| 温度 | nvidia-smi |
/sys/class/hwmon/hwmonN/temp1_input |
| GPU 使用率 | nvidia-smi |
/sys/class/drm/cardN/device/gpu_busy_percent |
| 显存 | nvidia-smi |
/sys/class/drm/cardN/device/mem_info_vram_* |
| 主副显 | /sys/bus/pci/.../boot_vga |
同左 |
| 切换模式 | nvidia-drm-outputclass.conf 检测 |
- |
QML 属性接口
| 属性 | 类型 | 说明 |
|---|---|---|
applet.ready |
bool | GPU 检测完成 |
applet.deviceInfo |
QString | GPU 信息(每行一个) |
applet.currentDriver |
QString | 当前驱动列表 |
applet.gpuSummary |
QString | GPU 摘要 |
applet.gpuStats |
QStringList | 实时统计(temp|gpu|mem|used|total) |
applet.gpuMode |
QString | 切换模式(PRIME/Bumblebee/Solo/Hybrid) |
applet.gpuPrimary |
QStringList | 主副显标识(true/false) |
applet.refreshStats() |
void | 刷新实时统计 |
applet.refreshDeviceInfo() |
void | 重新检测 GPU |
使用说明
- 插件安装后自动加载到任务栏右侧
- 悬停任务栏图标 - 显示 GPU 温度和使用率摘要
- 点击图标 - 打开弹窗,查看详细 GPU 信息
- 弹窗内数据每 2 秒自动刷新
- 悬停卡片 - 显示该 GPU 的驱动详情 tooltip
- 点击刷新 - 重新检测 GPU 设备
开发计划
- GPU 检测与驱动信息显示
- 温度/使用率/显存实时监控
- 主副显标识与 GPU 模式检测
- PRIME 显卡切换(全局开关)
- 驱动安装(pkexec + apt)
详见 设计方案文档
许可证
GPL-3.0-or-later
相关项目
- dde-shell - Deepin Shell 插件系统
Description