Skip to content
dozecatPublic

About

Lightweight macOS context menu enhancer: templates, copy path, compression, and shell scripts

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Clicklet 图标

Clicklet

把最常用的几个操作,放进 Finder 的右键菜单。

最新版本 macOS 13+ Swift 5.9 许可:GPL-3.0

中文 · English

下载 · 设计文档 · 反馈

Clicklet 是一个轻量的 macOS 右键增强工具。 Finder 的右键菜单一向简单,扩展它通常得靠第三方工具,而 Clicklet 想做更轻的那种:只收下新建文件、拷贝路径、在此处打开终端、压缩解压这些常用操作,并且只显示当前选中内容用得上的那些功能。它不内置任何压缩引擎,压缩软件可在系统自带工具与 Keka 之间选择,菜单里能压缩、解压哪些格式也由所选软件决定。这些功能不够用,自己写一个 shell 脚本放进脚本目录,它就是一个新的菜单项。

✨ 功能

  • 新建文件:在空白处右键,按模板创建文件。在文件夹里建好后会就地进入重命名;在桌面上则静默创建,图标直接出现在原位,想改名按一下回车。默认提供文本、Markdown、Word、Excel、PowerPoint、Pages、Numbers、Keynote、JSON、HTML 十种模板;CSS、JavaScript、Python、Shell、YAML、CSV、RTF 七种在设置里勾选即可使用。
  • 拷贝路径:复制选中项的绝对路径,多选时每行一个;在空白处右键则复制当前文件夹的路径。
  • 拷贝文件名:只在有选中项时出现,只复制文件名,不带路径。
  • 在此处打开终端:在当前文件夹打开 Terminal;选中的是文件夹就在那个文件夹,选中的是文件则在其所在文件夹。
  • 脚本:运行脚本目录里匹配当前选区的脚本,没有匹配项时整项不显示;一个可执行的 script.sh 放进脚本目录就是一个菜单项。
  • 压缩为 ZIP:用设置里选定的压缩软件打包,产物重名时自动追加序号。
  • 压缩为 7Z:只在所选压缩软件支持 7z 时出现。
  • 解压到当前文件夹:选中压缩包时就地解开,不新建文件夹。
  • 解压到独立文件夹:解压到以压缩包命名的新文件夹,重名时同样自动追加序号。

此外,每个条目的启用开关与顺序都在设置里调整,改完立刻反映到 Finder;界面与右键菜单都支持简体中文和 English,切换后立即生效。

📸 截图

新建文件 脚本 解压
新建文件子菜单 脚本子菜单 解压菜单项

📦 下载与安装

前往 Releases 下载最新版,打开后把 Clicklet 拖进「应用程序」文件夹。需要 macOS 13 Ventura 或更高版本。首次启动会打开一个四页的引导,逐项告诉你还缺哪一项,并直接带你到对应的地方开启。之后随时可以从菜单栏图标的「帮助 → 设置引导…」再看一遍。

安装包未经 Apple 公证,macOS 会提示「无法验证开发者」。首次打开请右键点按 Clicklet → 打开,在弹窗里再点一次「打开」;或在「系统设置 → 隐私与安全性」里点「仍要打开」。也可以直接在终端执行 xattr -dr com.apple.quarantine /Applications/Clicklet.app。

权限列表:

项目 在哪里开启
访达扩展 系统设置 → 通用 → 登录项与扩展 → 文件提供程序
辅助功能 系统设置 → 隐私与安全性 → 辅助功能
Keka 文件夹访问 仅用 7z 时需要,在 Keka → 设置 → 文件访问权限里开启
通知(可选) 首次运行时的系统弹窗,用来反馈压缩、解压与脚本的结果

旧版 macOS 中,访达扩展在「隐私与安全性 → 扩展」下开启。拿不准缺哪一项时,从菜单栏图标进入「检查运行状态…」。

更新:下载新版本覆盖安装即可,当前版本不含自动更新。唯一的例外是从 RightKit 1.0.x 升到 1.1.0——那一版随改名换了 bundle id(com.dozecat.RightKit → com.dozecat.Clicklet),macOS 会把 Clicklet 当成另一个应用:新旧两版并存,偏好设置不会带过来,访达扩展要重新勾选一次,顺手把旧的 RightKit 取消掉。卸载:关掉访达扩展,把 Clicklet 拖进废纸篓;脚本与模板在 ~/Library/Application Support/Clicklet/,日志在 App Group 容器里:open ~/Library/Group\ Containers/6T9RSL7KL6.group.com.dozecat.Clicklet/Logs,需要时一并删除。

🧩 脚本扩展

右键菜单里的「脚本」子菜单会列出匹配当前选区的脚本,点击即运行;没有匹配项时,整项不会出现。开箱自带两个:用 VS Code 打开 与 运行 Python 脚本。

想加自己的,把脚本包放进脚本目录即可(设置 → 脚本 → + 可以直接打开这个目录)——目录是唯一的事实来源,不需要在应用内导入。

~/Library/Application Support/Clicklet/Scripts/
└── 用 VS Code 打开/
    ├── script.sh      # 入口,需 chmod +x
    ├── config.json    # 元数据,可选
    └── icon.png       # 图标,可选

一个最小的 script.sh:

#!/bin/bash
# 选中的路径以参数传入,工作目录是右键所在的文件夹
for f in "$@"; do
    echo "$f" >> "$CLICKLET_DIR/selected.txt"
done

config.json 决定它什么时候出现,常用的几个字段:

字段 取值 作用
name 字符串 菜单里显示的名字
context selection / files / folders / background / all 作用于选中项、文件、文件夹、空白处,还是全部
extensions 如 ["py"] 只对指定扩展名的选中项出现
confirm true 执行前先弹确认
icon 文件名 包内的图标文件
order 数字 在子菜单中的排序

执行时:选中项以 $@ 传入,环境里有 CLICKLET_DIR(右键所在目录)与 CLICKLET_FILES(换行分隔的选中路径);单个脚本 300 秒超时;每次执行的日志在 ~/Library/Logs/Clicklet/Scripts/<脚本名>/。

PATH:脚本由 XPC 服务启动,继承的是 launchd 的最小环境,只有 /usr/bin:/bin:/usr/sbin:/sbin。要用 Homebrew 装的 python3、node,请在脚本开头自己补上 export PATH="/opt/homebrew/bin:$PATH"。

其余字段与内置脚本的播种规则见设计文档。

反馈

遇到问题或有想法,欢迎到 Issues 提出。附上 macOS 版本、Clicklet 版本和自检面板的结论,会快很多。

想自己编译,或调试访达扩展为什么不刷新,见构建指南。

📄 许可

GNU General Public License v3.0。Clicklet 是自由软件,任何再分发的衍生版本都必须同样以 GPL-3.0 开源。

About

Lightweight macOS context menu enhancer: templates, copy path, compression, and shell scripts

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages