Quick Face

一直以来都在寻找一种能够在聊天时快速使用表情的方式,在 windows 平台下 qq 和 wechat 都是支持自定义表情快捷键的,用起来十分舒爽,但是切换到 mac os 之后,两款软件均不支持表情快捷键,而对于重度键盘党的我来说,要挪动正在敲击键盘的手去用触控板选择表情,这无疑是浪费时间且操作起来十分麻烦的。

最初是寄希望于腾讯官方能够在 mac os 下开放这个功能,但数次反馈之后无果,当然也可以理解,毕竟这是一个十分小众的需求,开发团队不会特意抽出时间来填补特殊人群的口味,那只好在这条路上继续探寻。

QQ 意见反馈

紧接着想在输入法上下文章,因为改版之后的搜狗输入法是能够将表情作为选项内置在输入框中的,看起来应该是能够做到的,只不过只支持搜狗平台上的表情包,也就意味着你需要维护一个自己的表情包项目,时刻上传到搜狗平台,当然也少不了审核,所以这也是行不通的,就没进行太多的尝试

Sougou

再后来思路转换到找一款 mac 下的软件,这样我的需求同样可以得到满足,变换了许多关键词进行 google,好在终于找到了一款,名字叫做 Rocket, 类似名字的软件数不胜数,为了防止混淆就把软件官网贴在下面:

Rocket for mac

下载了试用版,的确非常爽,但默认只有一些 emoji 表情,想要添加自己的表情包,自然需要向作者付费然后解锁自己导入表情包的功能,也想着如果再找不到其他途径的话就来买一款这个来玩好了。

Rocket for mac

最后把目标转向了 Alfred 的 workflow,相信使用 mac 的用户都不会不知道这款神器,的确极大程度了增加了我的工作效率。最开始倒是没想着自己开发,毕竟如果有现成的 workflow,直接拿来用就好了,懒是程序员的信条好吧,但各种 workflow 托管平台都找遍了,只知道了一款看似不错的,地址同样附在下面:

alfred-emoji-workflow

代码托管在 github 上,完全开源,这个就十分友好嘛。不过下载使用了之后,发现也只支持 emoji,也曾尝试着想要改一下代码逻辑来使他支持普通的图片文件,但看了源码之后发现,内部有个文件将所有的 emoji 表情全部映射了,但图片完全做不到这一点啊。

alfred-emoji-workflow

确实是走投无路了,剩下的唯一办法就是自己开发了。

仿照 alfred-emoji-workflow 的流程了解了 workflow 的开发过程,并且也实现了能够在 alfred 中显示所有符合条件的图片条目,最后就剩将选中的图片拷贝到剪切板的步骤了。

然后这正是困扰我很久的步骤。

Alfred 默认的拷贝组件,只是将选中的图片路径拷贝到了剪切板中,在聊天框或其他文档中进行粘贴下来的也只是文件路径,什么嘛,根本不行。

不过在编写程式的过程中,发现 Alfred 支持 AppleScript 这种语言,也就是苹果系统级别的编程语言,检索了下,语法十分有趣,简直就像命令一样,看了一些示例发现没准能够搞定。

就在 google 中检索如何使用 AppleScript 将图片内容粘贴到剪切板,而不只是文件路径,也确实找到了一个网站:

AppleScript 复制图片到剪切板

文章大意是用一般思路来拷贝文件内容是行不通的,pbcopy 命令也不行,所以就只能借助 AppleScript 来告诉 Preview 执行 command + c 进行拷贝,然后再把 Preview 关闭,整个过程都由脚本来完成,听起来不错,就代码拷贝下来调试了一下:

on run argv
  tell application "Preview"
    activate
    open item 1 of argv
  end tell
  tell application "System Events"
    tell process "Preview"
      keystroke "c" using command down
    end tell
  end tell
  tell application "Preview" to quit
end run

确实成功了!但美中不足有些问题:

  • 其一是整个过程很晃眼,打开Preview,复制文件,再关闭,整个流程都是在眼底下发生的,前前后后大概有几秒钟的时间,当然相比较之前使用表情的方式确实是增速不少
  • 就是在这个过程中最好不要进行其他操作,不然可能会导致文件复制不成功
  • 就是不支持 gif,因为 Preview 打开 gif 后进行拷贝的操作结果只是拷贝其中的一帧

有了 Preview 解决的思路后,自然很好联想到直接在 Finder 中选中该文件,然后进行同样的逻辑,恩,所以就改了一版:

set thePath to POSIX file (item 1 of argv)

tell application "Finder"
  reveal thePath
  activate
end tell

tell application "System Events"
  tell process "Finder"
    keystroke "c" using command down
    keystroke "w" using command down
  end tell
end tell

好了,现在也支持 gif 文件的拷贝了,不仅仅是 jpg,png 这种静态文件了,能使用更丰富的东西啦。但遗憾的是,自测的时候发现前两个问题更加严重了,因为要在 Finder 中打开指定路径文件这个过程是一层层的,而且还可能会由于路径太长导致文件还没被选中时,就已经执行了复制操作,导致将错误的内容送进了剪切板,这对用户来说是十分讨厌的。

眼瞅着离最终想要的效果就差一丁点,当然不能放弃,就持续的在 google 里面查找解决方案,终于功夫不负有心人,找到了一种 AppleScript 的写法,使得整个拷贝流程不仅能够在后台进行,而且速度比之前又提高了不少,同样不管是什么样的文件类型都能成功复制,代码如下:

on run argv
  set image to POSIX file (item 1 of argv)
  tell app "Finder" to set the clipboard to image
end run

完工!使用体验很流畅,至少对我来说足够用了,回首自己在快速检索表情的探索道路上一路走来遇到的各种问题,有一次次的失望又有一次次的希望,遇到最大的问题就是将选中的图片弄进剪切板,若是对 AppleScript 这门语言足够熟悉,或者仔细看了官方文档,也不至于有这么多起起落落,不过最终结果是好的,很满足。

Quick Face

代码托管在了 github 上,这里是链接地址,之后如果还有其他需求能用 workflow 实现的话,也会进行尝试,应该会不断更新下去:

Quick Face

对了,最近 wechat for mac 更新了一个版本,支持根据内容识别自己收藏夹中的表情,用过体验很好,但需要使用表情的场景当然不止 wechat 一种,所以这款 Quick Face 在跨平台上占尽了优势。

Wechat
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容