How-to`s — Little tricks with conky.
Грозилась написать пост в рамках тематической недели, но к сожалению заработалась и всё никак не находила времени. Как говорится "лучше поздно, чем никогда" ;)
Хочу рассказать про маленькие хитрости, которые я использую в своих конфигах conky. Поскольку на моём рабочем столе царит разумный минимализм, а виджеты со всякими уведомлениями и системной информацией слишком прожорливы, для всего этого я использую conky.
Небольшое отступление:
Все конфиги у меня лежат в ~/.conky, скрипты и сами конфиги стараюсь называть так, чтобы было понятно их назначение — в будущем намного удобнее ориентироваться. Самые удачные конфиги со всеми скриптами и картинками кладу в отдельные папки и как-нибудь обзываю, обычно в честь созданныхо гтк/пек тем.
Рецепт первый. А-ля covergloobus.
Тут вариантов несколько. Все основаны на небольшом скрипте, который отображает текущую обложку (возможно где-то есть лучше и проще, я буду рассказывать только о тех, что есть у меня — поэтому не стесняйтесь, дополняйте) и собственно вставке картинки фона, плюс дополнительные бары и информация.
Скрин №1
Что желательно указать в конфиге:
Всё, что после TEXT:
Теперь о скрипте.
Он берёт информацию о треке из файла, который создаёт sonata, именно ей я рулю mpd. Для mpc и прочего думаю можно запросто нагуглить, либо написать :)
Тонкости баша расписывать не буду, не о том тема, да и думаю всем более-менее понятно о чём тут. Поясню только 1 момент.
Если в папке с обложками нужной картинки нет, то в currentcover уходит заранее подготовленный nocover, тобишь та картинка, которую показыть, если обложки нету.
Рисуете на свой вкус, хоть надпись NO COVER, хоть FFFUUUUU
Скрин №2
Тут всё абсолютно то же самое, за исключением пары моментов.
Во-первых, использыется три картинки, вместо двух (фон, обложка, плей/паузы)
Рецепт второй. Моднявые шрифты.
Скриншот:
Для отображения этих мордашек я использовала шрифт dist yolks emoticons, который взяла на dafont.com в разделе Dingbats.
В принципе можно вставить любое безумие, которое найдёте. Есть там и ноты, и инопланетяне, и персонажи сказок, комиксов, мультов и фильмов. Цвет, размер — всё задаётся как для обычного шрифта, потому что это он и есть ☺
Рецепт третий. Кармафилия.
По мотивам поста про расширение для хрома написала себе скриптик.
Скажу сразу честно. Он ужасен. Начиная от идеи, и заканчивая готовым результатом. на момент написания стояла задача разобраться что такое sed и с чем его употребляют.
Итак, скрипт для отображения текущего рейтинга на вилинуксе:
Код для conky:
Сам скрипт:
Подозреваю, что можно смело отправлять на говнокод ☺
А делает он вот что: загружает в rate страницу юзера, выводится 53-я строка, из которой sed'ом режутся цифры рейтинга.
Стыдно и страшно, однако, оно работает :)
UPD 1: Спасибо xT за помощь со скриптом.
Смотрите комментарий.
UPD 2: Рецепт от nvbn:
Рецепт четвёртый. В курсе событий.
Далее. Об уведомлялках для gmail и новых пакетах. Про первое есть уже пост. В комментариях имеется альтернатива на баше, сама же я использую скрипт на перле, длинный и непонятный.
Все три помещаю в спойлер.
Про уведомлялку об апдейтах расскажу подробнее.
Пихаем в нужное место конфига коньков эту незамысловатую строчку:
Сам скрипт:
Не забудьте создать updates.log, а то будет "No such file or directory"
А в крон суём скрипт на баше, который будет заполнять наш лог ;):
Время обновления выбирайте сами для себя, у меня это примерно каждые 6 часов.
Скрипт прост: считает кол-во строк в логе по заданному выражению и выводит кол-во новых пакетов.
На последним скрине обновлений не наблюдается, сказывается привычка довольно часто делать sudo pacman -Syu :)
Рецепт пятый. Календарики и часики.
Календариков на просторах инета много, я юзаю один из самых простых вариантов.
Выглядит это так:
Конфиг:
${color 555C37} — цвет текущей даты. ${color 696969} — для следующих дней.
Так же можно добавить ${time %B, %Y}, к примеру.
То же самое, только на питоне.
Совсем простой вариант:
Вариант поинтереснее — горизонтальный календарь.
Найдено на лоре, овации автору. Вариант с динамичной текущей датой тут.
Поясню как использовать скрипт в коньках:
Выделенные жирным циферки — номера частей скрипта. Тобишь до текущей даты, текущая, и после неё. Так что легко менять цвет, размер и положение всех частей.
Если желаете чего-то экзотического, можно поискать в гугле "conky calendar script" :)
А чтобы календарь не расползался и дни недели шли ровно используйте моноширинные шрифты.
lua scripts использовала давно и только ради милых аналоговых часиков. Скрипт lua:
Огромные кольца разных цветов и размеров мне не нравятся, а вот часики приглянулись. Посмотреть скрин.
В конфиге conky указываем, что будет использовать lua:
Выравнивание вставила, потому что пустой конфиг не воркает, а кроме часов он больше у меня ничего не показывал.
Рецепт шестой. Проще простого.
Тут не будет никак скриптов и конфигов, только парочка советов напоследок.
1. Два параметра, ${color} и ${font}, имеют свойство распространяться не только на текущую строку, но и на весь конфиг в целом. Тобишь после однократного использования лучше закрывать их, как теги.
Дабы не городить подобное:
Сделаем проще. Цвет выделения в алиасы, а 767676 в цвет по умолчанию.
Точно так же со шрифтами.
Честно говоря, я почему-то до сих пор этим не пользуюсь. Буду исправляться, да.
2. Иногда случается так, что в конфиге присутствует элемент, из-за которого разъезжаются все данные. Портит не только вид рабочего стола, но и нервы. Обычно это касается выравнивания по горизонтали (alingr, alignc, offset).
В таких случаях приходит на помощь параметр ${goto %посыл%}.
Пример: конфиг conky имеет вид строки на всю ширину монитора и высотой в 20 пикселей. Вы наблюдаете свободное место на ваших дисках и разделах, а так же скорость интерфейсов, или же скорость торрента. Данные сие непостоянны весьма, выводятся без округлений, по сему строка будет прыгать туда-сюда, если использовать offset и т.д.
${goto} же воткнёт элемент в чётко указанное место и изменение его размера на всей строке не отобразится.
3. Список переменных и параметров конфига.
Официальные скриншоты с готовыми конфигами и скриптами.
Скромный такой намёк на rtfm ;)
Всем спасибо за внимание, пишите, дополняйте, спрашивайте.
Хочу рассказать про маленькие хитрости, которые я использую в своих конфигах conky. Поскольку на моём рабочем столе царит разумный минимализм, а виджеты со всякими уведомлениями и системной информацией слишком прожорливы, для всего этого я использую conky.
Небольшое отступление:
Все конфиги у меня лежат в ~/.conky, скрипты и сами конфиги стараюсь называть так, чтобы было понятно их назначение — в будущем намного удобнее ориентироваться. Самые удачные конфиги со всеми скриптами и картинками кладу в отдельные папки и как-нибудь обзываю, обычно в честь созданныхо гтк/пек тем.
Рецепт первый. А-ля covergloobus.
Тут вариантов несколько. Все основаны на небольшом скрипте, который отображает текущую обложку (возможно где-то есть лучше и проще, я буду рассказывать только о тех, что есть у меня — поэтому не стесняйтесь, дополняйте) и собственно вставке картинки фона, плюс дополнительные бары и информация.
Скрин №1
Что желательно указать в конфиге:
1 2 3 4 5 6 7 8 9 10 |
update_interval 1 # интервал обновления информации, в данном случае 1 секунда. |
Всё, что после TEXT:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
${image ~/.conky/c.png} |
Теперь о скрипте.
Он берёт информацию о треке из файла, который создаёт sonata, именно ей я рулю mpd. Для mpc и прочего думаю можно запросто нагуглить, либо написать :)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#!/bin/bash |
Тонкости баша расписывать не буду, не о том тема, да и думаю всем более-менее понятно о чём тут. Поясню только 1 момент.
Если в папке с обложками нужной картинки нет, то в currentcover уходит заранее подготовленный nocover, тобишь та картинка, которую показыть, если обложки нету.
Рисуете на свой вкус, хоть надпись NO COVER, хоть FFFUUUUU
Скрин №2
Тут всё абсолютно то же самое, за исключением пары моментов.
Во-первых, использыется три картинки, вместо двух (фон, обложка, плей/паузы)
1 2 3 4 5 6 7 8 9 10 11 12 |
${if_match "$mpd_status" == "Playing"}${execi 1 ~/.conky/sonata}${image ~/.conky/currentcover.jpg -p 20,22 -s 129x129}${image ~/.conky/aart.png}${image ~/.conky/play.png -p 75,170 -s 30x30}$else${if_match "$mpd_status" == "Paused"}${image ~/.conky/currentcover.jpg -p 20,22 -s 129x129}${image ~/.conky/aart.png}${image ~/.conky/pause.png -p 75,170 -s 30x30}$endif$endif |
Рецепт второй. Моднявые шрифты.
Скриншот:
Для отображения этих мордашек я использовала шрифт dist yolks emoticons, который взяла на dafont.com в разделе Dingbats.
1 2 3 |
${voffset 80}${color F55730}${font dist yolks emoticons:size=40}9${font} |
В принципе можно вставить любое безумие, которое найдёте. Есть там и ноты, и инопланетяне, и персонажи сказок, комиксов, мультов и фильмов. Цвет, размер — всё задаётся как для обычного шрифта, потому что это он и есть ☺
Рецепт третий. Кармафилия.
По мотивам поста про расширение для хрома написала себе скриптик.
Скажу сразу честно. Он ужасен. Начиная от идеи, и заканчивая готовым результатом. на момент написания стояла задача разобраться что такое sed и с чем его употребляют.
Итак, скрипт для отображения текущего рейтинга на вилинуксе:
Код для conky:
${execi 300 ~/.conky/werate}
Сам скрипт:
1 2 3 |
#!/bin/bash |
Подозреваю, что можно смело отправлять на говнокод ☺
Товарищи знатоки, поможете довести до ума, а? )
А делает он вот что: загружает в rate страницу юзера, выводится 53-я строка, из которой sed'ом режутся цифры рейтинга.
Стыдно и страшно, однако, оно работает :)
UPD 1: Спасибо xT за помощь со скриптом.
Смотрите комментарий.
UPD 2: Рецепт от nvbn:
1 2 3 |
curl -silent 'http://welinux.ru/ajax/r_get?user=Aesdana' |\ |
Рецепт четвёртый. В курсе событий.
Далее. Об уведомлялках для gmail и новых пакетах. Про первое есть уже пост. В комментариях имеется альтернатива на баше, сама же я использую скрипт на перле, длинный и непонятный.
Все три помещаю в спойлер.
Баш:
Перл:
Питон:
1 2 3 4 5 6 7 |
#!/bin/bash |
Перл:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 |
#!/usr/bin/perl |
Питон:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import os |
Про уведомлялку об апдейтах расскажу подробнее.
Пихаем в нужное место конфига коньков эту незамысловатую строчку:
${texeci 10800 perl ~/.conky/conky-updates.pl}
Сам скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#! /usr/bin/perl -w |
Не забудьте создать updates.log, а то будет "No such file or directory"
А в крон суём скрипт на баше, который будет заполнять наш лог ;):
Время обновления выбирайте сами для себя, у меня это примерно каждые 6 часов.
sudo pacman -Syup --noprogressbar > /home/aesdana/.conky/updates.log
Скрипт прост: считает кол-во строк в логе по заданному выражению и выводит кол-во новых пакетов.
На последним скрине обновлений не наблюдается, сказывается привычка довольно часто делать sudo pacman -Syu :)
Рецепт пятый. Календарики и часики.
Календариков на просторах инета много, я юзаю один из самых простых вариантов.
Выглядит это так:
Конфиг:
${execpi 3600 DJS=`date +%_d`; cal -m | sed '1d' | sed '/./!d' | sed 's/$/ /' | fold -w 21 | sed -n '/^.\{21\}/p' | sed 's/^/${alignc} /' | sed /" $DJS "/s/" $DJS "/" "'${color 555C37}'"$DJS"'${color 696969}'" "/}
${color 555C37} — цвет текущей даты. ${color 696969} — для следующих дней.
Так же можно добавить ${time %B, %Y}, к примеру.
То же самое, только на питоне.
Совсем простой вариант:
${exec cal -m | cut -c23-44 --complement}
Вариант поинтереснее — горизонтальный календарь.
Найдено на лоре, овации автору. Вариант с динамичной текущей датой тут.
Поясню как использовать скрипт в коньках:
${texeci 3 perl ~/.conky/mov_hor.pl 1 15 15}${color 555C37}${font droid sans:size=22}${voffset -10}${texeci 3 perl ~/.conky/mov_hor.pl 2 15 15}${font}${color #696969}${voffset -3}${texeci 3 perl ~/.conky/mov_hor.pl 3 15 15}
Выделенные жирным циферки — номера частей скрипта. Тобишь до текущей даты, текущая, и после неё. Так что легко менять цвет, размер и положение всех частей.
Если желаете чего-то экзотического, можно поискать в гугле "conky calendar script" :)
А чтобы календарь не расползался и дни недели шли ровно используйте моноширинные шрифты.
lua scripts использовала давно и только ради милых аналоговых часиков. Скрипт lua:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 |
[[Clock Rings by londonali1010 (2009) Edited by jpope |
Огромные кольца разных цветов и размеров мне не нравятся, а вот часики приглянулись. Посмотреть скрин.
В конфиге conky указываем, что будет использовать lua:
# Lua Load #
lua_load ~/.conky/clock.lua
lua_draw_hook_pre clock_rings
TEXT
${alignc}
lua_load ~/.conky/clock.lua
lua_draw_hook_pre clock_rings
TEXT
${alignc}
Выравнивание вставила, потому что пустой конфиг не воркает, а кроме часов он больше у меня ничего не показывал.
Рецепт шестой. Проще простого.
Тут не будет никак скриптов и конфигов, только парочка советов напоследок.
1. Два параметра, ${color} и ${font}, имеют свойство распространяться не только на текущую строку, но и на весь конфиг в целом. Тобишь после однократного использования лучше закрывать их, как теги.
Дабы не городить подобное:
TEXT:
${color 767676}бла-бла${color 212121}тру-ля-ля${color 767676}ай-люли-люли
${color 767676}бла-бла${color 212121}тру-ля-ля${color 767676}ай-люли-люли
Сделаем проще. Цвет выделения в алиасы, а 767676 в цвет по умолчанию.
#color
default_color 767676
color1 212121
TEXT:
бла-бла${color1}тру-ля-ля${color}ай-люли-люли
default_color 767676
color1 212121
TEXT:
бла-бла${color1}тру-ля-ля${color}ай-люли-люли
Точно так же со шрифтами.
Честно говоря, я почему-то до сих пор этим не пользуюсь. Буду исправляться, да.
2. Иногда случается так, что в конфиге присутствует элемент, из-за которого разъезжаются все данные. Портит не только вид рабочего стола, но и нервы. Обычно это касается выравнивания по горизонтали (alingr, alignc, offset).
В таких случаях приходит на помощь параметр ${goto %посыл%}.
Пример: конфиг conky имеет вид строки на всю ширину монитора и высотой в 20 пикселей. Вы наблюдаете свободное место на ваших дисках и разделах, а так же скорость интерфейсов, или же скорость торрента. Данные сие непостоянны весьма, выводятся без округлений, по сему строка будет прыгать туда-сюда, если использовать offset и т.д.
${goto} же воткнёт элемент в чётко указанное место и изменение его размера на всей строке не отобразится.
3. Список переменных и параметров конфига.
Официальные скриншоты с готовыми конфигами и скриптами.
Скромный такой намёк на rtfm ;)
Всем спасибо за внимание, пишите, дополняйте, спрашивайте.