2570a028ea
第二、三阶段功能: 数据增强(第一阶段): - 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
78 lines
2.6 KiB
CMake
78 lines
2.6 KiB
CMake
# SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd.
|
||
#
|
||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||
|
||
cmake_minimum_required(VERSION 3.16)
|
||
|
||
project(dde-graphics-driver-applet VERSION 1.1.0 LANGUAGES CXX)
|
||
|
||
set(CMAKE_CXX_STANDARD 17)
|
||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||
set(CMAKE_AUTOMOC ON)
|
||
|
||
find_package(Qt6 REQUIRED COMPONENTS Core Quick DBus LinguistTools)
|
||
find_package(Dtk6 REQUIRED COMPONENTS Core)
|
||
find_package(DDEShell REQUIRED)
|
||
|
||
# 插件 ID
|
||
set(PLUGIN_ID "org.deepin.ds.graphics-driver")
|
||
|
||
# 翻译源文件目录
|
||
set(TRANSLATIONS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/translations)
|
||
|
||
# 翻译文件列表
|
||
set(TS_FILES
|
||
${TRANSLATIONS_DIR}/${PLUGIN_ID}_zh_CN.ts
|
||
${TRANSLATIONS_DIR}/${PLUGIN_ID}_zh_TW.ts
|
||
${TRANSLATIONS_DIR}/${PLUGIN_ID}_en.ts
|
||
)
|
||
|
||
# 生成 .qm 编译翻译文件
|
||
set(QM_FILES
|
||
${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_ID}_zh_CN.qm
|
||
${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_ID}_zh_TW.qm
|
||
${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_ID}_en.qm
|
||
)
|
||
|
||
add_custom_command(
|
||
OUTPUT ${QM_FILES}
|
||
COMMAND /usr/lib/qt6/bin/lrelease ${TRANSLATIONS_DIR}/${PLUGIN_ID}_zh_CN.ts -qm ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_ID}_zh_CN.qm
|
||
COMMAND /usr/lib/qt6/bin/lrelease ${TRANSLATIONS_DIR}/${PLUGIN_ID}_zh_TW.ts -qm ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_ID}_zh_TW.qm
|
||
COMMAND /usr/lib/qt6/bin/lrelease ${TRANSLATIONS_DIR}/${PLUGIN_ID}_en.ts -qm ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_ID}_en.qm
|
||
DEPENDS ${TS_FILES}
|
||
COMMENT "Compiling translations to .qm files"
|
||
)
|
||
|
||
# 手动更新翻译源文件(不加入 ALL,仅在需要时手动 make update_translations)
|
||
add_custom_target(update_translations
|
||
COMMAND /usr/lib/qt6/bin/lupdate ${CMAKE_CURRENT_SOURCE_DIR}/package ${CMAKE_CURRENT_SOURCE_DIR}/graphicsdriverapplet.cpp -ts ${TS_FILES}
|
||
COMMENT "Updating translation source files"
|
||
)
|
||
|
||
add_library(org.deepin.ds.graphics-driver SHARED
|
||
graphicsdriverapplet.h
|
||
graphicsdriverapplet.cpp
|
||
${QM_FILES}
|
||
)
|
||
|
||
set_target_properties(org.deepin.ds.graphics-driver PROPERTIES PREFIX "")
|
||
|
||
target_include_directories(org.deepin.ds.graphics-driver PRIVATE
|
||
${CMAKE_CURRENT_SOURCE_DIR}
|
||
/usr/include/dde-shell
|
||
)
|
||
|
||
target_link_libraries(org.deepin.ds.graphics-driver PRIVATE
|
||
Qt6::Core
|
||
Qt6::Quick
|
||
Qt6::DBus
|
||
Dtk6::Core
|
||
Dde::Shell
|
||
)
|
||
|
||
# 安装到dde-shell插件目录
|
||
install(TARGETS org.deepin.ds.graphics-driver DESTINATION /usr/lib/x86_64-linux-gnu/dde-shell)
|
||
install(FILES package/metadata.json DESTINATION /usr/share/dde-shell/${PLUGIN_ID})
|
||
install(FILES package/driverview.qml DESTINATION /usr/share/dde-shell/${PLUGIN_ID})
|
||
install(FILES ${QM_FILES} DESTINATION /usr/share/dde-shell/${PLUGIN_ID}/translations)
|