--- title: 灵动岛 description: 经典提醒、自定义常驻方案、课程与课件传输。 --- # 灵动岛 灵动岛是客户端的独立透明窗口,不占任务栏。设置中可选择经典 fixed 或自定义 custom,默认 fixed。 自定义当前即常驻模式;旧 residentEnabled 字段只作兼容,不是另一个独立开关。 两种布局共用一个原生窗口,切布局不会新开第二个岛。 ## 两种消息展示 | 场景 | 经典 fixed | 自定义 custom | | ----------------- | ------------------------------ | -------------------------- | | 空闲 | 默认隐藏,可选细缝 | 显示常态组件行 | | 课间普通通知/作业 | 胶囊,点击详情 | 铃铛和未处理数量,点击查看 | | 课堂普通通知/作业 | 暂存,下课补弹 | 铃铛提示,允许主动查看 | | 普通叫人 | 课堂也保留可点胶囊,不自动展开 | 铃铛提示,主动查看 | | 紧急通知/紧急叫人 | 无论课堂状态立即展开 | 铃铛提示,由用户主动展开 | | 无消息时点击 | 按经典空闲状态处理 | 展示方案的无通知展开内容 | | 处理完成 | 队列清空后隐藏或细缝 | 回到常态组件行 | 多条消息按 id 去重,按优先级和时间排序;详情显示列表与“展开更多”,超出工作区提示到应用中操作。 “知道了/标为已读”按当前列表语义处理;本机刚录的作业通过指纹避免重复提醒自己。 课堂发布紧急通知的二次确认是服务端规则,见[通知](notifications.md),不因本机布局改变。 经典布局的历史展示图(供外观参考,具体行为以上表和当前设置为准): | 场景 | 展示图 | | -------- | --------------------------------------- | | 经典胶囊 | ![胶囊](../images/island-4-pill.png) | | 展开详情 | ![详情](../images/island-5-clicked.png) | | 紧急通知 | ![紧急](../images/island-3-urgent.png) | ## 编辑自定义方案 “设置 → 灵动岛 → 自定义 → 编辑岛内组件”进入主窗口设置页。 页面上方排列当前组件,右上角选择配置方案;刷新图标重置当前方案,加号新建方案,文件夹菜单提供方案设置、复制、删除及 JSON 导入导出。 下方组件库常驻显示文本、分割线、课程表、日期、时钟、天气简报、倒计时和组合容器,并保留班级通知、作业和叫人组件。 从组件库拖入上方的行或容器以添加,拖动已有组件调整顺序或跨行移动;也可点击组件库添加到选中的容器或当前行。 分别编辑常态 rows 与无消息展开 expandedRows,点选组件打开内容、外观、尺寸与隐藏条件设置;行可以新增、排序、设为主要行或删除。 “进入编辑模式”切换为实际内容预览,支持预览缩放;退出后回到组件标签排列。轮播和滚动容器在编辑时展示全部子组件,便于选择和排列。 倒计时可指定目标名称与日期,也可按课表倒数至上课、下课或放学。 天气简报需填写地点名称及经纬度,使用 [Open-Meteo](https://open-meteo.com/en/docs) 的天气数据,每 15 分钟更新;断网时保留本次客户端运行中的缓存并标明“缓存”。天气提示根据天气概况生成,不提供官方气象预警。 方案保存到本机 config.json.islandLayout,不增加服务端同步。 编辑预览不创建额外桌面窗口;打开编辑页不自动切布局,应用后启用自定义方案。 保存按序进行,失败可重试,主题与关怀模式沿用客户端设置。 ## 外观、位置与输入 经典模式可调宽高、字号、主题色、黑色/半透明/渐变、停靠与边距;自定义内容根据实际测量适配工作区。 自定义方案可配置缩放、圆角、颜色和行间距,默认值与范围在 shared/island-layout.ts。 左右边距只在左/右停靠时生效,居中锚点仍在屏幕中线。 触摸屏自动进入触摸模式,保留触摸命中和失焦宽限;鼠标模式按光标控制输入穿透。 自定义常驻内容支持鼠标避让淡化及反转,交互入口、展开/编辑和触摸操作按实现暂停避让。 应用内动画开关决定岛动画,不能用主窗口的减少动态效果说明替代岛自身规则。 经典几何与配色参考见[设计令牌](../dev/winisland-design-tokens.md),实现入口见[当前实现约定](../dev/implementation.md)。 ## 课程与课件 准备、上课、下课、下课前倒数和课中进度等提醒在本机配置独立开关,课程依据服务端解析后的课表。 自定义常驻岛的「课程表」组件可选「当前时间点 / 下一节课 / 今日时间点」: 「今日时间点」显示当天全部时间点,只有当前项展开显示起止时间,其余折叠只显示课程名; 课间休息与「默认隐藏」的上课时间点折叠时完全隐藏,轮到它们时才展开;分割线显示一条竖线,行动不显示。 课中课程表不再常驻显示倒计时,只在最后一分钟由既有的「下课提醒」页显示「距下课还剩」; 倒计时阈值沿用本机提醒设置(默认 60 秒)。没有时间点数据时退回按课表条目显示课程。 经典 fixed 岛的课中提醒条保持原有倒计时行为。 课件接收时显示文件名、类型、教师、字节和进度,覆盖当前固定/自定义内容;完成后校验 SHA256 并回执。 客户端不会自动执行收到的文件,见[课件](courseware.md)。 ## 验证与排查 默认 verify:desktop/verify:packaged 是后台快速检查,不显示岛或托盘。 只有显式 --visual 或 verify:desktop:visual 才进行桌面像素、透明度、动画和截图验收。 若出现多岛,先确认是否存在用户实例与显式视觉验证实例;不要把默认后台冒烟解释成可见验证岛。