# NOW-PLAYING-DSH.md —— Now playing 挂到 DSH 左侧栏「设置」上方(NP-1) > 2026-09-19。用户原话(第 1 条,逐字): > 「**now playing 挂载到 dsh 设置上面 有一个开关启用是否挂载 左边栏收起就隐藏**」 > 编号 **NP-1**(代码注释写 `①(NP-1 …)`)。组件本体来自 **Bencho**(MIT,见 §2); > 与上游的逐项差异见 §2.2。相关文档:`../docs/COPYING-RULES.md` §4 台账 #13、 > `THIRD-PARTY.md` §6、`docs/CLIENT-JS-SPLIT-ASSESSMENT.md`(内联形态的依据)、 > `docs/STYLE-SCOPE-GUARD.md`(样式锚点判据)。 --- ## 0. 一句话结论 三件事都落地了,**开关默认关**: ① 组件挂进宿主**官方附加 slot** `sidebar.footer.action`(它的出口结构上就在「设置」入口**正前方**;slot 不可用时按三级降级锚点插到设置入口之前,再不行退到底部组第一位并**留日志**); ② 设置项 `npNowPlaying`(「壁纸设置」tab,默认 **false**)控制是否挂载 —— **关 ⇒ 零 DOM、零观察者、产物里零行 NP 规则**(三条都有断言); ③ 左侧栏收起 ⇒ 组件自己加 `data-mpw-np-hidden`(`display:none`)。判据**优先**用宿主自己的状态(slot 的 `wide` → AppFrame 的 `data-sidebar-collapsed` → 侧栏根的 `collapsed` 类),**兜底**用实测宽度 < **96px**(宿主收起轨道恰好 56px、展开下限 264px —— 见 §5)。 ⟶ **①(NP-2) 复核更正(真机 bug,§7.6)**:这一条的**优先级反了**,已改成"**物理宽度优先**(量到 ≥96px 就不隐藏)、宿主状态只在**量不到宽度**时兜底"。真机上出现过"宿主 `wide=false` + 实测 256px 展开"的矛盾组合,旧写法让控件在展开的侧栏里把自己藏了。 **数据接入是"能做才做、做不到就说"**:视频壁纸那条音轨**真能控**(播放/暂停/进度/音量,走页面里真实存在的 `