календар для conky: просто

conky вміє календар =) для цього написані спеціальні скрипти: calendario.sh чи conkycalendar.py, проте… насправді гіківський спосіб — то взагалі впоратися без сторонніх скриптів, лише поєднанням кількох команд оболонки! можливо, не так гнучко, зате елегантно.

а ще — надзвичайно пізнавально, бо довелося детально розбиратися (раніше лінувався) з тим, як працюють cal, sed та якого дідька fold не хоче правильно розбивати кириличний текст на рядки =)

власне, ось рядок, котрий треба додати до файлу конфігурації .conkyrc, щоби отримати календар як на скріншоті:

${voffset 5}${font DejaVu Sans Mono:size=10}${execpi 60 DJS=`date +%_d`; cal -m | sed '1d' | sed '/./!d' | sed 's/$/ /' | sed 's/^/${alignc -2} /' | sed /" $DJS "/s/" $DJS "/" "'${color red}${font DejaVu Sans Mono:bold:size=10}'"$DJS"'${font DejaVu Sans Mono:size=10}${color}'" "/}
складненько? ну хіба що трошечки =) ідею та код запозичено там-таки, у блозі conky hardcore, і трохи «допиляно» для відображення назв днів українською та мінімалістичного форматування в загальному стилі конфігу.

5 коментар(ів):

Ігор Григоренко (ZuZzZa) сказав...

Хм... Цікаво, але мені вистачає того, що є=)))

chugylo сказав...

Я собі думаю файл todo.txt виводити. Поганялка буде. :)

tivasyk сказав...

2chugylo
ой, в мене алергія на усілякі gtd тощо... організм не сприймає =) а технічно зробити неважко. тільки публікуй щось, як зробиш!

chugylo сказав...

Я тим не зловживаю. Із спеціалізованих програм використовую тільки VYM, коли треба впорядкувати великий обсяг розрізненої інформації. А так тільки текстові файли за принципом „один рядок — один запис“.

Код вийшов от такий:
${color orange}${execpi 60 cat todo.txt | sed -e 's/#.*//' -e '/^[ \t]*$/d' -e 's/[ \t]*$//' -e 's/^/> /' | head -n1 | fold -s}
${color black}${execpi 60 cat todo.txt | sed -e 's/#.*//' -e '/^[ \t]*$/d' -e 's/[ \t]*$//' -e 's/^/> /' | head -n4 | tail -n3 | fold -s}
Виводить перші чотири непорожніх і незакоментованих записи із файлу.

Раджу робити послідовні виклики sed через опцію -e, а не „ланцюжком“. Тоді не будуть створюватися зайві процеси.

tivasyk сказав...

2chugylo
> Раджу робити послідовні виклики sed через опцію -e
дякую, корисна порада!

Дописати коментар

увага!
коментарі не модерую, проте спам видаляю нещадно. посилання на інші сайти/блоги за темою допису вітаю.

додаткові можливості розмітки (кутики набрати з клавіатури):
  ‹b›жирний шрифт‹/b›
  ‹i›похилий шрифт‹/i›
  ‹a href="http://tivasyk.info"›посилання‹/a›