十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

komorebi 的 container-padding 命令:按工作区精确控制容器内边距

komorebi 的 container-padding 命令:按工作区精确控制容器内边距 桌面应用【免费下载链接】komorebiA tiling window manager for Windows 项目地址https://gitcode.com/gh_mirrors/ko/komorebi点击查看免费下载导读container-padding是 komorebi 平铺窗口管理器的核心布局调优命令用于为指定显示器上的指定工作区设置容器内边距container padding即平铺容器边缘与相邻容器/屏幕边界之间留出的像素空隙。本文围绕 docs/cli/container-padding.md 展开结合 komorebi 的 Rust 源码komorebi/src/window_manager.rs、komorebi/src/workspace.rs、komorebi/src/process_command.rs深入讲解命令语法、参数语义、底层生效机制以及与工作区内边距、默认内边距、静态配置之间的协作关系帮助你在多显示器、多工作区场景下实现精准的窗口间距控制。命令语法与参数说明container-padding命令由komorebic.exe提供通过命名管道socket向 komorebi 守护进程发送消息。完整语法如下Usage: komorebic.exe container-padding MONITOR WORKSPACE SIZE参数类型说明MONITOR整数显示器索引从 0 开始zero-indexedWORKSPACE整数指定显示器上的工作区索引从 0 开始zero-indexedSIZE整数内边距大小单位为像素-h, --help-打印命令帮助信息参数寻址规则两个索引参数都采用零基计数这一点与 komorebi 的其余 CLI 命令如workspace-padding、focus-workspace保持一致。例如主显示器索引 0上的第一个工作区写作MONITOR 0 WORKSPACE 0第二块显示器索引 1上的第三个工作区写作1 2。从源码结构看该命令最终通过SocketMessage::ContainerPadding(monitor_idx, workspace_idx, size)消息传递而索引值没有做减法偏移处理因此传入的即最终定位到的索引见 komorebi/src/process_command.rs。容器内边距的语义与工作区内边距的区分理解container-padding的前提是区分 komorebi 中两类易混淆的内边距Container padding容器内边距平铺容器container边缘到工作区边界之间的空隙。当工作区中有多个平铺窗口时容器内边距决定了各平铺区域之间的间距。本命令设置的就是这一项。Workspace padding工作区内边距整个工作区边缘与屏幕边界之间的空隙由workspace-padding命令见 docs/cli/workspace-padding.md负责。在布局计算时两者会同时参与工作区内边距先收缩工作区可用区域容器内边距再在该区域内为每个平铺容器留出间隙。这一组合关系可以在 komorebi/src/workspace.rs 的update方法中看到该方法同时读取self.container_padding与self.workspace_padding并分别回退到全局默认值。默认值与回退链全局默认容器内边距为10 像素定义于 komorebi/src/lib.rs 的DEFAULT_CONTAINER_PADDING静态变量。工作区级别的container_padding字段是Optioni32见 komorebi/src/workspace.rs新建工作区时初始化为全局默认值见 komorebi/src/workspace.rs。在每次布局刷新时工作区会优先使用自身的内边距值若为None则回退到全局值最后unwrap_or_default()见 komorebi/src/workspace.rs。因此执行本命令等价于覆盖某个工作区的局部内边距值不执行本命令时工作区自动继承全局默认 10px。实际使用示例为主显示器索引 0的第一个工作区设置 20 像素容器内边距komorebic.exe container-padding 0 0 20为第二块显示器索引 1的第二个工作区设置 0 像素无间隙常用于让窗口完全贴合的紧凑布局komorebic.exe container-padding 1 1 0SIZE可以传任意非负整数。结合 docs/whkdrc.sample 的按键绑定习惯你也可以把该命令绑定到快捷键上用于在演示、截图或切换布局风格时快速调整间距。需要注意的是本命令设置的是绝对值而非增量若需要在当前值基础上按固定增量调整应使用adjust-container-padding命令见 docs/cli/adjust-container-padding.md。底层实现从 CLI 到布局生效的完整链路1. komorebic 侧的命令解析在 komorebic/src/main.rs 中SubCommand::ContainerPadding(args)被解析后通过send_message发送SocketMessage::ContainerPadding(monitor_idx, workspace_idx, size)到 komorebi 守护进程。komorebi-client库负责封装这条管道通信见 komorebi-client/src/lib.rs。2. komorebi 侧的消息分发守护进程在 komorebi/src/process_command.rs 收到该消息后调用set_container_padding(monitor_idx, workspace_idx, size)执行写入。3. 状态写入与布局重排核心实现在 komorebi/src/window_manager.rspub fn set_container_padding( mut self, monitor_idx: usize, workspace_idx: usize, size: i32, ) - eyre::Result() { tracing::info!(setting container padding); let monitor self .monitors_mut() .get_mut(monitor_idx) .ok_or_eyre(there is no monitor)?; let workspace monitor .workspaces_mut() .get_mut(workspace_idx) .ok_or_eyre(there is no monitor)?; workspace.container_padding Option::from(size); self.update_focused_workspace(false, false) }从这段代码可以确认三点实现事实索引越界不存在的显示器或工作区会通过eyre返回there is no monitor错误命令行界面会向用户报告错误而非静默失败写入采用Option::from(size)即使传 0 也会保留显式值从而正确覆盖默认值写入后立即调用update_focused_workspace触发当前工作区的立即重排无需手动刷新。4. 布局计算中的消费点新设置的内边距会在下一次布局计算时生效layout.calculate(..., workspace.container_padding, ...)将容器内边距直接传入布局算法见 komorebi/src/window_manager.rs。komorebi-layouts仓库中的平铺算法见 komorebi-layouts/src/arrangement.rs据此在容器矩形间插入像素间隙。5. 状态持久化与恢复工作区的container_padding会随工作区状态一并写入状态文件并在下次启动时恢复见 komorebi/src/state.rs。快速重启场景下komorebi/src/window_manager.rs 还会在恢复状态后保留用户新设置的 padding 值确保热重载后间距设置不丢失。相关命令与配置入口围绕容器内边距komorebi 提供了一组互补的命令便于在不同粒度和场景下使用命令作用文档container-padding设置指定显示器、指定工作区的容器内边距docs/cli/container-padding.mdfocused-workspace-container-padding为当前聚焦工作区设置容器内边距docs/cli/focused-workspace-container-padding.mdnamed-workspace-container-padding按工作区名称设置容器内边距docs/cli/named-workspace-container-padding.mdadjust-container-padding在当前值基础上增减容器内边距docs/cli/adjust-container-padding.mdworkspace-padding设置工作区内边距区别于容器内边距docs/cli/workspace-padding.md其中focused-workspace-container-padding与adjust-container-padding在守护进程侧分别经由set_container_padding(focused_monitor_idx, focused_workspace_idx, ...)与adjust_container_padding基于Sizing::adjust_by做增量运算见 komorebi/src/window_manager.rs实现最终都作用于工作区的container_padding字段。静态配置方式除了运行时 CLI容器内边距也支持写入静态配置工作区配置对象支持container_padding字段见 komorebi/src/static_config.rs 及 komorebi/src/workspace.rs 的配置回填逻辑全局配置支持default_container_padding字段见 komorebi/src/static_config.rs 与 komorebi/src/static_config.rs可统一修改全局默认值默认为 10。可参考 docs/komorebi.example.json 中的工作区与全局配置示例来组织配置文件修改后执行komorebic.exe reload-configuration见 docs/cli/reload-configuration.md即可生效。完整的配置结构说明见 docs/cli/complete-configuration.md。小结komorebic.exe container-padding MONITOR WORKSPACE SIZE为指定工作区设置容器内边距三个参数分别为零基显示器索引、零基工作区索引、像素大小。容器内边距决定平铺容器之间的间距与决定窗口与屏幕边界间距的工作区内边距相互独立、叠加生效。命令写操作立即触发工作区重排值会持久化并在快速重启后保留。全局默认值为 10px可通过静态配置的default_container_padding修改也可用focused-workspace-container-padding、named-workspace-container-padding、adjust-container-padding等命令从不同粒度操作同一字段。赞分享桌面应用【免费下载链接】komorebiA tiling window manager for Windows 项目地址https://gitcode.com/gh_mirrors/ko/komorebi点击查看免费下载相关推荐komorebi 容器内边距动态调整指南adjust-container-padding 命令深度解析komorebi 容器内边距动态调整指南adjust container padding 命令深度解析 导读 adjust container padding桌面应用GRETNA三步骤解锁大脑网络奥秘的MATLAB分析神器GRETNA三步骤解锁大脑网络奥秘的MATLAB分析神器 想了解大脑如何工作吗想知道不同脑区之间如何协作完成复杂任务吗今天我要介绍一个让脑网络分析变得简单桌面应用komorebi 命名工作区外边距设置named-workspace-padding 命令完全指南komorebi 命名工作区外边距设置named workspace padding 命令完全指南 named workspace padding 是 kom桌面应用创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表