Last active
August 29, 2015 14:15
-
-
Save TiZ-HugLife/5df3c05268dd5ce8e5e3 to your computer and use it in GitHub Desktop.
Quod Libet conky
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
update_interval 1.0 | |
update_interval_on_battery 5.0 | |
total_run_times 0 | |
alignment br | |
gap_x 83 | |
gap_y 15 | |
use_xft yes | |
override_utf8_locale yes | |
xftfont Liberation Sans:size=12 | |
border_width 0 | |
border_inner_margin 2 | |
border_outer_margin 0 | |
draw_shades yes | |
own_window yes | |
own_window_type desktop #Change to normal when using GNOME Shell | |
own_window_title QuodLibet-Conky | |
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager | |
own_window_transparent yes | |
own_window_argb_visual yes | |
max_text_width 0 | |
minimum_size 20 10 | |
default_color FFFFFF | |
color1 FFFFFF | |
text_buffer_size 65536 | |
double_buffer yes | |
no_buffers yes | |
lua_load ~/.conky/QLInfo/draw.lua | |
lua_draw_hook_pre draw 0x000000 0.35 16 0 0 16 | |
TEXT | |
${execp ~/.conky/QLInfo/qlinfo.sh -h -f"Liberation Sans" -F"Meguri P" -s9 -t12 -S64 -v0 -a76 -r4} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
update_interval 1.0 | |
update_interval_on_battery 5.0 | |
total_run_times 0 | |
alignment br | |
gap_x 2 | |
gap_y 2 | |
use_xft yes | |
override_utf8_locale yes | |
xftfont Liberation Sans:size=12 | |
border_width 0 | |
border_inner_margin 2 | |
border_outer_margin 0 | |
draw_shades yes | |
own_window yes | |
own_window_type desktop #Change to normal when using GNOME Shell | |
own_window_title QuodLibet-Conky-Cover | |
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager | |
own_window_transparent yes | |
own_window_argb_visual yes | |
max_text_width 0 | |
minimum_size 74 74 | |
default_color FFFFFF | |
color1 FFFFFF | |
text_buffer_size 65536 | |
double_buffer yes | |
no_buffers yes | |
lua_load ~/.conky/QLInfo/draw.lua | |
lua_draw_hook_pre draw_cover 0x000000 0.35 14 13 2 2 true | |
TEXT |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'cairo' | |
local function rgb_to_r_g_b(colour,alpha) | |
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha | |
end | |
local function check_ql() | |
local test = io.open("/tmp/.qlopen", "r") | |
print(test) | |
if test == nil then | |
return false | |
else | |
test:close() | |
return true | |
end | |
end | |
function conky_draw(bg_colour, bg_alpha, rad_tl, rad_tr, rad_br, rad_bl, v) | |
if conky_window == nil then return end | |
--if not check_ql() then return end | |
if v == nil then v = 0 end | |
local w = conky_window.width | |
local h = conky_window.height | |
local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, w, h) | |
local cr = cairo_create(cs) | |
cairo_move_to(cr,rad_tl,0) | |
cairo_line_to(cr,w-rad_tr,0) | |
cairo_curve_to(cr,w,0,w,0,w,rad_tr) | |
cairo_line_to(cr,w,h+v-rad_br) | |
cairo_curve_to(cr,w,h+v,w,h+v,w-rad_br,h+v) | |
cairo_line_to(cr,rad_bl,h+v) | |
cairo_curve_to(cr,0,h+v,0,h+v,0,h+v-rad_bl) | |
cairo_line_to(cr,0,rad_tl) | |
cairo_curve_to(cr,0,0,0,0,rad_tl,0) | |
cairo_close_path(cr) | |
cairo_set_source_rgba(cr,rgb_to_r_g_b(bg_colour,bg_alpha)) | |
cairo_fill(cr) | |
cairo_surface_destroy(cs) | |
cairo_destroy(cr) | |
end | |
function conky_draw_cover(bg_colour, bg_alpha, top, bottom, x, y, middle) | |
if conky_window == nil then return end | |
if top == nil then top = 0 end | |
if bottom == nil then bottom = 0 end | |
if x == nil then x = 0 end | |
if y == nil then y = 0 end | |
local w = conky_window.width | |
local h = conky_window.height | |
local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, w, h) | |
local cr = cairo_create(cs) | |
if middle then w = w / 2 end | |
cairo_move_to(cr,0,top) | |
cairo_line_to(cr,w,top) | |
cairo_line_to(cr,w,h-bottom) | |
cairo_line_to(cr,0,h-bottom) | |
cairo_line_to(cr,0,top) | |
cairo_close_path(cr) | |
cairo_set_source_rgba(cr,rgb_to_r_g_b(bg_colour,bg_alpha)) | |
cairo_fill(cr) | |
local image = cairo_image_surface_create_from_png("/tmp/conkycover.png") | |
if image then | |
cairo_set_source_surface(cr, image, x, y) | |
cairo_paint(cr) | |
end | |
cairo_surface_destroy(cs) | |
cairo_surface_destroy(image) | |
cairo_destroy(cr) | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Requires imagemagick. Configure Quod Libet's Picture Saver plugin to save | |
# the cover to /tmp/current.cover | |
([[ -z "$(pgrep quodlibet)" ]] || [[ ! -e ~/.quodlibet/current ]]) && exit 0 | |
VOFFSET=30 | |
HOFFSET=112 | |
FONT="Avenir LT 65 Medium" | |
FALLBACKFONT="WenQuanYi Micro Hei" # In case of Japanese music. | |
FONTSIZE=10 | |
TITLESIZE=14 | |
IMGSIZE=96 | |
RADIUS=12 | |
SHADOWTYPE=0 | |
while getopts :s:t:S:f:F:v:a:r:hH OPT; do | |
case $OPT in | |
s) FONTSIZE="$OPTARG" ;; | |
t) TITLESIZE="$OPTARG" ;; | |
S) IMGSIZE="$OPTARG" ;; | |
f) FONT="$OPTARG" ;; | |
F) FALLBACKFONT="$OPTARG" ;; | |
v) VOFFSET="$OPTARG" ;; | |
a) HOFFSET="$OPTARG" ;; | |
r) RADIUS="$OPTARG" ;; | |
h) SHADOWTYPE=1 ;; | |
H) SHADOWTYPE=2 ;; | |
esac | |
done | |
[[ "$SHADOWTYPE" = "1" ]] && VOFFSET=$((VOFFSET + 10)) | |
cd /tmp | |
CUR="$(quodlibet --print-playing '${font %font%:Bold:size='$TITLESIZE'}${alignr} <title>${font %font%:Bold:size='$FONTSIZE'}<artist| | |
${alignr} <artist>>${font %font%:size='$FONTSIZE'}<album| | |
${alignr} <album>><website| | |
${alignr} <website>>')" | |
if [[ "$(cat .current.song)" != "$CUR" ]]; then | |
IN=current.cover | |
[[ ! -e $IN ]] && IN=~/.conky/QLInfo/nocover.png | |
convert $IN -resize ${IMGSIZE}x${IMGSIZE} .qli-step1.png | |
convert .qli-step1.png -format "roundrectangle 0,0 %[fx:w-1],%[fx:h-1] $RADIUS,$RADIUS" \ | |
info: > .qli-draw.mvg | |
convert .qli-step1.png -border 0 -alpha transparent -background none -fill \ | |
white -stroke none -strokewidth 0 -draw "@.qli-draw.mvg" .qli-mask.png | |
convert .qli-step1.png -alpha set -bordercolor none -border 0 .qli-mask.png \ | |
-compose DstIn -composite .qli-step2.png | |
convert .qli-step2.png -background none -gravity center -extent ${IMGSIZE}x${IMGSIZE} \ | |
.qli-step3.png | |
if [[ "$SHADOWTYPE" = "1" ]]; then | |
convert .qli-step3.png \( +clone -background black -shadow 90x3+0+0 \) \ | |
+swap -background none -layers merge +repage conkycover.png | |
elif [[ "$SHADOWTYPE" = "2" ]]; then | |
convert .qli-step3.png +level 0%,0% .qli-step4.png | |
composite -compose Dst_Over -geometry +1+1 .qli-step4.png .qli-step3.png \ | |
conkycover.png | |
else | |
mv .qli-step3.png conkycover.png | |
fi | |
rm .qli-step*.png .qli-mask.png .qli-draw.mvg | |
echo "$CUR" > .current.song | |
fi | |
if (echo "$CUR" | grep -P '[^[:ascii:]]' > /dev/null); then | |
CUR="$(echo "$CUR" | sed -e "s/%font%/$FALLBACKFONT/g")" | |
else | |
CUR="$(echo "$CUR" | sed -e "s/%font%/$FONT/g")" | |
fi | |
IMGDIFF=$((588 - IMGSIZE)) | |
#echo -e '${image /tmp/conkycover.png -p '$IMGDIFF',0}${voffset '$VOFFSET'}'"$CUR"'${font}' | |
#echo -e '${voffset '$VOFFSET'}'"$CUR"'${font}' | |
echo -e "$CUR" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment