Jokul f7c6801793 feat: 设置窗口、合并温度趋势图、UI优化
- 新增设置窗口(右键打开):无边框毛玻璃风格,温度告警开关,QSettings持久化
- 合并温度趋势图:多GPU多色折线,图例,Y轴刻度,填充区域,最新温度标注
- 显卡排序:核显在前独显在后(std::stable_sort by boot_vga)
- 卡片优化:删除温度行和频率/功耗行,驱动名+版本两端对齐,高度压缩至78
- 弹窗优化:宽度480,右上角刷新图标替代底部按钮
- tooltip修复:删除自定义Rectangle tooltip改用标准ToolTip
- 翻译更新:设置/常规设置/温度告警/温度趋势等
2026-07-14 21:31:00 +08:00
2026-07-14 00:26:43 +08:00
2026-07-14 00:23:33 +08:00
2026-07-13 22:19:39 +08:00
2026-07-14 15:45:46 +08:00
2026-07-13 22:19:39 +08:00
2026-07-12 19:54:22 +08:00
2026-07-12 19:54:22 +08:00
2026-07-14 00:23:33 +08:00

GPU 显卡驱动管理任务栏插件

Deepin V25 DDE Shell 任务栏插件,实时检测 GPU 设备、显示驱动信息和温度/使用率监控。

功能特性

  • GPU 设备检测 - 通过 lspci + sysfs 检测所有显卡(NVIDIA/AMD/Intel
  • 驱动信息显示 - 驱动模块名 + 版本号(NVIDIA 用 nvidia-smi/procAMD 用内核版本)
  • 实时温度监控 - NVIDIA 用 nvidia-smiAMD 用 hwmon2 秒自动刷新
  • GPU 使用率 - 进度条显示,NVIDIA 用 nvidia-smiAMD 用 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

使用说明

  1. 插件安装后自动加载到任务栏右侧
  2. 悬停任务栏图标 - 显示 GPU 温度和使用率摘要
  3. 点击图标 - 打开弹窗,查看详细 GPU 信息
  4. 弹窗内数据每 2 秒自动刷新
  5. 悬停卡片 - 显示该 GPU 的驱动详情 tooltip
  6. 点击刷新 - 重新检测 GPU 设备

开发计划

  • GPU 检测与驱动信息显示
  • 温度/使用率/显存实时监控
  • 主副显标识与 GPU 模式检测
  • PRIME 显卡切换(全局开关)
  • 驱动安装(pkexec + apt

详见 设计方案文档

许可证

GPL-3.0-or-later

相关项目

S
Description
Deepin V25 DDE Shell 任务栏插件,实时检测 GPU 设备、显示驱动信息和温度/使用率监控。
Readme 544 KiB
v1.1.0 Latest
2026-07-14 00:28:47 +08:00
Languages
QML 59%
C++ 36.1%
CMake 2.6%
Shell 2.3%