ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Window Sweaters 命令行进阶:一份 sweatersrc 脚本搞定批量设置与应用黑白名单

Window Sweaters 命令行进阶:一份 sweatersrc 脚本搞定批量设置与应用黑白名单

【免费下载链接】window-sweaters

A macOS menu-bar app that dresses your windows in knitted borders.

项目地址:https://gitcode.com/gh_mirrors/wi/window-sweaters
点击查看免费下载

Window Sweaters 是一款 macOS 菜单栏应用,能给每个窗口织上针织毛衣边框,让桌面更有温度。除了点击菜单栏图标,它还隐藏了一个强力的sweatersrc启动脚本:一份脚本就能批量设置针织风格、纱线颜色、边框宽度与应用黑白名单,不必再逐项点选菜单。

sweatersrc 启动脚本的工作机制

每次启动时,Window Sweaters 会依次在两个位置寻找启动脚本:

  1. ~/.config/window-sweaters/sweatersrc(优先)
  2. ~/.sweatersrc

找到后即用sh执行,相关实现在 src/misc/helpers.h 中,有三个值得注意的细节:

  • 文件没有可执行权限时会自动补上,无需手动chmod +x;
  • 脚本运行时长被限制为 60 秒,避免拖慢启动;
  • 如果你是用命令行参数启动应用的,脚本会被跳过,调用点在 src/main.c。

一句话概括:sweatersrc 就是你希望每天打开 Window Sweaters 时自动生效的那份"开机设置"。

批量下发参数:命令行与菜单是同一套参数

所有菜单功能在 src/parse.c 中都被解析为key=value参数,比如:

"/Applications/Window Sweaters.app/Contents/MacOS/WindowSweaters" \ width=14 \ active_color=0xffd58561 \ chart=zigzag \ whitelist=Firefox,Slack

三个关键行为:

  • 已有实例在运行时:新进程会把参数通过内部 Mach 消息转发给运行中的实例然后退出,所以"重复启动"不会出错,运行中的实例会直接重新绘制;
  • 没有任何实例时:会带着这些设置直接启动(可执行文件名为WindowSweaters,见 AppInfo.plist);
  • 应用已在运行却没传有效参数:会提示A Window Sweaters instance is already running and no valid arguments were provided。

应用黑白名单:最常用的两个参数

参数作用示例
whitelist=只给列出的应用织毛衣whitelist=Firefox,Slack
blacklist=只排除列出的应用blacklist=Preview
  • 多个应用用英文逗号分隔,按应用进程名匹配;
  • 两个参数可同时使用,先判白名单再判黑名单;
  • 设置会立即重建所有边框,保存后马上生效。

提示:菜单栏Apps里的勾选和命令行黑白名单是两套独立的过滤,一个窗口必须同时通过两层检查才会被套上毛衣,说明见 CONTRIBUTING.md。

一份完整的 sweatersrc 示例

把下面内容存到~/.config/window-sweaters/sweatersrc,下次打开 Window Sweaters 即自动完成"只给 Firefox 和 Slack 织毛衣、12 点宽边框、非聚焦窗口稍作压暗":

#!/bin/sh SWEATER="/Applications/Window Sweaters.app/Contents/MacOS/WindowSweaters" # 参数会转发给运行中的实例,无需先退出应用 "$SWEATER" \ whitelist=Firefox,Slack \ chart=zigzag \ width=12 \ dim=0.4

修改后重启 Window Sweaters 即可应用;也可以不写脚本,在终端里临时执行上面这段参数完成一次性调整。

常用参数速查

内置图案包括by-app、zigzag、picnic、twinkle等,完整毛线样式集可翻阅 docs/COLLECTION.md;你还可以把自制的 PNG 图表放进~/Library/Application Support/Knit Borders/charts/,再用charts=reload加载。

参数示例说明
chart=chart=by-app图案:内置图表或 charts/ 里的图表名
yarn=yarn=rib针法:stockinette / rib / garter
basket=basket=forest毛线配色篮:dopamine / neon / punch / wool / sorbet / forest / mono,见 src/knit.c
width=width=14边框宽度(点)
active_color=/inactive_color=active_color=0xffd58561聚焦 / 非聚焦窗口的纱线颜色(16 进制)
dim=dim=0.4非聚焦窗口的压暗程度(0–1)
order=order=aa = 边框盖在窗口上方,b = 压在下方
anchor=anchor=centre图案起针位置:corner / centre
gauge=/ground=/ambient=/relief=/sheen=gauge=8针织密度与光影细节
knit=on/knit=offknit=off针织纹理总开关
hidpi=on/hidpi=off高清渲染开关
apps=reload重新加载apps.conf自定义配色
charts=reload重新加载自定义图表
apply-to=apply-to=3只应用到某个窗口

颜色的最终优先级:apps.conf里的规则永远优先,例如Claude = #D58561 atelier-claude;规则名按应用名前缀匹配、不区分大小写、最长匹配获胜(见 src/misc/apps.h)。

动手前的 3 个注意事项

  1. sweatersrc 只在启动时执行一次,且当天未传命令行参数时才会运行,不会在运行中途重放;
  2. 参数是"推送"模型:编辑脚本后重启应用,或在终端临时下发参数即可,两者都不需要杀掉进程重装;
  3. 脚本有 60 秒时限,保持脚本轻量,重活留给其它工具。

至此,Window Sweaters 的命令行进阶就这些:一份sweatersrc搞定批量设置,一行whitelist=/blacklist=搞定应用黑白名单,窗口毛衣从此完全由你掌控。 🧶

【免费下载链接】window-sweaters

A macOS menu-bar app that dresses your windows in knitted borders.

项目地址:https://gitcode.com/gh_mirrors/wi/window-sweaters
点击查看免费下载

相关推荐

上一篇:如何利用RenderMan for Blender的Stylized功能创建惊艳的卡通风格渲染
下一篇:Chemcrow:革命性化学AI工具包 - 如何用LLM+化学工具解决复杂化学问题

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进