简介

Raycast 是一款专为 macOS 开发的系统辅助工具,让你能够在不用鼠标的情况下,完成绝大多数常见操作。如果你之前习惯用 Spotlight 来呼出以你应用,或者是查找文件,那么 Raycast 一定会让你爱不释手!

契机

我自己用 Raycast 已经有两年多了,个人感觉用起来非常顺手,尤其是 Raycast 有强大的扩展生态,很多效率工具都乐于为 Raycast 贡献自己的扩展:

Raycast Extension Store

我自己使用率最高的扩展如下:

  • Docker Hub
  • UUID Generator
  • Composer Packagist
  • Password Generator
  • Go Package Search

这些扩展都是比较优秀的第三方开发者提供的扩展,但部分扩展中的用户体验仍然后可以优化的地方,例如 Docker Hub 这个扩展,当我想搜索 Docker image 时,进入扩展后我什么都没有输入,他就自动的去请求默认的列表页了。对于我来说,我用这个扩展就是目的性很强的要去搜索我自己想要搜索的插件,而不是每次打开都要等一段时间,加载默认列表后再输入我想要搜索的 Docker image 名称。

Composer Packagist 这个扩展也是同样的问题,打开扩展会自动请求默认的列表页。

Password Generator 是我使用最多的扩展,最让我感到不爽的就是每次生成密码都要取消勾选 Use special characters? 选项,因为很多服务的密码不支持特殊字符。再者就是每次生成密码后都需要手动关掉 Raycast 的弹窗,这与 Raycast 的理念背道而驰。

Fork Extension

Fork Extension

我在某天闲着无聊的时候,大致浏览了一下 Raycast 的开发者文档,发现插件的开发很简单,会点 TypeScript 就行了,于是按照官方文档将扩展 Fork 到了本地。通过阅读这些扩展的源码以及官方的开发者文档,很快我完成了对这些扩展的定制,效果完全符合我的预期。

最终效果

Docker Hub

Password Generator

Composer Packagist

Password Generator

Password Generator

Password Generator

除了优化默认选项,还增加了偏好设置,增加了 Pop to root search behavior 选项,让用户可以自定义生成密码后的行为:

Password Generator Perferences

总结

修改后的代码我放到了 Github 上的 raycast-extensions 仓库里。

需要的可以自行 Clone,并安装依赖,然后在扩展目录下运行 npm run build 即可,最后在 Raycast 中安装本地的扩展。

I hope this is helpful, Happy hacking…