关于alfred
之前也一直使用被称为mac神器到alfred。直到今天才发现我用的是低版本,功能非常基础。而高版本所支持的workflow才是真的称为神器。alfred下载猛戳这里这里。至于powerpack的一些功能,可以选择购买使用或者…(滑稽脸)
workflow
workflow就是让alfred直接执行脚本,包括shell、python、php等,直接那两个例子来解释,就知道他有多方便了。更多操作查看我的github仓库
登录校园网(使用python脚本)
在之前用旧版本的alfred登录校园网所用的方法是在feature添加web url,输入p打开p.nju.edu.cn。然后点击输入浏览器记住的密码登陆。相比打开浏览器页面已经快捷很多。但是如果使用workflow**直接快捷键‘opt+p’可以登录校园网,登录成功后有提示音和notification;‘opt+o’可以退出登录校园网,退出成功后有提示音和notification;** 步骤如下:
preference中点击workflow,按照如图选择keyword to script
输入关键字和描述,保存
右键创建script
输入执行的脚本并保存
# -*- coding:utf-8 -*-
import json
import urllib
import urllib2
def login():
url = 'http://p.nju.edu.cn/portal_io/login'
username = 'xxxx' # 可将密码等保存至文件
password = 'xxxxx'
data = {'username': username, 'password': password}
postdata = urllib.urlencode(data).encode('utf-8')
try:
request = urllib2.Request(url, postdata)
response = urllib2.urlopen(request)
res = json.loads(response.read().decode('utf-8'))
# print res["reply_code"]
except Exception as e:
print(e)
if __name__ == '__main__':
login()
快捷键打开alfred输入框,输入你的关键字,回车。就连上了校园网,很方便。
workflow让github变成最快捷的图床
写markdown的都知道,图片需要url,如果需要本地一张图片显示要先上传,获取url,这就显得麻烦。能不能有个软件,选中图片,按个快捷键,就可以上传图片拿到图片的url呢? workflow可以做到。 (本来打算学一学写个mac应用的,没想到workflow一个shell脚本就可以了)
步骤如下:
新建如下工作流。可根据自己需要更改。需要注意的是hotkey里
argument
选择selection in macOS
,快捷键可以自己定义编写shell脚本
#!/bin/bash t=$(date +%s) cp '{query}' /Users/Mark.W/Documents/AboutMyself/picBed/Screenshot${t}.png cd /Users/Mark.W/Documents/AboutMyself/ git add . > /dev/null git commit -m add_upload_picture_${t} > /dev/null git push origin master > /dev/null echo http://raw.githubusercontent.com/IMWYY/AboutMyself/master/picBed/Screenshot${t}.png
这里{query}是选中文件的路径,先将其拷贝至git本地仓库,然后再用git命令提交即可。这里有几个注意点:
- {query}要加上引号,以防遇到文件名里有空格,cp命令会将其拆分当成命令参数。
- git命令都有命令回显,而我需要到clipboard的内容只需要是图片url,为了防止干扰,命令后加上
> /dev/null
回显信息定位到“黑洞”。 - git上图片链接地址需要加上
raw
。我这里用的仓库是AboutMyself
。 - 使用git命令需要配置好git本地的一些参数,ssh key,账号密码之类
这样既可以方便写markdown,还能让你的github经常提交变得绿油油。。岂不美滋滋
部署hexo博客(使用shell脚本)
一般部署hexo博客要输入三条命令hexo clean
hexo g
hexo d
。每次都要打开终端输入三个命令真的很麻烦,进阶方法是将命令写成shell脚本,打开终端执行./xxx.sh。当然也可以利用alfred,连终端都不用自己打开。
1 2 3步骤和上个例子一样,不过第四步选择terminal command
然后输入脚本
cd 你的博客本地目录 && hexo clean && hexo g && hexo d
写完博客,快捷键打开alfred输入框,输入你定义的关键字,回车。部署完成。
同理也可以将博客创建的几条命令放在shell脚本用workflow打开。
问题
照理说命令应该选择script,但是不奏效,debug(workflow页面有个小虫子,就是debug)发现找不到hexo命令,我明明安装的是全局hexo命令。所以选择terminal command。找到原因了再来改。