这个脚本的一些参数是按我自己的需要显示的, 需要的可以自己改里面的参数.
下面这个脚本的功能:
-
没有3天内的任务时,显示"NOTHING TODO
-
3天内到期的任务用红色显示.
-
当不止一个任务时自动轮询任务.时间间隔由i3blocks的刷新间隔控制.
#!/bin/bash [ ! -f /tmp/todo ] && echo 0 > /tmp/todo n=$(cat /tmp/todo) n=$(expr $n + 1) echo $n > /tmp/todo todo=$(emacs \ --batch\ --user\ $USER\ --eval "(progn (org-agenda-list nil nil 'week) (write-file \"/dev/stdout\"))" \ 2> /dev/null\ | grep "^ .*"\ | grep -v "Deadline"\ ) lines=$(echo "$todo" | sed '/^$/d' | wc -l) if [[ 0 -eq $lines ]]; then echo "NOTHING TODO" echo echo \#00FFFF exit fi if [[ $n -gt $lines ]]; then n=1 echo 0 > /tmp/todo fi text=$(echo "$todo" | head -n $n | tail -n 1) text=$(echo "$text" | sed 's/.*my-todo: *//') days=$(echo "$text" | sed 's/.*In *\(.*\)\s *d.*/\1/') text=$(echo "$text" | sed 's/.*TODO \(.*\)/\1/') echo "[$n/$lines] ${days}d $text" echo if [[ $days -le 3 ]]; then echo \#FF0000 else echo \#00FFFF fi