基于alfred的workflow开发(一)

基于alfred的workflow开发(一),第1张

大家好,新开这个系列,是为了记录下自己在alfred下如何开发workflow的。

如果有看官对alfred不太了解的,可以先做个 了解 。

接下来,我们尽可能的把每个步骤都进行细化,尽力做到从零开始学。

想象一个场景,我们电脑上都安装了微信这个软件,想要聊天的时候,我们一般会怎么做呢?一般无非就这样做,先移动光标到Dock栏,然后点击微信图标。我们每天这个动作会做很多次,那么有没有一个快捷的方式,快速的打开微信呢。对了!没错就是给微信设置一个热键,我们只要组合输入就可以快速的打开微信!当然了,不止是微信,任何电脑上安装的软件都可以打开。只需要按照下面的方法来设置。

首先,打开alfred软件,选中“workflow” tab,点击左下角的+号,在d出的页面中选择Templates->FileAndApps->Launch file group from hotkey,如下图

点击之后,会d一个页面,让我们输入一些信息,按照下图输入信息。

继续点击Creat,就会进入到workflow的工作面板

之后,右键点击Launch App / Files,在d出的页面里面,拖入我们想用这个快捷键启动的软件,我这里拖入了微信。

Tips:你也可以拖入多个软件,那么当按下这个快捷键的时候,就会启动多个软件。

随着时间的推移,我们可能会攒下很多的工作流文件,那么如何管理这些工作流呢?接下来就简单介绍下。

点击搜索框右侧的设置按钮,会d出一个列表,有3个功能区,分别是分类列表、排序规则、显示选项

下面还有一个Edit Categories,点开之后,就可以对分类列表进行管理,如删除已有分类、添加新的分类。上图中,Sandbox就是我新增的分类,你也可以试着自己添加一些分类。

创建workflow时,设置默认信息

如果想要编写自己的workflow,因为身为个人开发者,有些信息都是一样的,那么我们可以设置一下创建workflow时的默认选项,那么当下次创建新的workflow时就会自己填充了。避免我们每次都输入相同的信息。

创建的方式为点击左下角的➕号,在d出的选项框里面,选择workflow defaults...会d出一个如下的选项框。里面将包名的前缀、作者、网址、readme等信息填写好。

破解版Alfred

https://pan.baidu.com/s/1vYhLaG8QhRA5M9NH2pACzA

   密码:yn2r

常用功能

1.查询ip

功能实现:alfred-ip-address-workflow.alfredworkflow文件导入alfred

2.翻译

功能实现: Translator.alfredworkflow文件导入alfred

3.启动zk

功能实现:workflows 编写shell脚本

4.驼峰命名

功能实现: CodeVar.alfredworkflow文件导入alfred

6.切换打开idea项目

功能实现: idea.alfredworkflow文件导入alfred

https://github.com/artemy/alfred-jetbrains-projects

7.书签功能

功能实现:workflows 创建key然后指定访问网址

8.kill进程

功能实现: Kill Process.alfredworkflow文件导入alfred

我认为Alfred最成功的地方,是为繁琐的命令执行 *** 作,提供了一种无比优美简洁的使用方式,而且还提供了门槛很低的扩展框架,让用户充分发挥自己的想象力。 回到问题本身,分享下我自己的经历。 我学习的方式主要通过参考别人已有的workflow。workflow具体做的事情可能千差万别,但是有很多workflow的实现逻辑是相似的,比如我之前想写一个workflow用于切换mac的全局proxy:Proxy Toggle ,就很大程度参考了另一个用于切换Wi-Fi开发的workflow:Wi-Fi toggle。 Alfred有个很好的地方,就是你都能在alfred中看到你所使用workflow的具体实现,也就是它们对你都是开源的,至少我用过的workflow都可以。大部分workflow直接在alfred的workflows选项卡下都能看到,有部分workflow可能调用一些脚本文件,你也可以进入对应workflow文件夹下打开具体的脚本文件(可以通过右键workflow ->Show in Finder 打开workflow的文件夹) 我认为理解Afred workflow的几个组成部分是入门的关键,包括Triggers、Inputs、Actions、Outputs。 Triggers不是必备的,常用来设置快捷键开启某个Workflow。 Inputs定义了你在Alfred输入框中输入对应的keyword相应的显示内容。 以我常用的 @icyleaf 的有道翻译workflow为例,输入“yd workflow”下面所显示的结果都是Inputs中定义的。Inputs中以一个约定的xml格式输出文本就能被Alfred正确显示,上图的显示对应的xml代码为: <?xml version="1.0"?><items><item uid="1.1392438279" arg="工作流 ['wə:k,fləu]" valid="yes" autocomplete=""><title>工作流 ['wə:k,fləu]</title><subtitle>翻译结果</subtitle><icon>icon.png</icon></item><item uid="1.1392438279" arg="n. 工作流,工作流程" valid="yes" autocomplete=""><title>n. 工作流,工作流程</title><subtitle>简明释义</subtitle><icon>icon.png</icon></item><item uid="2.1392438279" arg="工作流, 工作流技术, 工作流程" valid="yes" autocomplete=""><title>工作流, 工作流技术, 工作流程</title><subtitle>网络释义:Workflow</subtitle><icon>icon.png</icon></item><item uid="3.1392438279" arg="工作流管理, 流程管理, 工作流程管理" valid="yes" autocomplete=""><title>工作流管理, 流程管理, 工作流程管理</title><subtitle>网络释义:workflow management</subtitle><icon>icon.png</icon></item><item uid="4.1392438279" arg="工作流程动作, 工作流程 *** 作, 工作流 *** 作" valid="yes" autocomplete=""><title>工作流程动作, 工作流程 *** 作, 工作流 *** 作</title><subtitle>网络释义:workflow action</subtitle><icon>icon.png</icon></item></items> 因为中文字符有转码,所以看起来有点像乱码:( ,这里跟微信公众帐号的工作方式很想吧。 Actions对应选中项后执行的 *** 作,比如在我的Proxy Toggle中,用户执行全局代理切换的工作脚本就写在actions中。 Outputs一般用于显示 *** 作的结果,提示 *** 作成功与否,以Post Notification较为常见,通过Mac的notification center提示。 以有道翻译为例,workflow中各部分示意图如下: 至于调试,貌似也用不到什么技巧,我都是测过脚本语法没问题后直接在本机上执行。 希望以上能对想入门的同学有帮助,这里有我自己写或修改过的几个workflow 尝试给自己写AlfredWork,都是比较简单的。我觉得workflow实现复杂与否不重要,关键在于使用频繁,是否能提高效率。 关键还是多实践,了解workflow工作方式之后,写workflow也就跟开发其他脚本一样了。 转载仅供参考,版权属于原作者。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11309607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存