feng-yifan/dsh-plugins

dsh-vertical-layout

竖屏布局:电脑竖屏窗口下,导航占左列整高,文件/终端面板移到对话区上方,中间的分隔线可拖拽调整高度;手机/平板不受影响。

UI 增强

dsh-vertical-layout

简体中文 | English

DSH 竖屏布局优化:只在电脑屏幕(非手机 / 平板)上,当浏览器窗口为竖屏时,把三栏重排为「左列导航 + 右上文件 / 终端 + 右下对话」,让对话区在竖屏下拿到完整宽度。

解决的问题

DSH 的 Web UI 是三列:左侧导航、中间对话、右侧文件 / 终端停靠面板。竖屏(窗口宽 < 高,例如竖置显示器、窄窗口)打开右侧面板时,中间对话区会被挤得很窄。

本插件在「电脑 + 竖屏 + 右侧面板打开」时重排为:

  • 左列:导航区,占满整列高度;
  • 右上:文件 / 终端面板(初始高度约窗口高度的 40%,可配置,也可拖拽调整);
  • 右下:对话区,横跨导航区以外的全部宽度;
  • 两者之间有一条与 DSH 原生列边界同款的分隔线,线上带拖拽条;打开 / 收起按钮的图标旋转 90°,表示面板在顶部;
  • 手机 / 平板完全不受影响:触屏设备不注入任何样式,竖屏表现与原生 DSH 一致。

效果

环境 · 行为 电脑 · 横屏 · 不做任何改动(原生三列布局) 电脑 · 竖屏 · 右侧面板关闭 · 不改动布局(仅打开按钮图标旋转,表示面板在顶部) 电脑 · 竖屏 · 右侧面板打开 · 导航占左列整高;文件 / 终端在右上、对话在右下,中间有可拖拽的分隔线

安装

dsh plugin --profile web add dsh-vertical-layout

安装后重启 dsh web 生效。

配置

在 profile 的 cordis.patch.yml 里覆盖插件行:

- id: vertical-layout
  name: dsh-vertical-layout
  config:
    enabled: true      # 总开关,默认 true
    topRatio: 0.4      # 右上停靠区初始高度 / 窗口高度,默认 0.4(限 0.2–0.6)
    topMin: 220        # 右上停靠区最小高度 px,默认 220

初始高度由 topRatio 决定;之后可在会话内用分隔线上的拖拽条调整(窗口高度的 0.15–0.7,且不小于 topMin)。修改配置后重启 dsh web。

已知限制

  • 窗口过窄(约 < 700px,视侧边栏状态而定)时,DSH 原生逻辑判定「无空间」而无法打开右侧面板——这是框架的列宽求解决定的,本插件不介入。
  • 右侧面板处于全屏时插件不干预,面板照常覆盖整个窗口。
  • 竖屏下隐藏右栏宽度拖拽把手(宽度由「铺满右上」取代),恢复横屏后自动恢复;拖拽左侧导航会按比例收窄停靠区。
  • 停靠区高度调整仅在会话内生效,刷新页面后回到 topRatio。
  • 手机 / 平板完全跳过本插件;移动端竖屏优化请用其它方案(如 dsh-web-mobile)。

版本适配

本插件不声明任何 @deepseek-ai/dsh-* peerDependencies(只依赖稳定的 DOM 数据属性与设计令牌 CSS 变量),因此不受 DSH 版本门禁约束;升级 DSH 后打开界面确认一次即可。

License

MIT