Chapter [0x01] Для затравки.

mocp conky

mocp conky

Вот к такому виду мы придем в конце этого руководства, как немного облагородить свой рабочий стол (на любителя).

Chapter [0x02] Необходимый инструментарий.
А точнее софт, для воплощения задуманного.
1) conky -

sudo apt-get install conky

2) mocp
Все очень легко и просто на этой Ubuntu ;)
3) скрипты и конфиги (в следующей «главе»)

Chapter [0x03] Скриптинг.
Здесь приведу код необходимых скриптов, и в конце куда их положить, чтоб все работало.
Основной конфиг — это конфиг conky (обзываем его .conkyrc и сохраняем в домашней директории, так которая ~/):

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
background yes
use_xft yes
xftfont Lucida Grande:size=9
xftalpha 0.4
update_interval 1.0
total_run_times 0
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 350 10
maximum_width 350
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
default_color white
default_shade_color white
default_outline_color white
alignment top_left
gap_x 12
gap_y 28
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
imlib_cache_size 0

TEXT
${color ff9000}Now Playing: ${color aeaeae}${texeci 1 sh ~/.scripts/songs.sh}${color ffffff}
${image ~/.scripts/.album -p 60,20 -s 100x100}

$stippled_hr
IP: ${execi 14400 wget -O - http://k0derz.ru/ip.php | tail} | eth0 ${addr eth0}
$uptime | ${downspeed eth0} / ${upspeed eth0} | ${totaldown eth0} / ${totalup eth0}
${texeci 180 python ~/.scripts/gmail.py} email(s)
home    ${fs_used_perc /home}%   ${fs_bar 3,75 /home}   ${fs_used /home} / ${fs_size /home}
root    ${fs_used_perc /}%   ${fs_bar 3,75 /}   ${fs_used /} / ${fs_size /}
swap    $swapperc%   $swap / $swapmax
$mem / $memmax   $memperc%   |   cpu0   ${cpu cpu0}%   |   cpu1   ${cpu cpu1}%
$stippled_hr
Highest MEM:
${color ff9000}${top_mem name 1} ${top_mem mem 1}%
${color ffffff}${top_mem name 2} ${top_mem mem 2}%
${top_mem name 3} ${top_mem mem 3}%
$stippled_hr

Копировать один к одному, с пробелами, отступами, абзацами.

Скрипт на bash’e для получения обложки альбома (album.sh, кладем его в директорию .scripts, в домашней директории, предварительно создав первую):

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
artist=`mocp -Q %artist`
album=`mocp -Q %album`
cover=`cat $HOME/.scripts/cover`
if [ "$cover" != "$album" ]; then
echo $album > ~/.scripts/cover
str="`echo "$artist $album" | sed -e s/\\ /+/g`"
wget `wget "http://www.albumart.org/index.php?srchkey=$str&itempage=1&newsearch=1&searchindex=Music" -q -O - |
grep "http://www.albumart.org/images/zoom-icon.jpg" -m 1 |
sed -e 's/" border="0" class="image_border.*//' |
sed -e 's/.*img src="//'` -q -O ~/.scripts/.album
fi

Далее скрипт для получения количества сообщений на почте Gmail (gmail.py, кладем также в .scripts):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import os
import string

username="ваш логин"
password="ваш пароль"

com="wget -O - https://"+username+":"+password+"@mail.google.com/mail/feed/atom --no-check-certificate"

temp=os.popen(com)
msg=temp.read()
index=string.find(msg,"")
index2=string.find(msg,"")
fc=int(msg[index+11:index2])
print str(fc)+" new"

Скрипт songs.sh — для вывода названия группы и трека (все туда же в .scripts):

1
2
#!/bin/bash
echo $(mocp -Q %artist) - $(mocp -Q %song)" ("$(mocp -Q %album)")" | iconv -t "UTF-8"

И последнее что осталось подправить — конфиг mocp, что при изменении трека запускался скрипт album.sh
открываем конфиг (~/.moc/config), найдем и раскомментируем строку с параметров OnSongChange, приведем ее к следующему виду:

1
OnSongChange = "/home/YOUR_USERNAME/.scripts/album.sh"

На этом все, основная часть сриптов была найдена на просторах и-нета.
В комментарии замечания и проблемы, если таковые будут.

Posted on Понедельник, Июнь 28th, 2010 at 20:12:42 in Linux, Программирование | rss feed for comments| You can skip to the end and leave a response. Pinging is currently not allowed.

12 комментариев to “Mocp & Conky и обложка к альбому”

  1. hikkikamori Says:

    Автор, поясните пожалуйста, что значит в album.sh строчка:

    cover=`cat $HOME/.scripts/cover`

    cover — это переменная? Куда я должен класть обложки от альбома, в какую директорию, как называть, чтобы работала предлагаемая вами схема?

    И ещё не могли бы пояснить с gmail.py: как мне перезаписать данный файл для mail.ru?

    спасибо.

  2. Dominus Says:

    Да, cover это переменная, в которую загоняется название альбома, для работы скрипта единственное нужно создать директория для скриптов mkdir ~/.scripts и все, больше ничего настраивать не нужно.
    Насчет mail.ru там так не получиться сделать как на гугле, mail.ru насколько знаю не предоставляет xml-feed о состоянии почты, разве что через curl логиниться и потом парсить значение новых сообщений.

  3. hikkikamori Says:

    директорию ~/.scripts я создал как вы и описали в данной теме, и положил туда следующие скрипты:
    album.sh
    songs.sh
    конфиг в .moc поправил, все работает кроме обложек. Существует ли правило по которому надо как-то называть картинки обложек альбомов? Обложки с альбомов я храню в одной директории с *.mp3 файлами.

  4. Dominus Says:

    такс, подправил скрипт album.sh там в 6 строке знак заменился на html код.
    этот скрипт тянет обложку с и-нета при смене прослушиваемого альбома, так что картинки он не смотрит в локальных дирах, хотя такое и можно сделать при желании.
    если реализуете чтоб был просмотр сразу локальных директорий и только потом в и-нете буду признателен, и допишу к статье, если поделитесь кодом.

  5. hikkikamori Says:

    Я поправил, спасибо. Поставил Nightwish — Stargazers (Oceanborn). На http://www.albumart.org есть обложка к данному альбому Oceanborn и не одна. Картинки всё-же нет. Может не хватает какой-нибудь библиотеки?.. Идея брать обложки с локали мне сама душу греет. Если вдруг хватит моих усилий и нервов, и в результате получу положительный результат, то обязательно напишу.

  6. hikkikamori Says:

    Вот что выдаёт консоль:

    Conky: desktop window (1600003) is subwindow of root window (153)
    Conky: window type — normal
    Conky: drawing to created window (0x3a00001)
    Conky: drawing to double buffer
    Conky: not implemented obj type 44
    —2010-11-02 02:28:11— http://k0derz.ru/ip.php
    Распознаётся k0derz.ru… xxx.xxx.xx.xx
    Устанавливается соединение с k0derz.ru|xxx.xxx.xx.xx|:80… соединение установлено.
    Запрос HTTP послан, ожидается ответ… 200 OK
    Длина: 14 [text/html]
    Сохраняется в каталог: `STDOUT’.

    100%[======================================>] 14 —.-K/s в 0s

    2010-11-02 02:28:12 (659 KB/s) — `-’ сохранён [14/14]

    Conky: not implemented obj type 44
    Conky: not implemented obj type 44
    Conky: not implemented obj type 44
    Conky: not implemented obj type 44

    далее повторяется

  7. Dominus Says:

    попробуйте запустить этот скрипт в консоле (во время прослушивание трекка)
    sh ~/.scripts/album.sh

  8. hikkikamori Says:

    Попробовал, то же самое, может у меня старая версия conky? У меня стоит Debian, там обновляются репы очень редко. В репозиториях версия 1.6.0-2. Её и ставил.

  9. hikkikamori Says:

    Если верить этому посту http://ubuntuforums.org/showthread.php?t=1223883, то выхода у меня нет другого как компилить новую версию, при этом включить при компиляции imlib2…

  10. Dominus Says:

    conky -v
    и посмотреть наличие Imlib2
    потом нужно проверить качает ли скрипт обложку, после запуска скрипта (как показал выше) в директории ~/.scripts/
    должен появиться файл с названием .album откройте его любым просмотрещиком изображений, если там есть обложка тогда проблема в либах.

  11. hikkikamori Says:

    Compiled in features:

    System config file: /etc/conky/conky.conf

    X11:
    * Xdamage extension
    * Xdbe extension (double buffer)
    * xft
    вот результат на conky -v:

    Music detection:
    * mpd

    General features:
    * math
    * hddtemp
    * portmon
    * rss
    * wireless

    В ~/.scripts появился файл cover
    Если его открыть через текстовый редактор, то можно увидеть название альбома проигрываемого файла.

  12. Dominus Says:

    да, в этой версии нет поддержки изображений.
    файл .album он скрытый (ls -la ~/.scripts/)

Leave a Reply

Страница 1 из 11