Back to home

fengs2021

dsh-narrow-screen-fix

No description

Stars
0
Language
JavaScript
Created
Aug 17, 2026
Updated
Aug 17, 2026

Introduction

dsh-narrow-screen-fix

Unified narrow-screen (mobile) CSS adaptation for the DeepSeek Harness web GUI. One client-only plugin fixes the overflow/overlap issues that plague the UI on phones — question-card footers, the send button, the top tab bar, settings panels, model/permission selectors, SSH panel tabs. No dsh sources are touched.

DSH Web GUI 窄屏(手机)适配统一插件(纯 client 覆盖样式,不改 dsh 源码)。一个插件解决手机端所有常见的溢出/重叠问题。


English

What it fixes

Component (style tag)Fix (all under max-width: 768px)
ui-user-questions QuestionComposerquestion-card footer wraps; action row (skip + confirm) becomes full-width right-aligned
ui-user-questions PlanReviewPanelsame footer treatment for the plan-review buttons
ui-conversation InputBarbottom row wraps; trailing (model select + meter + send) takes its own right-aligned row; send button inset via 36px right padding
ui-conversation ConversationRoottop tab bar horizontally scrollable (hidden scrollbar), tabs never shrink; header/title row wraps, crumbs cap at 130px, header actions take their own row
ui-settings-general SettingsRootsettings panel stacks vertically (full-width bottom sheet, 88vh, rounded top), side nav scrolls internally, content adapts
ui-directory-picker-browse DirectoryBrowserdirectory columns relax their min-width
ui-model-selection / PermissionSelectselect triggers cap at 140px so the input row fits
@linxin666/dsh-ssh panelSSH panel tab bar horizontally scrollable
dsh-session-log-exportSession log button shrinks (28px, tight padding) to sit inline with alias/copy buttons
dsh-client-ui-agent-presetpreset row description releases its 48px reservation so Chinese text wraps normally

Mechanism

  • Static CSS: the plugin injects a dedicated <style> block with known-hash class names + !important — always lands, zero dependencies
  • Dynamic path: it also locates each component's own injected <style> tag, extracts the live CSS-module class names (suffix regex), and appends the same rules — survives a dsh upgrade that re-hashes class names
  • Fallback: if a component style tag never appears within 20s, the static rules already cover it
  • Pure browser-side: no host code, no routes, no file writes

Install

dsh plugin --profile web add github:fengs2021/dsh-narrow-screen-fix
systemctl restart dsh-web   # or hot-mount via dev tools (no restart)

Then hard-refresh the page (Ctrl+Shift+R / incognito) and open it on a phone.

Notes

  • Replaces the earlier split plugins dsh-question-footer-fix, dsh-composer-send-fix, dsh-nav-tabs-scroll-fix — uninstall those if you had them
  • Rules are additive and idempotent; duplicates are harmless

中文

修复矩阵(全部 @media (max-width:768px) 生效)

组件(style 标签标识)修复
ui-user-questions QuestionComposer提问弹窗 footer 换行;操作栏整行右对齐(跳过+确认完整显示)
ui-user-questions PlanReviewPanel计划审查面板 footer 换行;按钮组右对齐
ui-conversation InputBar输入条底行换行;trailing(模型选择+用量+发送)独占一行右对齐;发送按钮内移(右 padding 36px)
ui-conversation ConversationRoot顶部标签栏横向可滑动(隐藏滚动条)、tab 不收缩;标题行可换行、面包屑 130px 截断、按钮组独占一行
ui-settings-general SettingsRoot设置面板纵向堆叠(底部弹层式:全宽、88vh、上圆角)、侧导航内滚、内容区自适应
ui-directory-picker-browse DirectoryBrowser目录列 min-width 放宽
ui-model-selection / PermissionSelect选择器收窄到 140px,输入行放得下
@linxin666/dsh-ssh 面板SSH 标签栏横向可滑动
dsh-session-log-exportSession log 按钮缩小(28px 紧凑内边距),与别名/复制按钮同排
dsh-client-ui-agent-preset预设行说明文字释放 48px 预留,中文正常断行

机制

  • 静态 CSS:注入独立 <style> 块(已知 hash 类名 + !important)——必然生效,零依赖
  • 动态路径:定位组件自身注入的 style 标签,动态提取当前 CSS-module 类名(后缀正则)追加同款规则——DSH 升级导致 hash 变化时自动适配
  • 兜底:组件 style 标签 20s 内未出现时,静态规则已覆盖
  • 纯浏览器侧:无 host 代码、无路由、无文件写入

安装

dsh plugin --profile web add github:fengs2021/dsh-narrow-screen-fix
systemctl restart dsh-web   # 或 dev 工具热装配(免重启)

安装后硬刷新(Ctrl+Shift+R / 无痕窗口),手机端打开查看效果。

说明

  • 替代早期分散方案 dsh-question-footer-fixdsh-composer-send-fixdsh-nav-tabs-scroll-fix(装过的请卸载)
  • 规则均为追加式、幂等,重复注入无害

License

MIT