底部程序坞前端。
- pinned only
- running only
- pinned + running
- special item(launchpad/trash/settings)
- 左键:启动/激活
- 左键单击已聚焦多窗口 app:切到下一个窗口
- 右键:应用动作菜单
- 滚轮:切换同 app 窗口
- 拖拽:重排 pinned
- hover:按整排连续指针场驱动 magnification、局部横向让位和竖向抬升
- 启动反馈:
launch_app发送成功后触发两段式 bounce;应用进入running/focused后允许提前结束,但会先平顺收尾到静止位
- 未运行:启动。
- 已运行未聚焦:聚焦最近使用窗口。
- 已聚焦单窗口:发送
activate_app - 已聚焦多窗口:发送
focus_next_app_window
- dock item 的应用主键在 v1 中统一为
app_key app_key在可解析时稳定等于desktop_id- 仅当窗口缺少
desktop_id映射时,core 才回退到app_id做归并匹配
dock topic 当前已输出真实 item 列表,至少包含:
app_keydesktop_idnameicon_namepinnedrunningfocusedpinned_indexwindow_ids
排序规则当前为:
- pinned item 按
pinned_index - running item 按首次进入运行态的顺序稳定排列
- 未运行的 pinned item 保持在 pinned 区域,不参与 running 顺序
bit_dock只负责展示与交互,不自己决定目标window_idbit_dock当前会发送:launch_appactivate_appfocus_next_app_windowfocus_prev_app_windowpin_appunpin_app
bit_shelld基于StateStore权威状态决定 app 激活与多窗口切换目标
当前 backend 已支持通过 pin_app / unpin_app 命令修改 pinned 状态,并立即同步到 state.json。
当前 bit_dock GTK 前端已落地以下交互语义:
- motion 事件挂在整排
items_box上,而不是每个 item 上 - hover 输入状态以连续
pointer_x / pointer_y表达,不再以单个 hovered item 作为主状态 - magnification 采用有限支撑的连续权重函数;权重按鼠标到每个图标基础中心的横向距离连续计算
- 图标 scale、lift 和 offset 先算
target,再由 tick 回调按时间常数插值到current - 横向让位不再依赖固定邻居权重,而是按最小中心距约束做局部连续求解
- hover 求解使用稳定参考坐标系;输入指针和
base_center_x都定义在layout_box坐标系下,避免动态 margin 反馈抖动 - dock 宽度会吸收左右视觉外溢;顶部采用透明 headroom 吸收放大与抬升,但不改变白色玻璃框自身高度
- dock 数据刷新后会重建基础几何与视觉顺序,并保持后续动画基于新的基础中心继续插值
当前实现将位移与缩放拆到三层:
dock-slot:负责横向位移dock-slot-content:保留内容容器与指示点布局,不再承担纵向位移dock-item:负责图标按钮自身的纵向位移与 magnification scaledock-indicator:只表达 running/focused 指示;随 slot 横向滑动,但不跟随图标的纵向抬升/启动 bounce 一起上下位移
当前状态不再通过离散 bucket class 叠加,而是连续输出到动态样式:
dock-slot:translateX(current_offset_x)dock-slot-content:保持translateY(0)dock-item:translateY(current_lift + launch_feedback_y) scale(current_scale)
当前动画模型:
scale、lift、offset都保留current_*与target_*- 每帧通过 GTK tick 回调做时间常数插值,而不是通过固定
mag-*bucket 切换 - 目标布局使用一维约束投影求解,避免鼠标位于两个图标中缝时出现离散锚点切换抖动
- 启动 bounce 复用同一个全局 tick 与动态样式链路,不单独建立第二套 CSS/timer 动画系统
- 启动 bounce 是 item 级瞬态反馈分量,不进入 hover range、横向让位或 magnification 的几何求解器