# 多屏屏保 **Repository Path**: ibdp/multi-screen-screensaver ## Basic Information - **Project Name**: 多屏屏保 - **Description**: 支持win10、win11的多屏屏保(x86 64),可设置各个屏幕展示内容,最多支持9屏 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-26 - **Last Updated**: 2026-06-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 星空多屏仪表屏保 (Star Multi-Monitor Dashboard Screensaver) 一款 Windows 屏幕保护程序,支持 **1-10 块屏幕**,每块屏幕可独立设置不同内容。深邃星空背景统一贯通所有屏幕,每屏展示独立信息面板。 ## 功能特性 ### 多屏架构 - **多屏检测** — 自动检测所有显示器,创建统一全屏窗口覆盖虚拟桌面 - **每屏独立内容** — 通过配置对话框为每块屏幕分别选择显示内容 - **星空贯通** — 闪烁星星、旋涡星系、流星效果在所有屏幕间连续流动 - **最多 10 屏** — 支持扩展到 10 块独立显示器 ### 每一屏可选的显示内容 | 屏 | 名称 | 内容 | |----|------|------| | 1 | **数字仪表** | 超大时间 HH:MM:SS 、公历日期、星期、农历(天干地支生肖)、装饰边框 | | 2 | **天气预报** | 城市名、实时温度°C、体感温度、湿度、风速、天气描述 (数据来源: wttr.in) | | 3 | **科技资讯** | AI/大模型/前沿科技新闻头条滚动列表、自动轮播 | | 4 | **数字雨** | Matrix 风格绿色字符雨、中文/希腊字母、渐变尾迹 | | 5 | **数字地球** | 旋转经纬线球体、全球 UTC 时间、立体网格 | | 6 | **系统监控** | CPU/内存/磁盘/网络使用率进度条,数值每 0.5 秒平滑刷新 | | 7 | **月历视图** | 月历格子视图、今日高亮圆环、周末灰显、节气标注 | | 8 | **粒子宇宙** | 彩色发光粒子系统、动态运动轨迹、呼吸效果 | | 9 | **极简时钟** | 超大时间 HH:MM + 秒数、日期、呼吸圆环动画 | | 10 | **原油价格** | WTI 原油实时价格(模拟/API)、涨跌▲▼、迷你趋势图、当日高/低 | ### 显示效果 - **🌌 满天繁星** — 400 颗闪烁星星 + 5 个旋涡星系 + 流星特效,全景贯通 - **🎨 深色科技风** — 黑色背景 + 霓虹绿/蓝/金色数字,统一视觉主题 - **📐 自适应字体** — 所有文字根据屏幕分辨率自动缩放 - **🪟 Windows 原生** — 标准的 `.scr` 文件,系统设置中可直接选用 ## 安装方法 ### 方法一:一键安装(推荐) 以 **管理员身份** 运行 `install.bat`: ``` 右键 install.bat → "以管理员身份运行" ``` ### 方法二:手动安装 1. 将 `dist\StarDashboard.scr` 复制到 `C:\Windows\System32\` 2. 桌面右键 → 个性化 → 锁屏界面 → 屏幕保护程序设置 3. 在列表中选择 **"StarDashboard"** 4. 点击 **"配置(C)"** 为每块屏幕选择显示内容 ## 配置使用 打开屏保设置后点击 **"配置"** 按钮,或直接双击 `.scr` 文件: ``` ┌─ * 每屏内容设置 * ───────────────────┐ │ │ │ 屏1 [数字仪表 ▼] 1920×1080 │ │ 屏2 [天气预报 ▼] 1920×1080 │ │ 屏3 [科技资讯 ▼] 1920×1080 │ │ 屏4 [数字雨 ▼] 1920×1080 │ │ │ │ [保存] [重置] [取消] │ └───────────────────────────────────────┘ ``` - **保存** → 写入 `%APPDATA%\StarDashboard\config.json` - **重置** → 恢复默认映射(屏1=数字仪表, 屏2=天气预报, ...) - 下次屏保启动自动加载配置 ## 数据源说明 | 功能 | 数据来源 | 离线策略 | |------|----------|----------| | 天气 | wttr.in (免费 API) | 显示 "--" 并缓存上次数据 | | 科技资讯 | 内置 15 条精选动态 | 本地可用,随机排列 | | 原油价格 | 模拟数据 (65-95 USD 浮动) | 完全本地模拟 | | 农历 | LunarCalendar 库 | 完全本地计算 | ## 构建设置 如需自行构建: ```bash # 1. 安装依赖 pip install pygame pyinstaller lunarcalendar ephem # 2. 构建 python build_screensaver.py # 3. 输出在 dist\StarDashboard.scr ``` ## 使用说明 - **鼠标移动** 或 **键盘按键** → 退出屏保 - **启动 2 秒内** 忽略鼠标事件(防止启动即退出) - **屏保设置 → 配置** 打开内容选择对话框 - 预览模式 `/p` 在系统设置中自动调用 ## 技术栈 | 组件 | 用途 | |------|------| | **Python 3.13** | 核心逻辑语言 | | **Pygame (SDL2)** | 图形渲染、全屏窗口、字体绘制 | | **LunarCalendar** | 农历公历精确转换 | | **Win32 API (ctypes)** | 多屏检测 (EnumDisplayMonitors)、窗口管理 | | **PyInstaller** | 打包为独立 .scr 文件 | | **tkinter** | 配置对话框 UI | | **urllib** | 天气 API 数据获取 | ## 项目结构 ``` screen-saver/ ├── dist/ │ └── StarDashboard.scr ← 编译后的屏保文件 ├── star_digital_screensaver.py ← 主程序源码 (~1400行) ├── build_screensaver.py ← 构建脚本 ├── install.bat ← 一键安装脚本 ├── README.md ← 本文件 ├── requirements.txt ← Python 依赖清单 └── StarDashboard.ico ← 程序图标 ```