Table of Contents
В свое врямя я писал об замечательном режиме Emacs — org-mode. Одна из его возможностей, это органайзер, т.е. назначение заданий.
- С-с С-s Назначение стартовой точки задания. Наметить встречу на 14 февраля
- C-c C-d Назначение сроков выполнения задания или Deadline Выполнить до 31 февраля
Держать все в одном файле Вас никто не заставляет, файлов может быть много, главное внесите их в список просматриваемых Org->File list for Agenda
Теперь например запусти что то вроде M-x org-todo-list увидите Ваши TODO-шки по всем файлам.
Наша задача проста, отображать недельные задачи и просроченные задачи. , также просто выкидывать рандомные идеи из того что помечено как TODO. Отображать мы это будем с помощью Conky
Извлечение
Все уже придумано за нас , осталось воспользоваться примерами из документации
Извлекаем в файл все наши TODO записи.
emacs -batch -l /home/username/.emacs -eval '(org-batch-agenda "t")'>todoemacs.txt 2> /dev/null
Извлекаем все старые задания и расписание заданий на неделю вперед.
emacs -batch -l ~/.emacs -eval '(org-batch-agenda "a" \ org-agenda-span (quote month) \ org-agenda-include-diary nil)'>work.txt 2>/dev/null
Можно конечно встроить все эти команды в сам conky, но поймите даже если каждые 30 секунд у Вас будет запускаться эта конфигурация, это будет заметно.
Обрезание
Таки вот мы берем все что нам там вывел Emacs и вынимаем то что нам нужно
#!/bin/bash emacs -batch -l ~/.emacs -eval '(org-batch-agenda "a" \ org-agenda-span (quote month) \ org-agenda-include-diary nil)'>work.txt 2>/dev/null #Извлекаем из Вывода просроченные задачи #Удаляем с них метки и записи TODO cat work.txt |egrep ': In|: Sched\.'|sed 's/: In[0-9 -]*d\.:/:/g'|\ sed 's/: Sched\.[0-9 ]*x:/:/g'|\ sed 's/[: ]*TODO/:/g'> /home/username/agenda_old_work.txt #Извлекаем все остальное, убираем лишнее и оставляем только расписание. cat work.txt |egrep -v ': In|: Sched\.'|\ grep -v 'Week-agenda'|\ sed 's/[: ]*TODO/:/g' >/home/username/agenda_work.txt rm work.txt emacs -batch -l /home/username/.emacs -eval '(org-batch-agenda "t")'>todoemacs.txt 2> /dev/null sed -i 's/TODO//g' /home/username/todoemacs.txt
А теперь чтобы совсем все хорошо было надо прописать в /etc/crontab следующую строчку,обновления раз в час нам вполне хватит.
0 * * * * username bash /home/username/.agenda_script.sh
Точим коньки
Что почитать:
- http://help.ubuntu.ru/wiki/conky
- http://www.linuxcenter.ru/lib/articles/soft/conky_as_example.phtml
- http://www.deviantart.com/art/Conky-JamesHardy88-122466724
Взяв относительно готовую конфигурацию(там ещё шрифты надо поставить,чтобы значки были), я быстро понял что разрешения по вертикали мне не хватит да и не красиво так, а вот второе окно можно сделать только запустив ещё одни коньки.
Скрипт для запуска
#!/bin/bash conky -b& 2>/dev/null conky -c ~/.conkyrc2 -b& 2>/dev/null
# Use Xft? use_xft yes xftfont DejaVu Sans:size=8 xftalpha 0.8 text_buffer_size 2048 # Update interval in seconds update_interval 1 # This is the number of times Conky will update before quitting. # Set to zero to run forever. total_run_times 0 # Create own window instead of using desktop (required in nautilus) own_window yes own_window_transparent yes own_window_type override #own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager # Use double buffering (reduces flicker, may not work for everyone) double_buffer yes # Minimum size of text area minimum_size 300 0 maximum_width 300 # Draw shades? draw_shades no # Draw outlines? draw_outline no # Draw borders around text draw_borders no # Stippled borders? stippled_borders 0 # border margins border_margin 5 # border width border_width 1 # Default colors and also border colors default_color white #default_shade_color black #default_outline_color white own_window_colour white # Text alignment, other possible values are commented #alignment top_left alignment top_right #alignment bottom_left #alignment bottom_right # Gap between borders of screen and text # same thing as passing -x at command line gap_x 250 gap_y 100 # Subtract file system buffers from used memory? no_buffers yes # set to yes if you want all text to be in uppercase uppercase no # number of cpu samples to average # set to 1 to disable averaging cpu_avg_samples 2 # number of net samples to average # set to 1 to disable averaging net_avg_samples 2 # Force UTF8? note that UTF8 support required XFT override_utf8_locale yes # Add spaces to keep things from moving about? This only affects certain objects. use_spacer none TEXT ${color grey}TODO ${hr 2} ${execi 20 cat todoemacs.txt |grep "^ [a-z]*\:"|sort -R|head -3} ${voffset 20}${color grey}Горит:${execi 30 cat agenda_old_work.txt|wc -l} ${hr 2} ${color red}${execi 30 cat agenda_old_work.txt |sort -R|head -3} ${voffset 20}${color grey}Сегодня: ${hr 2} ${color lightgrey} ${exec cat agenda_work.txt }
Поправте если увидите ошибку , мне пока таких Conky хватает, но на будущее конечно можно ещё что интересное посмотреть. Также заметил что в ранней версии conky(1.7 на Ubuntu 12.04), не работает UTF-8 , не знаю проблемы ли это релиза, или баг.
Добавить комментарий