Mac效率神器Alfred Workflows

10,819 阅读3分钟

Alfred 是 Mac 上一款著名的效率应用,强大的功能和众多的扩展能让你在实际操作中大幅提升工作效率, 这里简单介绍下 Alfred 的工作流

背景&效果展示

作为一名程序员经常会遇到时间戳转时间、时间转时间戳的情况,以前都会打开网页在线工具进行转换。 每次打开浏览器找到网址,然后复制内容进行转换都需要 5秒以上的时间。 有什么快捷的方式能帮助我们快速的进行这个操作吗,这里我想到的 Alfred 的工作流。 Alfred工作流可以直接脚本开发,下面是工作流开发完的效果。 屏幕录制2023-07-04 15.15.40.gif

1)首先唤起Alfred输入框,这里看自己设置的快捷键了 2)输入这里工作流对应的keyword (tm或tmt)然后空格输入需要转换的内容 3)回车键将转换之后的内容复制到剪切板

这个简单的工作流可以实现linux类型的时间戳转换成 yyyy-MM-dd HH:mm:ss 类型的时间字符串, 也可以将 yyyy-MM-dd HH:mm:ss 类型的时间字符串转换成时间。 转换完的内容会自动放到剪切板里面,可以直接使用 command + v 进行粘贴,也可以使用Alfred的历史剪切板进行复制。

工作流开发

1、创建空的工作流

为了简单快捷这里使用的是python开发的这个功能。 开发这个工作流首先需要再 Alfred 面板上创建一个空的工作流 Alfred -> Preferences -> Workflows -> 左下角的 + -> Blank Workflows 如下图: image.png

2、添加流程节点

这里使用的是 Script Filter类型的节点,可以支持keyword触发。 节点配置如下,keyword 为触发的命令关键字。下面是运行命令的配置 Script输入框中写需要运行的命令, 这里使用 {query} 方式将转换的内容传递给python脚本。 image.png

复制到剪切板的节点如下,创建好节点用线连接就行。 image.png

3、python脚本开发

脚本的位置放到当前工作流的根目录就行,这样不行写绝对路径,也方便工作流的导出。

  1. 打开工作流根目录:右键选中工作流,点 open in find 或者 open in terminal image.png

  2. Alfred官方提供了一个python类库方便开发工作流。在工作流根目录执行命令

pip install --target=. Alfred-Workflow
  1. 创建脚本 timestamp_2_time.py,然后开发对应的代码即可 。代码里面有注释大家可以看下
# -*- coding: utf-8 -*-
import sys
from datetime import datetime
from workflow import Workflow, ICON_CLOCK # 导包

def main(wf):
    query = wf.args[0] # 获取传入的参数,这里能获取到需要转换的呢绒
    if not query:
        return
    # 时间戳转时间字符串的方法
    d = datetime.fromtimestamp(int(query) / 1000)
    str1 = d.strftime("%Y-%m-%d %H:%M:%S")
    '''
    调用框架的方法添加运行的结果
    可选参数是标题、副标题,arg是下一个节点的入参,icon是这个item展示的图标
    如果有多个结果可以放多个,然后通过上下键选择
    '''
    wf.add_item(title=query, subtitle=str1, arg=str1, valid=True, icon=ICON_CLOCK)
    # 展示结果内容list
    wf.send_feedback()


if __name__ == '__main__':
    '''构造 Workflow 对象,运行完退出
    '''
    wf = Workflow()
    sys.exit(wf.run(main))

通过这几行简单的代码实现了时间戳转换成时间的小功能, 相比于以前的使用网页的形式,这个工作流可以将时间缩短到1秒,每次为你省下 4 秒钟的时间 😂😂😂

debug

开发的时候可能会遇到bug,可以通过下图方式打开运行日志查问题。 image.png

开发好的工作流要使用直接导入就行

tmwf.tar 下载之后 tar -xvf tmwf.tar 解压导入就行。 这里需要注意下,我本地的python路径是 /usr/local/bin/python 大家需要换成自己的python路径。