Repository navigation
Releases
v1.7.4
v1.7.3
nosDshell v1.7.3
这版专治内存莫名变高:壁纸纹理、通知闭包、JS 堆和 glibc 分配器四条增长路径一起收口,长期挂着的 shell 不再往 1 GB 爬,换出内存也不再只进不出。quickshell fork 一并推进——自带分配器约束、可编 Qt 6.6,构建矩阵 34 项全绿。
修复
- disconnect replaced close handlers in updatePopup:
c6089d28a - stop retaining every shown wallpaper texture:
03c5cac47
观感
- run qmlfmt over Background and NotificationService:
217a5db30
性能
- cap glibc arenas and pin malloc thresholds:
6205782d1 - collect the V4 JS heap on a slow cadence:
4affd7f6a
CI
- tag 之后的机械步骤交给 workflow:
cdff4ca25
工程
v1.7.2
nosDshell v1.7.2
niri 的模糊这回盖满整块对话框底板,不再只糊中间一圈;启动器学会在应用注册时即时刷新列表,新装的应用不会再从全屏网格里凭空消失。设置页做了一轮版式收敛:列表头接缝统一为 1 px,蓝牙行改用与 Wi-Fi 相同的悬停操作,控件各归其列,芯片标签不再被空齿轮位吃字。截图全部在带模糊的 niri 桌面上重拍。
修复
- refresh settings search index and drop orphaned translation keys:
7f5e194df - publish a new provider map when apps register:
8c1707c87 - stop empty gear slots from eliding chip labels:
3316e2e09 - equal chip insets and hide disabled pages:
237c204b9 - stop layout fixes from sliding onto the next row:
2e6feb2fa - put every control back on the column:
58692609a - keep the control column inside the row:
02195c672 - use one list-head seam and one row action rule:
b13e01db1 - cover the full dialog plate under niri:
34cdf8f74
文档
v1.7.1
nosDshell v1.7.1
GTK 配色接上最后一根线:模板写下的调色板文件和 helper 要找的文件从此同名,设置里勾选 GTK 模板就会真正生效——GTK 应用跟着 shell 的配色方案走,不再被半年前留下的旧导入按在深色。
修复
- make gtk-refresh look for nosd.css like the template writes:
73f978f52
v1.7.0
nosDshell v1.7.0
这一版把全部动效换成了一套有出处的设计语言:所有时长收进五档令牌、所有曲线取自一张
CDS 曲线表——弹出层从锚点长出、带一点回弹,按钮按下微缩、松手弹回,通知和 OSD 沿屏
幕边滑入滑出,行类元素的指针态依旧瞬变;切主题时全部颜色做一次交叉淡化,关掉动画或
进入性能模式时这一切同时归零。配套地,弹出层、菜单、对话框的阴影重画成轮廓外侧的双
层投影,深色弹出层上沿多了一道 1 px 高光,滚动区边缘的内容不再被色块盖住,而是沿曲
线溶进背景;键盘操作也终于有了焦点环。
顺手修掉一批"看不见的拦截者":会话菜单关掉后不再以一块透明全屏表面继续吃掉点击和按
键,滚动区边缘层不再在重建瞬间吞掉偶发的按下,通知超时退场也有了自己的动画而不是瞬
灭。验证侧新添了逐帧拍动效曲线的取证工具,和一套 Nix 测试环境,云端容器里也能跑完整
的校验。
新功能
- debug findAll, and hit-tests that see through wheel layers:
79a47960a - top-edge highlight on dark popups:
28b7408d6 - non-linear CDS edge fade as an alpha mask:
c46f19be3 - NFocusRing for keyboard focus; notification cards use it:
b64bc6fcc - theme crossfade on motionTheme with the swift curve:
5583af7d7 - finish the migration; every loop honours reduced motion:
6f299f7d2 - control-centre page pushes on motionPage:
87c3c597d - app strips, workspaces and bar pills on §1.7 tokens:
3bc5075eb - NPressScale press squish on button-class controls:
64d9c533c - data, reorder and focus colours on tokens; gate loops:
b975d9d5a - scroll views on §1.7 curves; reduced motion covers them:
3253aa324 - switch, collapsible and page transitions on §1.7 curves:
fc62a2412 - full-screen surfaces on the §1.7 tokens:
853fc8ecd - CDS enter/exit on the OSD tile:
dddd54dae - bubble recipe for enter and exit; animate dismissal:
2acd04b3f - CDS enter/exit for bubbles and the history list:
b89f459fb - popover motion and room for the shadow:
d06fe10c1 - move panels, dimmer and bar slide onto the §1.7 tokens:
072756b21 - draw shadows outside the silhouette only, in two CDS layers:
31b6af3be - grow popups out of their anchor on the CDS popover recipe:
7b7a71caa - add NAnim/NColorAnim motion primitives:
2129bf309
修复
- let the anchor group through the missing-property check:
8c40184d3 - run the section editor's drop pulse from a binding:
2410d6bfb - unmap the session menu once its close fade is over:
15b2c2369 - keep a resident virtual pointer so injected clicks are not lost:
2e6690e7f - hand the bundled launcher icon over as a file URL:
05b561c6e - size the section editor title from the editor, not its row:
27bc89629 - reserve the scrollbar column one turn after overflow changes:
26c583fb7 - declare the tab-ready Connections target as null:
e960b97e5 - give the module scroll an explicit content size:
e10743751 - draw the top highlight with rectangles, not Shape strokes:
e5f87b4ca - draw the focus ring only for keyboard selection:
51133a04e - send the pointer motion before every click, not only held ones:
c3a960203 - keep the edge-fade layer stable so clicks are not lost:
513d8b6ba - deliver the press of a held click:
8d71d27bc - let dismissOldest play the bubble exit:
9dd791c73 - give popup menu windows room for their shadow:
f1c902ff8 - keep fitted curves under the QEasingCurve 11-segment crash:
ff72a76b3 - repair debug-smoke assertions that drifted from the debug IPC:
69a2f5d90 - replace the
//comment that broke flake evaluation:2aeb9c76b
观感
- run qmlformat over DebugService:
e2b017ed8 - add CDS duration tiers, curve tokens and reduceMotion:
c50f30a24
重构
- converge tabular numerals on NText.numeric:
e9a854140
性能
- fade arrow-popup backgrounds by item opacity, not path colour:
a64a6da65
文档
- how to tell a lost press from a QML bug; known issue:
4332151e8 - record the arrow-panel scale exception and the spline cap:
163605412 - adopt the CDS motion language and surface finish:
232877667
验证
- read settings-tree's contentY directly, not from a tree dump:
688682864 - move item_centre next to the other scene helpers:
d05a17198 - make cc-switch find its switch by objectName and assert it:
260cf95b0 - run lockscreen last in the default scene set as well:
742a3ebea - select the Papirus icon theme in isolated sessions:
362905c30 - say so when edge-fade has no scrollable page to test:
988a1ca47 - park edge-fade at the middle of the scroll range:
b88bb5ee6 - make cc-notif-groups run all four steps and assert them:
18ec80ef4 - add an edge-fade scene that asserts the fade widths:
b9c5a03df - add cc-notif-focus for the keyboard focus ring:
8bfa0ddea - let a burst skip the still-screen wait:
cf0166dcb - add a motion-tooltip scene:
8585a0ab3 - assert the menu shadow margin is click-through; fix VINPUT clash:
e80f38d62 - fail runs on config load failures and crashes; add motion-pane...
v1.6.4
nosDshell v1.6.4
这一版修掉一个困扰已久的"幽灵换肤":主题总是在计划时间之外自己翻动,一天里能来回
好几次。根因是亮暗调度有两个权威——shell 按你设的手动时刻走,portal 守护进程却另
按经纬度的日出日落各走一套,谁的断言后到谁"赢",每次覆盖都会连带刷新整套系统主题。
现在调度权全局只有一个所有者,两个方向的行为也都顺了:跟随系统时由守护进程执掌太
阳时边界,其余模式由 shell 说了算,手动切换不再被定时复查悄悄踩回去。
修复
- harden client race, hook dedup, and polar solar mode:
c3992ecc3 - gate the daemon's solar timer behind single-owner policy:
8a2078a75
验证
- add dark-mode-flag scene and pin in-tree helpers on PATH:
329b2e6d1
v1.6.3
nosDshell v1.6.3
控制中心与设置里的模块图标终于成了一家人:此前 DDE 原版剪影、仓库自绘仿品和
Tabler 描边字形三套并排,线宽粗细对不上;现在统一到 Papirus 的单色 symbolic 家族,
跟随你当前的图标主题解析,主题缺图时用打包副本兜底,未选中态靠不透明度分级而
不是另存一份素材。
另一处修的是半透明遮罩的磨砂:通知、OSD、桌面挂件这些浮在真实窗口之上的半透明层
此前被 niri 的模糊强制关闭规则误判在门外,看上去"透明但不糊";现在这些层会正式
发布模糊区域,磨砂按设计生效。
另外把三个 quickshell 系的开发 skill 一并入库,方便后续接着演进。
新功能
- unify module icons on the Papirus symbolic family:
72ccf749e - publish blur regions from remaining translucent surfaces:
d4b624891 - 从 hermes 平移 quickshell 系三个 skill 入库:
2642d4a8c
修复
- move blur-region publishers out of the force-off layer tier:
790c4324c
v1.6.2
nosDshell v1.6.2
这一版修掉一个在 Qt 6.12 下暴露的界面问题:设置面板、控制中心这类带背景的窗口一打开就整块发黑,界面几乎全透明,底栏也跟着失色——原因是新版本 Qt 引入了一个同名的颜色类型,把主题色单例挡在了后面,主题色全部取空。现在主题色重新由自己的令牌接管,面板恢复半透明磨砂,底栏配色与之前一致。
同时把一类"越攒越多"的常驻进程收干净:深浅色守护进程此前每启动一次就多排一份新的等待队列,现在全局只保留一份;剪贴板监听、事件流、网络与设备监控等子进程改为随主进程一同退出,崩溃后不再留在后台悄悄吃内存。
另外修正了输出分辨率变更后壁纸背景被清掉的问题,以及构建时会随 channel 漂移的问题。
新功能
- add IPC/property-debug hooks for live shell introspection:
4ff30d8ba
修复
- use try_lock for portal daemon so duplicate spawns exit fast:
ecc6db1db - rename Color singleton to Colors to escape Qt 6.12 QQuickColor shadowing:
e2e8198c6 - build nosdshell inside guix time-machine pinned to channel.lock:
832a5eac6 - compare screens by name so background survives output renegotiation:
c61e1d7be - make managed child processes die with the shell (PR_SET_PDEATHSIG):
cafe892df
工程
- update
.gitignore:f0b1ed33d
v1.6.1
nosDshell v1.6.1
这一版修掉一个会卡死整个会话的问题:按时间自动切换深浅色时,日出日落边界可能触发深色/浅色每秒两次的死斗——主题、GTK 设置和夜灯钩子被反复拉起,桌面直接冻住。根因(边界定时器提前触发后又被旧逻辑反向写回)已铲除,边界处现在只翻一次。顺带还带上了一批挂件生命期修复、设置页与启动器的性能优化,以及网络、VPN、图标解析的若干小修。
修复
- stop schedule-boundary fight that flipped dark/light in a loop:
ebfc52450
其他
- commit numeric widget settings on finished editing only:
5ee5599dd - fix four lifecycle and value bugs in shared widgets:
0a608d19c - stop paying for the settings view before anyone opens it:
7a969d6fb - stop rebuilding the launcher result set on every open:
179ce7d3f - keep transient service-name resolution across dialog shows:
c40485119 - resolve fashion-dock workspace filter on every backend:
5a7f2993a - count discovery owners in the service instead of each surface:
65b20b047 - poll VPN connections slowly when no profiles exist:
a5f82eb2e - keep the nmcli monitor alive across NetworkManager restarts:
20bd7a8b4 - cache icon-name resolution and cap fuzzy fallback at one result:
5978a07f2 - floor popup alpha at 0.9 without blur and mute write-echo reloads:
d72830ff7 - force explicit reload when the translation path is unchanged:
61138f714 - guard settings load against corrupt JSON and unreadable files:
062376f39
v1.6.0
nosDshell v1.6.0
这一版把两块「看着像、用不了」的地方改成了真家伙:高效任务栏的排布从写死的布局变成可编辑模型,配套的分区式 widget 编辑器让你自己决定每个格子里放什么;时尚坞的应用条则换上一套统一的模型与动画,应用进出时沿边缘交错滑入。底下顺手扫掉了一批 ListModel 的老毛病——空值写入、委托角色类型、绑定里读行元素导致的报错与漏渲染,连带着工作区胶囊切换、任务栏溢出收缩、亮色主题强调色可读性一起修好,界面文案与 README 也全部重写了一遍。
新功能
- staggered edge-slide lifecycle for app-strip add/remove:
0028f73ca - unify app-strip model/animation and make fashion dock content configurable:
1340797da - tighten UI copy and converge widget/plugin display names:
e82c68ce4 - sectioned widget editor for the efficient taskbar:
c4a013d58 - make the efficient taskbar layout a real editable model:
89bb23529
修复
- never write null values into workspace ListModel rows:
5f999bc07 - make workspace delegate roles var and coerce backend fields:
17ab267c0 - purge binding-side reads of live ListModel row elements:
0076ef3c5 - incubation-safe list models for the dock/taskbar strips:
225550277 - host dialogs on the blur surface and stop cross-model widget writes:
6e1385f45 - animate workspace pill on focus switch:
38cedb5fe - size overflow shrink off the zone's real free span:
d3b10c597 - pack efficient left zone and honor colorizeIcons defaults:
39bb6ed9a - split positive into dark/light values for light-shell legibility:
863493992 - converge efficient-mode indicator on the pill delegates:
48c6f98df
文档
- rewrite READMEs and repo docs for clarity and product pitch:
2b946462e