komorebi 窗口边框宽度设置:komorebic border-width 命令与 border_width 配置详解
发布时间:2026/9/21 20:30:17 锦皓数字建站

komorebi 窗口边框宽度设置komorebic border-width 命令与 border_width 配置详解【免费下载链接】komorebiA tiling window manager for Windows 项目地址: https://gitcode.com/gh_mirrors/ko/komorebi导读border-width是 komorebi 平铺窗口管理器Windows中用于设置窗口边框宽度的核心 CLI 命令对应的可执行文件为komorebic.exe。在启用 active window border活动窗口边框后该命令直接决定每个窗口四周绘制边框的像素厚度是获得视频和截图里那种粗而醒目的彩色活动窗口边框的关键一步。读完本文你将掌握komorebic.exe border-width的完整用法、与border/border-colour/border-offset等兄弟命令的配合方式、静态配置komorebi.json中等价字段的写法以及该参数在 komorebi 源码中的存储与生效链路。命令概览语法、参数与选项border-width是komorebic.exe的一个子命令完整帮助信息定义于 docs/cli/border-width.md核心用法如下Set the border width Usage: komorebic.exe border-width WIDTH Arguments: WIDTH Desired width of the window border Options: -h, --help Print help要点拆解WIDTH必填期望的窗口边框宽度单位是像素px。在命令行定义处该参数被声明为i32类型见下文源码分析默认值为8。-h, --help可选打印该子命令的帮助信息不会执行任何设置操作。从 CLI 参数解析源码komorebic/src/main.rs#L1497-L1500可以看到该子命令的完整声明/// Set the border width #[clap(arg_required_else_help true)] #[clap(alias active-window-border-width)] BorderWidth(BorderWidth),其中arg_required_else_help true意味着如果直接运行komorebic.exe border-width而不带WIDTH参数命令会拒绝执行并直接打印帮助信息同时该命令还保留了别名active-window-border-width兼容旧版命令行习惯。实战用法命令行与快捷键绑定直接调用在已启动 komorebi 的会话中在任意终端PowerShell、cmd、whkd 等执行# 将窗口边框宽度设置为 10 像素 komorebic.exe border-width 10 # 查看帮助 komorebic.exe border-width --help命令会通过 komorebi 的 socket 通道将宽度值发送给守护进程守护进程更新全局边框宽度并立即刷新所有已绘制边框详见下文源码实现原理。与 border 命令配合注意border-width只负责设置边框的厚度并不会单独开启边框显示。边框是否可见由border命令控制docs/cli/border.md# 先启用边框显示 komorebic.exe border enable # 再设置边框宽度为 10 像素 komorebic.exe border-width 10如果边框处于禁用状态komorebic.exe border disable修改border-width不会产生可见效果——宽度值会被保存但直到边框重新启用后才会被真正绘制出来。绑定到快捷键whkdrc配合项目自带的快捷键守护进程 whkd 配置文件参考 docs/cli/whkdrc.md 与仓库根目录的 whkdrc.sample可以在whkdrc中这样绑定# 将边框宽度调整为 6 像素 alt b: komorebic.exe border-width 6通过多个不同宽度值的绑定可以在不重启 komorebi 的情况下随时切换视觉密度例如日常 6px、录屏演示时 12px。边框家族的完整设置体系border-width是 komorebi 边框border体系中的一个维度。这一组 CLI 命令与对应的静态配置字段共同构成完整的边框外观控制命令功能对应静态配置字段border启用 / 禁用边框显示borderactive_window_borderborder-width设置边框宽度像素border_widthactive_window_border_widthborder-offset设置边框偏移量border_offsetactive_window_border_offsetborder-colour设置各容器类型单窗口 / 栈 / 单格模式等的边框颜色border_coloursborder-style设置边框绘制风格border_style默认Systemborder-implementation设置边框实现方式border_implementation默认Komorebi相关命令的详细说明见 docs/cli/border-offset.md、docs/cli/border-colour.md、docs/cli/border-style.md、docs/cli/border-implementation.md。组合使用时典型示例komorebic.exe border enable komorebic.exe border-width 12 komorebic.exe border-offset 4 komorebic.exe border-colour single 66 165 245静态配置komorebi.json 中的 border_width除了运行时通过 CLI 命令设置边框宽度还可以写入 komorebi 的静态配置文件默认komorebi.json随配置在启动时自动应用。对应字段的定义位于 komorebi/src/static_config.rs#L561-L565/// Width of window borders #[serde(skip_serializing_if Option::is_none)] #[serde(alias active_window_border_width)] #[cfg_attr(feature schemars, schemars(extend(default border_manager::BORDER_WIDTH)))] pub border_width: Optioni32,据此配置文件中可写为{ border: true, border_width: 10 }两点注意字段同时接受旧式别名active_window_border_width如active_window_border_width: 10两个名字指向同一个配置项该字段为Optioni32省略时使用源码中的全局默认值8见下文schema 的默认值也直接引用该全局默认可查看 schema.json 中border_width的定义。完整的静态配置字段清单与说明可参考 docs/cli/complete-configuration.md 和 docs/cli/static-config-schema.md。另外komorebi 在把当前运行状态导出/序列化时也会写入该字段komorebi/src/static_config.rs#L911并在配置加载时通过BORDER_WIDTH.store(...)重新应用komorebi/src/static_config.rs#L1072-L1073。源码实现原理宽度值如何生效1. 消息定义BorderWidth(i32)CLI 参数与守护进程之间通过 socket 消息传递消息变体定义于 komorebi/src/core/mod.rs#L202BorderWidth(i32),从这里可以确认宽度在通信层被建模为有符号 32 位整数i32。虽然实际场景中宽度应为非负像素值但类型上并不阻止传入负数使用时应注意传入合理的正值。2. 消息处理更新全局原子变量并触发刷新守护进程在 komorebi/src/process_command.rs#L2143-L2146 中处理该消息SocketMessage::BorderWidth(width) { border_manager::BORDER_WIDTH.store(width, Ordering::SeqCst); force_update_borders true; }逻辑非常清晰把新宽度写入全局原子变量BORDER_WIDTH同时将force_update_borders置为true通知边框渲染流程立即重绘所有已存在的边框。3. 全局默认值与存储位置边框宽度的全局状态定义于 komorebi/src/border_manager/mod.rs#L38pub static BORDER_WIDTH: AtomicI32 AtomicI32::new(8);也就是说默认边框宽度为 8 像素。使用AtomicI32承载是因为边框绘制工作运行在独立线程中需要原子读写在多线程之间共享该值。4. 边框对象创建时读取宽度每个窗口边框由Border结构体表示komorebi/src/border_manager/border.rs。无论是在创建边框对象border.rs#L248还是在其渲染线程初始化时border.rs#L297都会通过BORDER_WIDTH.load(Ordering::Relaxed)读取当前宽度作为绘制参数后续每帧渲染也会重新加载该值border.rs#L593从而保证border-width修改能够即时反映到屏幕上而无需重建窗口。完整调用链小结komorebic.exe border-width 10 → socket 发送 SocketMessage::BorderWidth(10) → process_command.rs 匹配消息 → BORDER_WIDTH.store(10, SeqCst) force_update_borders true → Border 渲染线程 load 新宽度并重绘边框设计背景与注意事项为什么要自定义边框宽度Windows 现代系统Win32 API已不再允许应用为窗口绘制用户可见宽度的自定义边框komorebi 的 active window border 本质上是一种粗暴但有效的补偿方案通过自绘窗口komoborder-*类名的独立渲染窗口来模拟厚重边框。这一点在 docs/example-configurations.md#L77-L88 中有直白的说明并提醒该特性是已知有些 bug 且多数时候体验一般的 hack——这是 Windows 平台限制带来的固有问题而非 komorebi 自身可以完全绕开的。默认值未做任何设置时宽度为8显式执行komorebic.exe border-width WIDTH或写入border_width配置即可覆盖。立即生效命令执行后边框会即时刷新无需重启 komorebi 或重新加载配置。类型为i32CLI 与配置均按有符号 32 位整数接受该值实际使用请传入合理的非负像素值。与透明度、动画的关系边框属于独立渲染层宽度修改与transparency未聚焦窗口透明度见 docs/cli/transparency.md、移动动画见 docs/cli/animation.md等机制互不冲突可以放心组合使用。总结komorebic.exe border-width WIDTH是控制 komorebi 窗口边框厚度的唯一入口运行时可通过 CLI 直接设置并即时生效静态场景可写入komorebi.json的border_width或旧别名active_window_border_width字段。其底层实现是一条非常干净的链路——socket 消息 → 全局原子变量BORDER_WIDTH默认 8→ 边框渲染线程重绘源码位置分别为 komorebi/src/core/mod.rs、komorebi/src/process_command.rs、komorebi/src/border_manager/mod.rs 与 komorebi/src/border_manager/border.rs。配合border、border-colour、border-offset等命令即可复现常见教程中粗边框、多色状态提示的活动窗口效果。【免费下载链接】komorebiA tiling window manager for Windows 项目地址: https://gitcode.com/gh_mirrors/ko/komorebi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。