12月锁事

2016-12-28 10:11:45来源:作者:Sel-fish's box人点击

第七城市

用的Todolist 奇妙清单里面有一个叫 我慢的清单,里面记录了一些平时比较人肉没有自动化的场景。这个月完成了这个清单里面的几项任务:一键保存当前 Chrome Tab打开的 url到 Shadowsocks的 PAC中、运行脚本调整屏幕布局等。

ShadowsocksHostSaver

目前在 Mac上经常使用 Shadowsocks来, Shadowsocks通过 PAC(Proxy auto-config)来判断哪些 url需要使用代理。日常使用中偶尔会遇到这样的场景,有些域名在 PAC中没有,需要手动添加。虽然这样的场景不多,但是老是同样的人肉方法,会让人觉得有些无趣。想过使用 Chrome Extension,但是 Chrome Extension严格运行在 Sandbox中,无法直接访问和更改系统中的文件,需要再启动一个 Daemon进程来操作 PAC文件,但是如果这样,解决方案就显得过于复杂了。

回头想下,逻辑就分为两步:

获取 Chrome中当前的 url,并获取对应的 hostname 将 hostname添加到 PAC

最终使用 Applescript实现第一步,使用 BSD sed实现第二步,整个过程用 Python脚本串起来。

hmscreens

在公司使用机械键盘时,内置屏幕和外接屏幕的布局是左右;不使用机械键盘的时候,布局是上下;不想重复地这样调整,想尝试看有没有办法能够自动化。最终还是从 StackExchange上找到了 答案,这个问题中提到的 hamsoftengineering开发的 hmscreens和想解决的问题简单是一模一样。

不太一样的是, hmscreens中其它屏幕和主屏幕的关系只能是left、right、top、bottom,而我需要的是需要准确的 Global Position,所以对 hmscreens稍作了修改,最终完成了可以通过 -othersGlobalStartingPosition参数来配置其它屏幕位置的 工具。

现在想把外接屏幕放到内置屏幕的右上角只需运行脚本:

hmscreens -setMainID 69732928 -othersGlobalStartingPosition 1280,300 sleepwatcher

Mac上有个 Application,需要访问 KeyChain里面一些内容,每次从休眠状态恢复的时候, SecurityAgent就会弹出比较恼人的 prompt,不堪其扰。其实,只要进行休眠状态的时候,关掉这个 Application即可,所以需要找到一个方法,在 Mac进行 Sleep的时候触发一个脚本。

准确地提出了问题,其实就解决了问题的一半儿了。一如既往,从 Stackoverflow上找到了 答案, sleepwatcher能够在系统 sleep/wakeup的时候触发执行一个脚本(脚本路径默认是 ~/.sleep和 ~/.wakeup),和我的需求一模一样。于是,在 ~/.sleep中添加关闭该 Application的命令,问题解决。

最后

7月份买了 Alfred PowerPack之后,其实一直没怎么用,就写了个自动登录VPN的workflow。最近又加了一些workflow,基本都是加快捷键。除了支持快捷键执行一些脚本之外 ,Alfred还可以支持执行一些 System Command,比如说Sleep,这就很好地解决了之前提到的锁屏的问题。

做好的产品;帮助周围的人

第七城市

相关文章

    无相关信息

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台