博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用 conky 记录 TODO
阅读量:5260 次
发布时间:2019-06-14

本文共 3611 字,大约阅读时间需要 12 分钟。

conky

Table of Contents

1 前言

本来一直认为 conky 没多大用处,反而会影响我的注意力,但用 FVWM 之后发现看时间不太方便,就决定重新使用 conky,配置了一下发现还不错。另外感觉 Emacs 下的 Org 的 TODO 很不错,就写了一个脚本,可以跟 conky 配合显示待办事项。

2 conky配置

先给出我的 .conkyrc 文件,其实就只实现了显示时间的功能,本来可以显示天气的,但校园网真的很不给力,每次打开都要 n 长时间,就去掉了。

background no cpu_avg_samples 2 net_avg_samples 2 out_to_console no use_xft yes xftfont Monospace:size=8 own_window_transparent no xftalpha 0.8 mail_spool $MAIL update_interval 1 own_window yes own_window_transparent yes own_window_hints undecorated,below,skip_taskbar own_window_type override double_buffer yes minimum_size 260 5 maximum_width 250 draw_shades no draw_outline no draw_borders no stippled_borders no border_width 1 default_shade_color black default_outline_color green gap_x 10 gap_y 145 alignment top_right use_spacer none no_buffers yes uppercase no TEXT ${color gold}${font 方正少儿_GBK:size=30}${alignc}FVWM${font}${color} ${color #238EEB}${hr 2}${color} ${font DS\-Digital:style=Bold:size=45}${color #000000} ${time %l:%M:%S}${font}${color} ${color #08CEEB}${font 方正少儿_GBK:size=12}${alignc}${time %b%d 星期%a}${color}${font} ${color #03CEEB}${hr 1}${color} ${color green}${font 方正少儿_GBK:size=16} ${alignc}小呼的桌面${font}${color} ${color #038EEB}${hr 5}${color} ${color gold}${font FZShaoEr\-M11:size=12}${alignc}------------- ${color #0E8EEB}TODO ${color gold}-------------${font}${color} ${color green}${font 方正少儿_GBK:size=14}${execpi 3 cat -n ~/.todolist}${color}

3 使用 TODO

我把待办事项放在了家目录下的 .todolist 中,用 todo 命令维护其中的待办事项。

3.1 todo 脚本

下面是 todo 脚本的内容(不懂shell编程,可能写得比较差,但功能是实现了):

,#!/bin/bash case $1 in "-s") # 长期任务 shift task=$* while [[ $# > 0 ]]; do echo "$""{color orange}" $1 "$""{color green}" >> ~/.todolist shift done echo "成功添加任务:$task" ;; "-d") # 按字符串删除 t=`sed -n /$2/p ~/.todolist` if [ "$t" != "" ]; then echo "要删除任务 \""$t"\"吗? 是(y)/否(n)" read answer if [ $answer \= "y" ]; then sed -i /$2/d ~/.todolist echo "Task deleted." else echo "Task not deleted." fi else echo "不存在这个任务。" fi ;; "-dl") # 按行删除 shift task=$* while [[ $# > 0 ]]; do sed -i $1s/.*// ~/.todolist # 将选中行变为空行 shift; done sed -i /^$/d ~/.todolist # 删除空行 echo "成功删除任务:$task" ; ;; "-m") # 按字符串标记为完成 shift; task=$*; while [[ $# > 0 ]]; do sed -i /$1/s/green/red/ ~/.todolist #将绿色(待办)改成红色(完成) shift; done echo "成功标记任务:$task" ; ;; "-ml") # 按行标记为完成 shift; task=$*; while [[ $# > 0 ]]; do sed -i /$1/s/green/red/ ~/.todolist #将当前行的绿色(待办)改成红色(完成) shift; done echo "成功标记任务:$task" ; ;; "-a") # 添加新任务,每次可以增加多个,可以包含空格(要用'\'转义) shift task=$* while [[ $# > 0 ]]; do echo "$""{color green}" $1 "$""{color green}" >> ~/.todolist shift done echo "成功添加任务:$task" ; ;; *) # 同上 task=$* while [[ $# > 0 ]]; do echo "$""{color green}" $1 "$""{color green}" >> ~/.todolist shift done echo "成功添加任务:$task" esac ,#done

将上面内容复制到一个 todo 文件中,给它可执行权限,再放到 /usr/bin 目录即可:

chmod +x todo sudo mv todo /usr/bin

3.2 todo 使用

下面是todo脚本的用法,其实脚本里已经写行很清楚了:

参数 用法
-d item 删除与item匹配的项
-dl l1[l2,l3…] 删除第l1[l2、l3…]项
-m item 将与item匹配的项标记为完成(红色)
-ml l1[l2,l3…] 将第l1[l2、l3…]项标记为完成(红色)
-s item 增加一个待办项目(橘黄色,表示长期项目)
-a item1[item2、item3…] 增加项目item1[item2、item3…],(绿色,表示小型项目)
item1[item2、item3…] (无参数)同上,增加项目(绿色)

4 一个问题

如果从源里安装,或者编译时用 conky 的默认代码,我们的 TODO 功能并不能显示多少项目的, 因为 conky 的 execpi 的文本缓冲区默认是256个字节,所以我们要修改一下代码, 将conky的源码包解压(我用的是1.8.1版), 在 src 文件夹中的 conky.c 中,将415行(1.8.1版本):

unsigned int text_buffer_size = DEFAULT_TEXT_BUFFER_SIZE ;
改为:
unsigned int text_buffer_size = DEFAULT_TEXT_BUFFER_SIZE * 10 ;
这样就将缓冲区增大到原来的 10 倍,应该够用了。编译安装。

5 结束

好了,介绍完了,下面是我的截图,祝愉快!

 

Author: Hu Wenbiao

Date: 2011-04-10 00:15:57 CST

HTML generated by org-mode 6.21b in emacs 23

转载于:https://www.cnblogs.com/Open_Source/archive/2011/04/10/2011000.html

你可能感兴趣的文章
【BZOJ4516】生成魔咒(后缀自动机)
查看>>
提高PHP性能的10条建议
查看>>
svn“Previous operation has not finished; run 'cleanup' if it was interrupted“报错的解决方法...
查看>>
Java大数——a^b + b^a
查看>>
【动态规划】skiing
查看>>
java定时器的使用(Timer)
查看>>
boost 同步定时器
查看>>
[ROS] Chinese MOOC || Chapter-4.4 Action
查看>>
简单的数据库操作
查看>>
Redmine
查看>>
帧的最小长度 CSMA/CD
查看>>
编程算法 - 左旋转字符串 代码(C)
查看>>
IOS解析XML
查看>>
Python3多线程爬取meizitu的图片
查看>>
树状数组及其他特别简单的扩展
查看>>
zookeeper适用场景:分布式锁实现
查看>>
110104_LC-Display(液晶显示屏)
查看>>
httpd_Vhosts文件的配置
查看>>
php学习笔记
查看>>
普通求素数和线性筛素数
查看>>