ScreenLockDetector/README.md

603 lines
16 KiB
Markdown
Raw Normal View History

2025-11-07 10:56:45 +08:00
# Qt Screen Lock Detection Demo
2025-11-11 20:52:14 +08:00
一个基于 Qt5 + CMake 的跨平台应用程序,用于检测系统的锁屏状态和电源状态(睡眠/唤醒),并在锁屏时自动停止所有渲染。
**支持平台:**
-**Linux** (Ubuntu, Deepin, Fedora 等)
-**macOS** (10.12 及以上版本)
2025-11-07 10:56:45 +08:00
## 功能特性
2025-11-11 20:52:14 +08:00
### 核心功能
-**自动检测锁屏状态**
- Linux: 通过 DBus 监听系统的锁屏/解锁事件
- macOS: 通过 NSDistributedNotificationCenter 监听系统通知
2025-11-11 21:14:12 +08:00
2025-11-11 20:52:14 +08:00
-**电源状态监控**
- Linux: 通过 DBus login1 服务监听系统睡眠/唤醒事件
- macOS: 通过 NSWorkspace 监听系统电源状态变化
2025-11-11 21:14:12 +08:00
2025-11-11 20:52:14 +08:00
-**双渲染引擎支持**
- **Vulkan 渲染器**:高性能 GPU 加速渲染(需要 Vulkan SDK
- Linux: 支持 Vulkan 1.0+
- macOS: 支持 MoltenVKVulkan over Metal
- 特性MSAA 抗锯齿、动态几何、文字渲染FreeType
- **QPainter 渲染器**:传统 Qt 绘制(兼容性备选)
2025-11-11 21:14:12 +08:00
2025-11-11 20:52:14 +08:00
-**自动停止渲染**:屏幕锁定或系统睡眠时自动停止所有渲染,节省系统资源
-**实时动画演示**
- 动态旋转圆圈
- 波浪效果
- 渐变背景
- 实时文字显示
2025-11-11 21:14:12 +08:00
2025-11-11 20:52:14 +08:00
-**手动控制**:提供手动启用/禁用渲染的按钮
-**状态监控**:实时显示锁屏状态、电源状态、渲染状态和帧数统计
-**多平台支持**
2025-11-11 20:52:14 +08:00
- Linux: 支持 GNOME、KDE、XFCE、Deepin DDE、UKUI 等主流桌面环境
- macOS: 原生系统通知支持MoltenVK 集成
2025-11-07 10:56:45 +08:00
## 技术架构
### 核心组件
1. **ScreenLockDetector** - 跨平台锁屏检测器
2025-11-11 20:52:14 +08:00
- **基础架构**: `ScreenLockDetectorBase` 抽象基类
- **Linux**: `ScreenLockDetectorLinux` - 通过 Qt DBus 监听系统锁屏信号
- 支持 GNOME ScreenSaver、systemd-logind 和 Deepin DDE 接口
2025-11-11 20:52:14 +08:00
- **macOS**: `ScreenLockDetectorMacOS` - 通过 NSDistributedNotificationCenter 监听系统通知
- 监听 com.apple.screenIsLocked/Unlocked 通知
2025-11-07 10:56:45 +08:00
- 发出锁屏/解锁信号供其他组件订阅
2025-11-11 20:52:14 +08:00
2. **PowerMonitor** - 跨平台电源监视器
- **基础架构**: `PowerMonitorBase` 抽象基类
- **Linux**: `PowerMonitorLinux` - 通过 DBus login1 服务监听
- 监听 org.freedesktop.login1.Manager 的 PrepareForSleep 信号
- **macOS**: `PowerMonitorMacOS` - 通过 NSWorkspace 监听
- 监听 NSWorkspaceWillSleepNotification 和 NSWorkspaceDidWakeNotification
- 发出睡眠/唤醒信号
3. **RenderWidgetBase** - 渲染组件抽象接口
- 定义统一的渲染器接口
- 支持动态切换不同渲染后端
4. **VulkanWidget** - Vulkan 渲染组件
- 使用 volk 动态加载 Vulkan 函数
- 支持 MSAA 多重采样抗锯齿
- 集成 FreeType 字体渲染
- **macOS**: 专门的 CAMetalLayer 支持MoltenVK
- 自动处理窗口大小调整和设备丢失恢复
5. **CustomWidget** - QPainter 渲染组件
- 传统 Qt 绘制实现
- 作为 Vulkan 不可用时的备选方案
- 实现了相同的动画效果
6. **MainWindow** - 主窗口
2025-11-07 10:56:45 +08:00
- 整合各个组件
- 提供用户界面和控制面板
- 实时状态显示
### 技术栈
- **语言**C++11 / Objective-C++ (macOS)
- **GUI 框架**Qt 5.15.2 (或更高版本)
2025-11-07 10:56:45 +08:00
- **构建系统**CMake 3.10+
2025-11-11 20:52:14 +08:00
- **图形 API**
- Vulkan 1.0+ (通过 volk 动态加载)
- MoltenVK (macOS)
- QPainter (备选方案)
- **字体渲染**FreeType 2.x
- **系统接口**
2025-11-11 20:52:14 +08:00
- Linux: Qt DBus, X11
- macOS: Foundation Framework, AppKit, QuartzCore (CAMetalLayer)
- **平台**Linux / macOS 10.12+
### 项目结构
```
ScreenLockDetector/
├── CMakeLists.txt # CMake 构建配置(跨平台)
├── README.md # 项目文档
├── build.sh # Linux 编译脚本
├── run.sh # Linux 运行脚本
├── build_mac.sh # macOS 编译脚本
├── run_mac.sh # macOS 运行脚本
├── docs/ # 文档目录
├── third_party/ # 第三方库
│ └── volk/ # Vulkan 函数加载器
├── shaders/ # GLSL 着色器源码
└── src/
├── main.cpp # 程序入口
├── mainwindow.h/cpp # 主窗口
├── screenlockdetector.h/cpp # 锁屏检测器工厂类
├── powermonitor.h/cpp # 电源监视器工厂类
├── renderwidgetbase.h # 渲染组件抽象接口
├── vulkanwidget.h/cpp # Vulkan 渲染组件
├── vulkanrenderer.h/cpp # Vulkan 渲染器核心
├── customwidget.h/cpp # QPainter 渲染组件
└── platform/ # 平台特定代码
├── README.md # 平台代码组织说明
├── screenlockdetector_base.h/cpp # 锁屏检测基类
├── screenlockdetector_linux.h/cpp # Linux 实现
├── screenlockdetector_macos.h/mm # macOS 实现
├── powermonitor_base.h/cpp # 电源监视基类
├── powermonitor_linux.h/cpp # Linux 实现
├── powermonitor_macos.h/mm # macOS 实现
└── vulkanwidget_macos.h/mm # macOS Vulkan 辅助
```
2025-11-07 10:56:45 +08:00
## 系统要求
### Linux
- Linux Ubuntu 18.04 或更高版本(也支持 Deepin OS、Fedora 等)
- Qt 5.15.2 或更高版本
2025-11-07 10:56:45 +08:00
- CMake 3.10 或更高版本
- GCC/G++ 编译器(支持 C++11
- DBus 系统服务
2025-11-11 20:52:14 +08:00
- X11 开发库
- **可选**Vulkan SDK 1.0+ (用于 Vulkan 渲染)
- **可选**FreeType 开发库 (用于 Vulkan 文字渲染)
2025-11-07 10:56:45 +08:00
### macOS
- macOS 10.12 (Sierra) 或更高版本
2025-11-11 20:52:14 +08:00
- Qt 5.15.2 或更高版本(可通过 Homebrew 或 MacPorts 安装)
- CMake 3.10 或更高版本
- Xcode Command Line Tools
- Foundation 和 Cocoa 框架(系统自带)
2025-11-11 20:52:14 +08:00
- **可选**Vulkan SDK 1.4+ (包含 MoltenVK用于 Vulkan 渲染)
- **可选**FreeType 库 (用于 Vulkan 文字渲染)
2025-11-07 10:56:45 +08:00
## 安装与编译
### macOS 平台
#### 1. 安装依赖
2025-11-11 20:52:14 +08:00
使用 Homebrew 或 MacPorts 安装 Qt5
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
**Homebrew:**
2025-11-07 10:56:45 +08:00
```bash
# 安装 Homebrew如果尚未安装
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装 Qt5
brew install qt@5
# 安装 CMake如果尚未安装
brew install cmake
2025-11-11 20:52:14 +08:00
# 可选:安装 FreeType用于文字渲染
brew install freetype
2025-11-07 10:56:45 +08:00
```
2025-11-11 20:52:14 +08:00
**MacPorts:**
```bash
sudo port install qt5
sudo port install cmake
sudo port install freetype
```
**Vulkan SDK可选用于 Vulkan 渲染):**
```bash
# 从 LunarG 下载并安装
# https://vulkan.lunarg.com/sdk/home
# 或者下载到 ~/VulkanSDK/
# 安装后设置环境变量
export VULKAN_SDK=~/VulkanSDK/1.4.328.1/macOS
export DYLD_LIBRARY_PATH=$VULKAN_SDK/lib:$DYLD_LIBRARY_PATH
export VK_ICD_FILENAMES=$VULKAN_SDK/share/vulkan/icd.d/MoltenVK_icd.json
```
2025-11-07 10:56:45 +08:00
#### 2. 编译项目
```bash
# 赋予脚本执行权限
chmod +x build_mac.sh run_mac.sh
# 编译
./build_mac.sh
2025-11-07 10:56:45 +08:00
```
2025-11-11 20:52:14 +08:00
脚本会自动搜索 Qt 和 Vulkan SDK 安装路径。
### Linux 平台
2025-11-11 20:52:14 +08:00
#### 1. 安装依赖
```bash
# Ubuntu/Debian
2025-11-11 20:52:14 +08:00
sudo apt-get update
sudo apt-get install qt5-default qtbase5-dev libqt5dbus5 \
libx11-dev cmake g++
# 可选Vulkan 开发库
sudo apt-get install vulkan-tools libvulkan-dev
# 可选FreeType 开发库
sudo apt-get install libfreetype6-dev
# Fedora
2025-11-11 20:52:14 +08:00
sudo dnf install qt5-qtbase-devel qt5-qtbase-gui \
libX11-devel cmake gcc-c++
2025-11-11 20:52:14 +08:00
# 可选Vulkan 和 FreeType
sudo dnf install vulkan-tools vulkan-headers freetype-devel
```
2025-11-11 20:52:14 +08:00
#### 2. 编译项目
2025-11-07 10:56:45 +08:00
```bash
2025-11-11 20:52:14 +08:00
# 赋予脚本执行权限
2025-11-07 10:56:45 +08:00
chmod +x build.sh run.sh
2025-11-11 20:52:14 +08:00
# 编译
2025-11-07 10:56:45 +08:00
./build.sh
```
编译成功后,可执行文件将生成在 `build/bin/ScreenLockDetector`
2025-11-07 10:56:45 +08:00
## 运行应用
### macOS 平台
```bash
2025-11-11 20:52:14 +08:00
# 使用运行脚本(推荐,自动设置环境变量)
./run_mac.sh
2025-11-11 20:52:14 +08:00
# 或直接运行
./build/bin/ScreenLockDetector
```
### Linux 平台
2025-11-07 10:56:45 +08:00
```bash
2025-11-11 20:52:14 +08:00
# 使用运行脚本(推荐)
2025-11-07 10:56:45 +08:00
./run.sh
2025-11-11 20:52:14 +08:00
# 或直接运行
./build/bin/ScreenLockDetector
2025-11-07 10:56:45 +08:00
```
## 使用说明
1. **启动应用**:运行应用后,会看到一个带有动态动画的窗口
2025-11-11 20:52:14 +08:00
- 如果 Vulkan 可用,默认使用 Vulkan 渲染器
- 否则回退到 QPainter 渲染器
2. **查看渲染器类型**
- 窗口标题显示当前使用的渲染器Vulkan 或 QPainter
- Vulkan 渲染器提供更好的性能和效果
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
3. **测试锁屏检测**
- **macOS**: 使用快捷键 `Ctrl + Cmd + Q` 或从菜单栏选择"锁定屏幕"
- **Linux**: 使用快捷键 `Ctrl + Alt + L``Super + L`
2025-11-07 10:56:45 +08:00
- 观察动画是否停止
- 解锁后动画应自动恢复
2025-11-11 20:52:14 +08:00
4. **测试电源监控**
- 合上笔记本屏幕或选择"睡眠"
- 观察控制台输出睡眠/唤醒消息
- 唤醒后渲染会自动恢复
5. **查看状态信息**
- **Renderer Type**:当前使用的渲染器类型
- **Detector Status**:锁屏检测器是否正常工作
2025-11-07 10:56:45 +08:00
- **Screen Lock Status**:当前屏幕锁定状态(🔒 LOCKED / 🔓 UNLOCKED
2025-11-11 20:52:14 +08:00
- **Rendering Status**:渲染是否启用(✓ ENABLED / ✗ DISABLED
- **Frame Count**:已渲染的总帧数
- **FPS**:当前帧率(仅 Vulkan
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
6. **手动控制**(可选):
- **Enable Rendering**:手动启用渲染
- **Disable Rendering**:手动禁用渲染
2025-11-07 10:56:45 +08:00
- **Reset Frame Count**:重置帧数计数器
## 工作原理
2025-11-11 20:52:14 +08:00
### 锁屏检测机制
#### Linux: DBus 监听
2025-11-07 10:56:45 +08:00
应用程序通过 Qt DBus 连接到 Linux 系统的锁屏服务:
2025-11-07 14:57:13 +08:00
1. **Deepin DDE 接口**Deepin OS
```
Service: com.deepin.dde.lockFront
Path: /com/deepin/dde/lockFront
Interface: com.deepin.dde.lockFront
2025-11-10 10:34:04 +08:00
Signals: Visible(bool)
2025-11-07 14:57:13 +08:00
```
2. **GNOME ScreenSaver 接口**
2025-11-07 10:56:45 +08:00
```
Service: org.gnome.ScreenSaver
Path: /org/gnome/ScreenSaver
Interface: org.gnome.ScreenSaver
Signal: ActiveChanged(bool)
```
2025-11-11 20:52:14 +08:00
3. **KylinOS UKUI 接口**
2025-11-07 10:56:45 +08:00
```
2025-11-10 10:34:04 +08:00
Service: org.ukui.ScreenSaver
Path: /
Interface: org.ukui.ScreenSaver
Signals: lock(), unlock()
2025-11-07 10:56:45 +08:00
```
2025-11-11 20:52:14 +08:00
#### macOS: 分布式通知中心
应用程序通过 NSDistributedNotificationCenter 监听 macOS 系统通知:
1. **屏幕锁定通知**
```
Notification: com.apple.screenIsLocked
当用户锁定屏幕时发送
```
2. **屏幕解锁通知**
```
Notification: com.apple.screenIsUnlocked
当用户解锁屏幕时发送
```
3. **屏幕保护程序通知**(辅助检测)
```
2025-11-11 20:49:12 +08:00
Notifications:
- com.apple.screensaver.didstart
- com.apple.screensaver.didstop
```
2025-11-11 20:52:14 +08:00
### 电源监控机制
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
#### Linux: DBus login1 服务
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
```
Service: org.freedesktop.login1
Path: /org/freedesktop/login1
Interface: org.freedesktop.login1.Manager
Signal: PrepareForSleep(bool entering_sleep)
```
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
#### macOS: NSWorkspace 通知
2025-11-07 10:56:45 +08:00
```
2025-11-11 20:52:14 +08:00
NSWorkspaceWillSleepNotification - 系统即将睡眠
NSWorkspaceDidWakeNotification - 系统已经唤醒
2025-11-07 10:56:45 +08:00
```
2025-11-11 20:52:14 +08:00
### Vulkan 渲染流程
1. **初始化**
- 使用 volk 动态加载 Vulkan 函数
- 创建 Vulkan 实例macOS 需要 portability 扩展)
- 选择物理设备GPU
- 创建逻辑设备和队列
- **macOS**: 创建 CAMetalLayer 用于 MoltenVK 渲染
2. **渲染管线**
- 创建 swap chain交换链
- 创建 render pass渲染通道
- 加载 SPIR-V 着色器
- 创建图形管线(背景、几何、线条、文字)
- 设置 MSAA 多重采样
3. **每帧渲染**
- 获取 swap chain 图像
- 记录命令缓冲
- 绘制背景、几何和文字
- 提交到 GPU 队列
- 呈现到屏幕
### 渲染控制
当检测到锁屏或睡眠时:
1. 相应的检测器发出信号
2. `MainWindow` 接收信号并调用渲染器的 `setRenderingEnabled(false)`
3. 渲染器停止渲染定时器
4. GPU 进入空闲状态,节省资源
当检测到解锁或唤醒时:
1. 相应的检测器发出信号
2. `MainWindow` 调用 `setRenderingEnabled(true)`
3. 渲染器重启渲染定时器
4. 动画恢复正常渲染
## 平台特定架构
### 设计模式
项目采用 **工厂模式 + 策略模式** 实现跨平台支持:
1. **抽象基类** (`*_base.h/cpp`)
- 定义统一接口
- 实现公共功能
2. **平台实现** (`*_linux.h/cpp`, `*_macos.h/mm`)
- 继承基类
- 实现平台特定 API
3. **工厂类** (`screenlockdetector.h/cpp`, `powermonitor.h/cpp`)
- 根据编译平台自动选择实现
- 提供统一的公共 API
详见:`src/platform/README.md`
2025-11-07 10:56:45 +08:00
## 故障排除
### macOS 平台
2025-11-11 20:52:14 +08:00
#### 问题 1Vulkan 实例创建失败
2025-11-11 20:52:14 +08:00
**错误信息**`Failed to create Vulkan instance, error code: -9`
**原因**MoltenVK 未正确安装或配置
**解决方案**
```bash
2025-11-11 20:52:14 +08:00
# 确保 Vulkan SDK 已安装
ls ~/VulkanSDK/1.4.328.1/macOS/lib/libMoltenVK.dylib
2025-11-11 20:52:14 +08:00
# 设置环境变量
export VULKAN_SDK=~/VulkanSDK/1.4.328.1/macOS
export DYLD_LIBRARY_PATH=$VULKAN_SDK/lib:$DYLD_LIBRARY_PATH
export VK_ICD_FILENAMES=$VULKAN_SDK/share/vulkan/icd.d/MoltenVK_icd.json
2025-11-11 20:52:14 +08:00
# 使用 run_mac.sh 脚本运行(已包含配置)
./run_mac.sh
```
2025-11-11 20:52:14 +08:00
#### 问题 2CAMetalLayer 错误
2025-11-11 20:52:14 +08:00
**错误信息**`VK_ERROR_SURFACE_LOST_KHR: On-screen rendering requires a layer of type CAMetalLayer`
2025-11-11 20:52:14 +08:00
**原因**:已在新版本中修复,确保使用最新代码
**解决方案**:重新编译项目
2025-11-11 20:52:14 +08:00
#### 问题 3应用无法检测到锁屏
**解决方案**
```bash
2025-11-11 20:52:14 +08:00
# 查看应用日志
./run_mac.sh 2>&1 | grep "ScreenLock"
2025-11-11 20:52:14 +08:00
# 确保应用有必要的权限
# 系统偏好设置 > 安全性与隐私 > 隐私
```
### Linux 平台
2025-11-11 20:52:14 +08:00
#### 问题 1Vulkan 不可用
**错误信息**`Vulkan headers not found`
**解决方案**
```bash
# 安装 Vulkan 开发库
sudo apt-get install vulkan-tools libvulkan-dev
# 或手动下载 Vulkan Headers
git clone https://github.com/KhronosGroup/Vulkan-Headers.git
# 更新 CMakeLists.txt 中的 VULKAN_HEADERS_DIR
```
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
#### 问题 2锁屏检测不工作
2025-11-07 10:56:45 +08:00
**解决方案**
```bash
# 检查 DBus 服务
ps aux | grep dbus
# 检查 GNOME ScreenSaver 是否可用
qdbus org.gnome.ScreenSaver
2025-11-11 20:52:14 +08:00
# 查看应用日志输出
./run.sh 2>&1 | grep "ScreenLockDetector"
2025-11-07 10:56:45 +08:00
```
2025-11-11 20:52:14 +08:00
### 通用问题
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
#### 问题:编译错误 - Qt5 not found
2025-11-07 10:56:45 +08:00
**解决方案**
```bash
2025-11-11 20:52:14 +08:00
# 设置 Qt5_DIR 环境变量
export Qt5_DIR=/path/to/qt/lib/cmake/Qt5
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
# 或修改 CMakeLists.txt 中的 Qt5_DIR 路径
2025-11-07 10:56:45 +08:00
```
2025-11-11 20:52:14 +08:00
## 性能优化
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
### Vulkan 渲染器
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
- **MSAA**:自动选择最佳采样数(最高 8x
- **三缓冲**:使用 3 个并行帧减少延迟
- **动态加载**:使用 volk 避免链接 Vulkan 库
- **命令缓冲复用**:减少 CPU 开销
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
### 资源节省
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
- 锁屏时自动停止渲染(节省 GPU 资源)
- 睡眠时自动停止所有活动(节省电池)
- 最小化时暂停渲染(可选)
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
## 扩展开发
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
### 添加新的平台特性
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
详见:`src/platform/README.md`
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
### 自定义着色器
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
编辑 `shaders/` 目录中的 GLSL 文件,然后重新编译:
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
```bash
./compile_shaders.sh
./build_mac.sh # 或 ./build.sh
2025-11-07 10:56:45 +08:00
```
2025-11-11 20:52:14 +08:00
### 添加新的渲染效果
2025-11-07 10:56:45 +08:00
2025-11-11 20:52:14 +08:00
`VulkanRenderer``CustomWidget` 中添加自定义绘制代码。
2025-11-07 10:56:45 +08:00
## 许可证
本项目仅用于学习和演示目的。
## 作者
2025-11-11 20:52:14 +08:00
Qt Screen Lock Detection Demo Team
2025-11-07 10:56:45 +08:00
## 更新日志
2025-11-11 21:14:12 +08:00
### v3.0.0 (2025-11-11)
2025-11-11 20:52:14 +08:00
-**重大更新**: 新增 Vulkan 渲染支持
-**重大更新**: 新增电源监控功能(睡眠/唤醒检测)
- ✅ macOS: 完整的 MoltenVK 支持(包含 CAMetalLayer
- ✅ 双渲染引擎Vulkan + QPainter
- ✅ MSAA 抗锯齿支持
- ✅ FreeType 字体渲染集成
- ✅ 重构项目结构:创建 `platform/` 目录统一管理平台代码
- ✅ 改进的跨平台架构Factory + Strategy 模式)
- ✅ 完善的文档和故障排除指南
2025-11-11 21:14:12 +08:00
### v2.0.0 (2025)
2025-11-11 20:52:14 +08:00
- ✅ 新增 macOS 平台支持
- ✅ 实现跨平台架构Linux + macOS
- ✅ macOS: 使用 NSDistributedNotificationCenter 监听系统通知
- ✅ 创建平台特定的构建和运行脚本
2025-11-11 21:14:12 +08:00
### v1.1.0 (2025)
2025-11-07 14:57:13 +08:00
- ✅ 新增 Deepin OS (DDE) 锁屏检测支持
- ✅ 优化多桌面环境兼容性
2025-11-11 21:14:12 +08:00
### v1.0.0 (2025)
2025-11-07 10:56:45 +08:00
- ✅ 初始版本发布
- ✅ 支持 GNOME 和 systemd-logind 锁屏检测
2025-11-11 20:52:14 +08:00
- ✅ 实现自动渲染控制
2025-11-07 10:56:45 +08:00
- ✅ 提供丰富的动画演示效果
2025-11-11 20:52:14 +08:00
## 技术支持
2025-11-07 10:56:45 +08:00
2025-11-10 10:34:04 +08:00
如有问题或建议,欢迎提出!
2025-11-11 20:52:14 +08:00
### 相关文档
- [平台代码组织说明](src/platform/README.md)
- [Vulkan 渲染架构](docs/)
- [CMake 构建配置](CMakeLists.txt)
### 相关链接
- [Qt Documentation](https://doc.qt.io/qt-5/)
- [Vulkan SDK](https://vulkan.lunarg.com/sdk/home)
- [MoltenVK (macOS)](https://github.com/KhronosGroup/MoltenVK)
2025-11-11 21:14:12 +08:00
- [volk - Vulkan Meta-Loader](https://github.com/zeux/volk)