Commit Graph

12 Commits

Author SHA1 Message Date
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
Jokul 2570a028ea feat: 添加GPU频率/功耗/风扇监控、温度告警、趋势图、右键菜单、进程列表、GPU切换
第二、三阶段功能:

数据增强(第一阶段):
- GPU频率: NVIDIA nvidia-smi clocks.gr, Intel gt/gt0/rps_act_freq_mhz
- 显存频率: NVIDIA nvidia-smi clocks.mem
- 功耗: NVIDIA nvidia-smi power.draw, AMD hwmon power1_average
- 风扇转速: NVIDIA nvidia-smi fan.speed, AMD hwmon fan1_input
- 任务栏图标根据最高温度变色(≥80°C红/≥60°C橙)
- readGpuStats 每次刷新前重置统计字段,避免残留旧值

交互提升(第二阶段):
- 温度告警: GPU温度≥80°C时通过D-Bus发送桌面通知,30秒冷却
- 右键菜单: 使用Qt.labs.platform原生菜单+MenuHelper,支持刷新和GPU切换
- 迷你趋势图: Canvas绘制近60秒温度走势折线
- 英文翻译: 新增en.ts,23条全部翻译

高级功能(第三阶段):
- NVIDIA进程列表: nvidia-smi --query-compute-apps查询,弹框中显示进程名和显存占用
- GPU切换: pkexec prime-select set <mode>,弹框按钮+右键菜单,仅PRIME模式显示

其他改进:
- 自定义深色主题tooltip替代系统默认白色tooltip
- 第一张卡片tooltip显示在下方避免被裁剪
- CMakeLists.txt lupdate添加C++源文件提取tr()翻译
- gpuStats格式扩展为9字段: temp|gpuUsage|memUsage|memUsed|memTotal|gpuClock|memClock|powerDraw|fanSpeed
2026-07-14 17:32:46 +08:00
Jokul dd6b5ed8b9 feat: Intel核显回退数据源,支持温度和共享内存显示
Intel 核显无 hwmon/gpu_busy_percent/mem_info_vram 等 sysfs 接口,
增加回退逻辑:
- 温度:扫描 thermal_zone 匹配 B0D4(Intel GPU ACPI 标识)
- 显存:读取 /proc/meminfo 获取系统共享内存总量和已用量
- GPU 使用率:Skylake i915 不支持,仍显示占位符
2026-07-14 10:40:56 +08:00
Jokul d5a2c380ab feat: 添加GPU切换模式检测和主副显标识
- C++后端:GpuInfo添加isPrimary字段,读取boot_vga判断主副显
- C++后端:detectGpuMode()检测PRIME/Bumblebee/Solo/Hybrid模式
- C++后端:新增gpuMode和gpuPrimary属性
- QML前端:卡片显示绿色主显标签(boot_vga=1的GPU)
- QML前端:弹窗显示GPU模式标签(PRIME等)和帮助图标
- 帮助图标悬停显示模式说明文字
- 翻译更新:主显/主顯 + 四种模式的中文说明
2026-07-14 00:19:56 +08:00
Jokul 403ae8a69b feat: 添加GPU温度/使用率/显存实时监控
- C++后端:GpuInfo扩展统计字段,readGpuStats()支持NVIDIA(nvidia-smi)和AMD(sysfs)
- PCI到DRM card映射,新增gpuStats属性和refreshStats方法
- QML前端:弹窗卡片显示温度(带颜色)、GPU使用率进度条、显存使用
- 任务栏tooltip显示简洁摘要(厂商简称+温度+使用率)
- 定时刷新:弹窗和tooltip打开时每2秒刷新,关闭时停止
- 优化卡片布局:压缩高度和间距,弹窗高度调整至420px
2026-07-13 23:08:08 +08:00
Jokul bc371fbac5 fix: 修复驱动检测与版本号显示
- 修复 driver 名称获取:使用 QFileInfo::symLinkTarget() 替代 QDir::dirName(),
  解决驱动名恒为 'driver' 的问题
- 添加开源内核驱动版本号支持:amdgpu/radeon/nouveau/i915 等显示内核版本
- 添加卡片 tooltip 三行信息(显卡/驱动/版本号)的翻译条目
2026-07-13 22:10:38 +08:00
Jokul b440fdf40a feat: 移除D-Bus依赖,改用 lspci 直接检测显卡,重构弹窗UI
- C++ 后端:移除 D-Bus 通信,改用 lspci -mm + /sys/bus/pci 直接检测显卡和驱动
- 新增 gpuSummary、ready 属性,通过 /sys/module 和 /proc/driver 读取驱动版本
- QML:使用 DTK 配色,卡片式布局展示 GPU 列表,每张显卡独立卡片
- 移除安装/测试/取消按钮,聚焦显卡信息展示
- 翻译精简为 5 条,同步 zh_CN / zh_TW
2026-07-13 21:14:12 +08:00
Jokul 9fb80cdfc8 feat: 参照dde-weather重构插件,修复显示与弹窗定位
- QML 根元素使用 AppletItem,参照 dde-weather 插件实现
- 使用 Panel.rootObject.dockItemMaxSize 适配任务栏图标尺寸
- dockOrder 设为 21,定位在系统托盘左侧
- 使用 PanelPopup + PanelToolTip + TapHandler 实现点击弹窗和悬停提示
- 弹窗打开前设置 DockPanelPositioner.bounding 修正弹窗定位
- C++ 后端新增 dbusAvailable 属性,D-Bus 不可用时优雅降级
- 使用 isServiceRegistered 正确检测 D-Bus 服务可用性
- install.sh 改用 SCRIPT_DIR 自动定位项目根目录
2026-07-13 20:21:39 +08:00
Jokul 8d0c1ec5a6 feat: 恢复完整功能,包含D-Bus通信和QML界面 2026-07-12 21:35:44 +08:00
Jokul 7461ec43d2 test: 创建最简测试插件 2026-07-12 20:55:58 +08:00
Jokul a0bc8a497e fix: 更新头文件路径和CMake配置适配系统dde-shell 2026-07-12 20:06:54 +08:00
Jokul eb90da12f3 feat: 初始化项目骨架
- 创建插件元数据 package/metadata.json
- 实现主插件类 GraphicsDriverApplet (D-Bus通信)
- 实现GPU指示器类 GpuIndicator (设备信息解析)
- 创建QML界面 driverview.qml (驱动管理UI)
- 添加CMake构建配置
- 编写开发指南文档 docs/DEVELOPMENT.md
2026-07-12 19:54:22 +08:00