TODO with Mac Menubar

BitBar 使我工作更快乐!

https://foreti.me/2019/05/17/bitbar-with-todo/


最近觉得每天的计划总是完不成,明明也不多,但是很容易被其他事情干扰。我一直不喜欢用日程表来排每天的事情,但我很喜欢给自己制定一个 TODO 列表,这个列表包含了短期内要做的事情,但不限于某一天或者某一个小时,不至于太细致,让自己经常不能按时完成,获得过多的挫败感。

我希望的展现形式是在电脑桌面上时刻可以看到的,这样的话,就不能用各种流行的 GTD 工具。像 OmniFocus、Microsoft To-Do等,都需要先打开再确认的过程。

像桌面便签也不太好,因为平时是打开了不同的应用铺满了桌面。

于是想到了菜单栏上可以做点事情。

找了一圈,Mac平台上的 TODO in menubar 的应用还不少,最合心意的是 TODO Menubar

TODO Menubar

但是它收费...

还有一个Doo,也收费,而且太花哨了,好看但不直观。

image

在 Github 上也搜到了一个postit-todo,不错但是用起来太卡,而且关闭后重新打开加载数据很慢。

image

最后,在 AppSo 的一篇推 TODO Menubar 的文章评论里看到了 BitBar

BitBar 是一个可以编写脚本,将你能想到的任何信息,放到 menubar 里显示。

我下载 BitBar,并且在它的插件市场里找了一个 TODO 的脚本。这个脚本实现的是在 Mac 的原生 Reminder 应用里指定一个提醒列表,将这个列表里的提醒事项放到菜单栏显示,并且只显示第一个,在菜单栏点击这个提醒事项,可以将它在 Reminder 里标记为完成。觉得这个脚本功能有点弱,还差点我要的东西。

顺着这个脚本的思路,边查 AppleScript 的语法边修改,最后改成了我要的样子,和 TODO Menubar 有点像。菜单栏显示完成情况,子菜单显示具体的 TODO,点击 TODO 可以标记为完成。

脚本如下:

#!/bin/sh

reminder=$(osascript -e 'tell application "Reminders"
    set activeReminders to (reminders of list "测试" whose completed is true)
    set numOfActiveReminders to (count of activeReminders)
    set allReminders to (reminders of list "测试")
    set numOfAllReminders to (count of allReminders)
    set result to ((numOfActiveReminders as string) & "/" & numOfAllReminders as string)
    return result
end tell')

todolist=$(osascript -e 'tell application "Reminders"
    set todos to (reminders of list "测试" whose completed is false)
    set newlist to {}
    repeat with todo in todos
        copy (name of todo as text) to the end of the newlist
    end repeat
    return newlist
end tell')
todolist=${todolist// /} # 删除空格
todolist=${todolist//,/ } # 转换 AppleScript 的 list 为 shell 的 list 格式

if [ "$1" = "done" ]; then
    osascript -e    "tell application \"Reminders\"
    set activeReminders to (reminders of list \"测试\" whose completed is false)
    repeat with todo in activeReminders
        if (name of todo as text) is equal to \"$2\" then
            tell todo
                set completed to true
            end tell
        end if
    end repeat
end tell"
fi

if [ "$1" = "open" ]; then
    osascript -e    'tell application "Reminders" to activate'
fi

echo "✔︎ $reminder"
echo "---"
echo "Open Reminder| bash='$0' param1='open' terminal=false"
echo "---"
for loop in $todolist
do
    echo "${loop%*,} | bash='$0' param1='done' param2='${loop%*,}' terminal=false refresh=true"
done | sort
echo "---"
echo "↻ Refresh| terminal=false refresh=true"

效果图:

image

对应在 Reminder 中的任务列表

image

如果你细心点,可以发现第 3 条 todo,提交 commit 在菜单栏中变成了 提交commit,这是由于 shell 中的数组元素以空格区分,为了避免1 个 todo 显示在两行,我将每个 todo 中的空格都去掉了。

这样,每天只用维护自己的 Reminder 的任务列表就行了。如果很多天过去,任务总数太多,可以再创建一个 Archive 提醒列表,将过去完成的任务都移动到里面。

快乐的写 TODO 吧!



DigitalOcean 优惠码,注册充值 5 送100,链接一 链接二

Lastly, welcome to follow me on github

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

推荐阅读更多精彩内容

  • 以下文字仅是记录,无歧视,喷子请绕行。 昨日无事,和老公一起带娃去临近的一个市里玩。先是做一趟公交车。车上人有点多...
    阿又读书阅读 213评论 0 2
  • 《180721 Lake Tahoe(太好湖).景》 ---- 2018-07-21 ~ 2018-07-27. ...
    JiyaoLiu阅读 88评论 0 0
  • 开学第一周,状态有待调整。闹钟是假的,爬不起来。关了5:50的闹钟继续睡。6:30才能爬起来。 中午睡不醒,艰难爬...
    Alian__阅读 115评论 0 1