I am LAZY bones? AN ancient AND boring SITE

2006年 12月 的归档

conky的配置

conky这东西不错,但是以前好像是叫torsmo的,不知道什么时候改名了!呵呵。在网上找了一下它的配置,发现这篇文章还不错,E文的原文在: http://conky.sourceforge.net/gnome.html

转一下:

引用:
Conky and Gnome
How to configure gnome and conky to work together.1) Overview
1)概述The purpose of this document is to give a basic understanding of how to use Conky with the Gnome Window Manager. Gnome uses, by default, a file manager called nautilus, which also manages the icons on the desktop. For some reason, the way nautilus draws the icons to the desktop, conflicts with conky drawing to the desktop, usually causing the icons to disappear, or causing conky to show, then quickly disappear until it’s next update. Here, I will present a few ways to get around this.
这篇文档的目的是给一些关于如何在Gnome管理器中使用Conky的基本理解。Gnome下默认的文件管理器叫nautilus,它同样也用来管理图标和桌面。通常由于某些原因,nautilus在桌面上描绘图标与conky冲突,通常会造成桌面上图标消失不见,或者是conky消失,然后在更新时又迅速出现。这儿,我将要介绍一些关于这个的方法。

2) First Solution – Conky and devilspie
2)第一种解决方法 – Conky和devilspie

By default, conky will draw to the “root” window (your desktop). This is what causes the conflict with nautilus. That being said, conky can operate fairly well with just it’s -o (own window) option.
conky默认会描绘“根”窗口(你的桌面)。这就是与nautilus冲突的原因。也就是说conky加上-o(own window)参数将能够很好的清楚的运行。

NOTE: In order to get conky to draw it’s own window, you must either run conky as `conky -o` or set “own_window yes” in your .conkyrc
注解:为了让conky描绘自己的窗口(own window),你必须使用‘conky -o’运行conky或者在~/.conkyrc中设置成“own_window yes”

The only problem with telling conky to draw it’s own window in gnome, is that it will appear on only a single virtual desktop, and it will show on the pager and takbar. In order to fix this, you must use a Window Management program (some examples include wmctrl and devilspie). For this example, I will show you how to configure devilspie (versions <=0.12 and >=0.13) to spread conky across all desktops and hide it from the pager and taskbar. First, Install devilspie. (This may vary by distribution)
告诉conky在gnome中描绘自己的own window的唯一问题是它只能显示在单一的虚拟桌面上,并且它将显示在页面调度程序和任务栏里。为了修复这些,你必须使用窗口管理程序(例如 wmctrl和devilspie)。在这个例子里,我会向你展示如何配置devilspie(版本<=0.12 和 >=0.13)让conky穿越所有桌面并且在页面调度程序和任务栏里隐藏。首先,安装devilspie。(不同发行版本的安装方法是多样化的)

Homepage: http://www.burtonini.com/blog/computers/devilspie
主页:http://www.burtonini.com/blog/computers/devilspie
Gentoo Install: emerge -av devilspie
Gentoo安装:emerge -av devilspie
Debian Install: apt-get install devilspie
Debian安装:apt-get install devilspie
All others: Find a binary package for your distribuiton or build from source, that is beyond the scope of this document.
其它:找到你所使用发行版本的二进制包或者从源码编译,这些超出了本文的范围。

Next, you will have to configure devilspie. Please make sure you configure it for the CORRECT VERSION. The configuration CHANGED as of devilspie version 0.13, and it is NOT compatible with previous configurations.
接着,你需要配置devilspie。请确定你所配置的是正确版本。0.13的版本配置有所改变,它将不在兼容与以前的配置文件。

Version 0.12 and below:
版本0.12和以下:

Create a file called .devilspie.xml in your user’s home (~) directory. A basic configuration of devilspie is as follows:
在你的家目录下创建一个名为.devilspie.xml的文件。基本的配置如下:

Code: <?xml version=”1.0″?>
<!DOCTYPE devilspie SYSTEM “devilspie.dtd”>
<devilspie>
<!– This flurb configures devilspie to watch for a window called “conky” –>
<flurb name=”conky”>
<matchers>
<matcher name=”DevilsPieMatcherWindowName”>
<property name=”application_name” value=”conky”/>
</matcher>
</matchers>
<!– The following controls what actions are preformed –>
<actions>
<!– Hide conky from the taskbar and the pager –>
<action name=”DevilsPieActionHide”>
<property name=”skip-tasklist” value=”TRUE”/>
<property name=”skip-pager” value=”TRUE”/>
</action>
<!– Show conky on all workspaces –>
<action name=”DevilsPieActionSetWorkspace”>
<property name=”pinned” value=”TRUE”/>
</action>
</actions>
</flurb>
</devilspie>

Version 0.13 and later:
版本0.13和以后:

Create a file called conky.ds in a directory called .devilspie your user’s home (~) directory (to create the directory, use `mkdir .devilspie` and to create the file, `touch .devilspie/conky.ds`). A basic configuration of devilspie is as follows:
在你的家目录下创建一个名为.devilspie的目录,并在其下创建conky.ds的配置文件(使用‘mkdir .devilspie’创建目录,使用‘touch .devilspie/conky.ds’创建文件)。基本的devilspie配置如下:

Code:

(if (matches (window_name) “.*conky”) (begin pin (skip_pager) (skip_tasklist)))

Configuring Gnome
配置Gnome

Once conky and devilspie are properly configured, you can make them both automatically start when Gnome starts.
一旦conky和evilspie配置好了,你就能让它们在Gnome启动的时候同时自动运行。
Click Desktop -> Preferences -> Sessions, select the “Startup Programs” tab, then click the “Add” button – use “devilspie” for the startup command, then click “Ok”. Click the “Add” button again, and use “conky” for the startup command (or use “conky -o” if you didn’t set “own_window yes” in .conkyrc) click close, and the next time you login, devilspie and conky will automatically start and work right!
点击 桌面 ->首选项 ->会话,选择”启动程序“栏,点击”添加“按钮 – 在启动命令中输入”devilspie“,然后点击确定。再以同样的方式添加”conky“(如果在.conkyrc中没有设置”own_window yes“,输入”conky -o“)点击关闭,这样当你下次登陆时,devilspie和conky将会自动启动并正确工作!

3) Second Solution – Disabling Nautilus
3) 第二种解决方法 – 禁用Nautilus

Rather than installing devilspie (or another window management application), some users may find it helpful to instead keep nautilus from drawing to the root window. To do this, run gconf-editor and uncheck show_desktop in Apps/Nautilus/Preferences/.
与其安装devilspie(或者其它窗口管理程序),一些使用者发现不如禁止nautilus绘制根窗口来得有用。为了做到这些,运行配置编辑器(gconf-editor),在App/Nautilus/Perferences里的show_desktop里设置。

The downside of disabling nautilus from drawing to the root window is that you will no longer have icons on the desktop, or be able to right-click on the desktop.
禁止nautilus绘制根窗口的结果,你将不在拥有桌面上的图标或者是右键点击。

This project is also generously hosted by sourceforge. SourceForge.net Logo

Valid XHTML 1.0 Strict Valid CSS!

下面是我的配置文件:

# Conky sample configuration
#
# the list of variables has been removed from this file in favour
# of keeping the documentation more maintainable.
# Check http://conky.sf.net for an up-to-date-list.# set to yes if you want Conky to be forked in the background
background no# X font when Xft is disabled, you can pick one with program xfontsel
#font 5×7
font 6×10
#font 7×13
#font 8×13
#font 9×15
#font *mintsmild.se*
#font -*-*-*-*-*-*-34-*-*-*-*-*-*-*

# Use Xft?
use_xft no

# Set conky on the bottom of all other applications
on_bottom yes

# Xft font when Xft is enabled
xftfont Bitstream Vera Sans Mono:size=8

# Text alpha when using Xft
xftalpha 0.8

# Print everything to stdout?
# out_to_console no

# MPD host/port
# mpd_host localhost
# mpd_port 6600
# mpd_password tinker_bell

# Print everything to console?
# out_to_console no

# mail spool
# mail_spool $MAIL

# Update interval in seconds
update_interval 0.5

# 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

# If own_window is yes, you may use type normal, desktop or override
own_window_type override

# Use pseudo transparency with own_window?
own_window_transparent yes

# If own_window_transparent is set to no, you can set the background colour here
own_window_colour hotpink

# If own_window is yes, these window manager hints may be used
#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 280 5

# Draw shades?
draw_shades yes

# Draw outlines?
draw_outline no

# Draw borders around text
draw_borders no

# Draw borders around graphs
draw_graph_borders yes

# Stippled borders?
stippled_borders 8

# border margins
border_margin 4

# border width
border_width 1

# Default colors and also border colors
default_color yellow1
default_shade_color black
default_outline_color black

# Text alignment, other possible values are commented
#alignment top_left
alignment top_right
#alignment bottom_left
#alignment bottom_right
#alignment none

# Gap between borders of screen and text
# same thing as passing -x at command line
gap_x 12
gap_y 12

# 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 no

# mldonkey_hostname Hostname for mldonkey stuff, defaults to localhost
# mldonkey_port Mldonkey port, 4001 default
# mldonkey_login Mldonkey login, default none
# mldonkey_password Mldonkey password, default none

# boinc (seti) dir
# seti_dir /opt/seti

# Allow for the creation of at least this number of port monitors (if 0 or not set, default is 16)
#min_port_monitors 16

# Allow each port monitor to track at least this many connections (if 0 or not set, default is 256)
#min_port_monitor_connections 256

# none, xmms, bmp, audacious, infopipe (default is none)
#xmms_player none

# variable is given either in format $variable or in ${variable}. Latter
# allows characters right after the variable and must be used in network
# stuff because of an argument

# stuff after ‘TEXT’ will be formatted on screen

TEXT

${color DeepPink1}$nodename – $sysname $kernel on $machine
${color green}$stippled_hr
${color lightgrey}CPU Freq:$color $freq_dyn_g GHz
${color green}$stippled_hr
${color lightgrey}Uptime:$color $uptime ${color lightgrey}- Load:$color $loadavg
${color lightgrey}CPU Usage:${color #cc2222} $cpu% ${cpubar}
${color red}${cpugraph 0000ff 00ff00}
${color lightgrey}RAM Usage:$color $mem/$memmax – $memperc% ${membar}
${color lightgrey}Swap Usage:$color $swap/$swapmax – $swapperc% ${swapbar}
${color lightgrey}Processes:$color $processes ${color grey}Running:$color $running_processes
${color green}$stippled_hr
${color lightgrey}Networking:
Down:${color #8844ee} ${downspeed eth0} k/s${color lightgrey} ${offset 80}Up:${color #22ccff} ${upspeed eth0} k/s
${color #0000ff}${downspeedgraph eth0 32,150 ff0000 0000ff} ${color #22ccff}${upspeedgraph eth0 32,150 0000ff ff0000}
${color green}$stippled_hr
${color lightgrey}File systems:
/ $color${fs_used /}/${fs_size /} ${fs_bar /}
/home $color${fs_used /home}/${fs_size /home} ${fs_bar /home}
/ubuntu $color${fs_used /ubuntu}/${fs_size /ubuntu} ${fs_bar /ubuntu}
${color green}$stippled_hr
${color #88aadd}${alignc}$mpd_status
${color}Name PID CPU% MEM%
${color #ddaa00} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1}
${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2}
${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3}
${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4}
${color lightgrey} ${top name 5} ${top pid 5} ${top cpu 5} ${top mem 5}
${color green}$stippled_hr
${color #ddaa00}Port(s)${alignr}#Connections
$color ALL: ${alignr}$color ${tcp_portmon 1 65535 count}
$color mpd: ${alignr}$color ${tcp_portmon 6600 6600 count}
$color sshd: ${alignr}$color ${tcp_portmon 22 22 count}
$color torrent: ${alignr}$color ${tcp_portmon 6881 6999 count}
${color #ddaa00}Remote Address ${alignr} Local Service/Port$color
${tcp_portmon 1 65535 rhost 0} ${alignr} ${tcp_portmon 1 65535 lservice 0}
${tcp_portmon 1 65535 rhost 1} ${alignr} ${tcp_portmon 1 65535 lservice 1}
${tcp_portmon 1 65535 rhost 2} ${alignr} ${tcp_portmon 1 65535 lservice 2}
${tcp_portmon 1 65535 rhost 3} ${alignr} ${tcp_portmon 1 65535 lservice 3}
${tcp_portmon 1 65535 rhost 4} ${alignr} ${tcp_portmon 1 65535 lservice 4}
${tcp_portmon 1 65535 rhost 5} ${alignr} ${tcp_portmon 1 65535 lservice 5}
${tcp_portmon 1 65535 rhost 6} ${alignr} ${tcp_portmon 1 65535 lservice 6}
${tcp_portmon 1 65535 rhost 7} ${alignr} ${tcp_portmon 1 65535 lservice 7}
${tcp_portmon 1 65535 rhost 8} ${alignr} ${tcp_portmon 1 65535 lservice 8}
${tcp_portmon 1 65535 rhost 9} ${alignr} ${tcp_portmon 1 65535 lservice 9}
${tcp_portmon 1 65535 rhost 10} ${alignr} ${tcp_portmon 1 65535 lservice 10}
${tcp_portmon 1 65535 rhost 11} ${alignr} ${tcp_portmon 1 65535 lservice 11}
${tcp_portmon 1 65535 rhost 12} ${alignr} ${tcp_portmon 1 65535 lservice 12}
${tcp_portmon 1 65535 rhost 13} ${alignr} ${tcp_portmon 1 65535 lservice 13}
${tcp_portmon 1 65535 rhost 14} ${alignr} ${tcp_portmon 1 65535 lservice 14}

附效果图:

终于把mid3v2命令加到下载百度歌曲的脚本里面了

如下,程序会自动判断有没有安装mid3v2,如果装了就会把下载的歌曲原来的id3信息删掉,再设置歌曲名和歌手名,再也不怕歌曲里有乱七八糟的广告信息了。

代码:
#!/bin/bash
#Copyright (c) 2005 ubuntu.org.cn
#License: GPLv2
#强烈建议安装axel(多线程下载工具)和mid3v2(包含在python-mutagen里,用于修改歌曲的id3信息)#mp3的地址
SOURCE=”http://list.mp3.baidu.com/list/newhits.html”

#保存mp3的目录
SAVE=”${HOME}/baidump3″

#下载重试次数
TRYCOUNT=2

#临时目录
TMP=”/tmp/${USER}”

#创建下载目录
if [ ! -d “${SAVE}” ];then
mkdir -p “${SAVE}”
fi

#创建临时下载目录
if [ -d “${TMP}” ];then
rm -rf “${TMP}”
fi
mkdir -p “${TMP}”

echo “开始下载百度最新100首歌曲列表”
wget -O ${TMP}/mp3.html ${SOURCE}
echo “下载百度最新100首歌曲列表完成。”

#转换网页编码
iconv -f gbk -t utf8 ${TMP}/mp3.html |\

grep ” href=\”http://mp3.baidu.com/m” |\

#将mp3list.txt所有开头的空格去掉
sed -e ‘s/ *//’ |\

#将mp3list.txt所有开头的tab去掉
sed -e ‘s/\t*//’ |\

#将mp3list.txt所有全角空格去掉
sed -e ‘s/ //g’ |\

#将所有的回车符去掉
sed ‘:a;N;$!ba;s/\n/,/g’ |\

#在td>,后面加上回车符,一行表示一个mp3文件。
sed -e ‘s/,<td/\n<td/g’ |\
sed -e ‘s/td>,/td>\n/g’ |\

#删除<td width=”30%”> <td> </td> <td…FFFFFF”> <p> </p>
sed -e ‘s/<td width=”30%”>//g’ |\
sed -e ‘s/<td>//g’ |\
sed -e ‘s/<\/td>//g’ |\
sed -e ‘s/<p>//g’ |\
sed -e ‘s/<\/p>//g’ |\
sed -e ‘s/<td.*”border”>//g’ |\

#删除</a>…”_blank”>
sed -e ‘s/<\/A>\/<A.*_blank>/、/g’ |\
sed -e ‘s/<\/A>/<\/a>/g’ |\
sed -e ‘s/<\/a>.*_blank>/-/g’ |\
#sed -e ‘s/<\/a>.*_blank”>/-/g’ |\
#删除)
sed -e ‘s/<\/a>)/<\/a>/g’ |\

#删除&
sed -e ‘s/\&\;/\//g’ >${TMP}/mp3list.txt

#得到:<a href=”http://mp3.baidu.com/m?tn=baidump3&ct=134217728&lm=-1&li=2&word=Baby%20Baby%20tell%20me%20%CD%F5%D0%C4%C1%E8″ target=”_blank”>Baby ,Baby tell me-王心凌</a>

#取得行号,循环
line=$(awk ‘END{print NR}’ ${TMP}/mp3list.txt)
i=1;
while((i<=line));do
downed=0;
mpline=`awk ‘NR=='”$i”” ${TMP}/mp3list.txt`
url=`echo $mpline | sed -e ‘s/<a href=”//g’ | sed ‘s/\ target.*//g’ | sed ‘s/”//g’ | cat`
name=`echo $mpline | sed -e ‘s/.*_blank”>//g’ | sed -e ‘s/.*_blank>//g’ |\
sed -e ‘s/<\/a>//g’ | sed -e ‘s/\//-/g’ | sed -e ‘s/:/-/g’ | sed -e ‘s/”/’\”/g’ | cat`

#检查是否已经下载过这首歌,如果下载过,放弃
if [ -e “${SAVE}/${name}.mp3” ] || [ -e “${SAVE}/${name}.wma” ]; then
echo -e “\e[1;6m\e[1;31m发现 ${name} 下载过,忽略,继续下一首。\e[1;6m\e[00m”
((i++))
continue;
fi

echo “开始通过 $url 下载 $name”;
wget -O ${TMP}/down.html $url
echo “获取 $name 下载列表完成。”;

#down.txt为有效的下载地址
iconv -f gbk -t utf8 -c ${TMP}/down.html | grep “onclick=\”return ow(this)\”” |\
sed -e ‘s/.*<a href=”//g’ | sed -e ‘s/” target=”_blank”.*//g’ > ${TMP}/down.txt

#size.txt为有效的下载文件大小
iconv -f gbk -t utf8 -c ${TMP}/down.html | grep “M<\/td>” |\
sed -e ‘s/<td>//g’ | sed -e ‘s/ M<\/td>//g’ > ${TMP}/size.txt

#down.txt与size.txt合并而在的down_size.txt文件中字段之间以”`”作为分隔符
paste -d ‘`’ ${TMP}/size.txt ${TMP}/down.txt > ${TMP}/down_size.txt

#排序
sort -n -r ${TMP}/down_size.txt > ${TMP}/down_size_sort.txt

#去掉后面的尺寸
sed ‘s/.*`//’ ${TMP}/down_size_sort.txt > ${TMP}/temp.txt

##### 析取出mp3 的下载地址或 wma的下载地址 ##############
grep -i “word=mp3” ${TMP}/temp.txt > ${TMP}/down_mp3.txt
grep -i “word=wma” ${TMP}/temp.txt > ${TMP}/down_wma.txt

downline_mp3=$(awk ‘END{print NR}’ ${TMP}/down_mp3.txt);
downline_wma=$(awk ‘END{print NR}’ ${TMP}/down_wma.txt);
echo -e “\e[1;6m\e[1;31m发现 ${downline_mp3} 个名为 ${name}.mp3 下载地址。\e[1;6m\e[00m”
echo -e “\e[1;6m\e[1;31m发现 ${downline_wma} 个名为 ${name}.wma 下载地址。\e[1;6m\e[00m”
# 初始化计数器
j=1;
# 优先下载mp3格式的歌曲
while((j<=downline_mp3)); do
mp3=`awk ‘NR=='”$j”” ${TMP}/down_mp3.txt | sed -e ‘s/ /\\ /g’`
echo -e “\e[1;6m\e[1;31m正在下载${name}.mp3\e[1;6m\e[00m”
#echo -e “\e[1;6m\e[1;31m中转页面地址为${mp3}\e[1;6m\e[00m”
wget -O “${TMP}/transit.html” “$mp3”
realURL=`iconv -f gbk -t utf8 -c ${TMP}/transit.html | grep “<li class=\”li\” style=\”margin-right:10px;\”>” | sed ‘s/.*href=”//’ | sed ‘s/” target=”_blank”>.*//’`
#echo -e “\e[1;6m\e[1;31m真实下载地址为${realURL}\e[1;6m\e[00m”
if [ x`which axel` != x”” ];then
axel -n 7 -a -o “${TMP}/${name}.mp3” “${realURL}”
else
#wget太慢了。但是如果没有安装axel,可以把上面一行注释掉,用下面一行代替
wget -c –tries=$TRYCOUNT $realURL -O “${TMP}/${name}.mp3”
fi
if [ “$?” = 0 ]; then
if [ `file -ib “${TMP}/${name}.mp3” | sed -e ‘s/\/.*//g’` = “audio” ]; then
if [ x`which mid3v2` != x”” ];then
title=`echo $name | sed -e ‘s/-.*//g’`
artist=`echo $name | sed -e ‘s/.*-//g’ | sed -e ‘s/.mp3//g’ | sed -e ‘s/.wma//g’`
mid3v2 -D “${TMP}/${name}.mp3”
mid3v2 -t “${title}” -a “${artist}” “${TMP}/${name}.mp3”
fi
mv “${TMP}/${name}.mp3” “${SAVE}/${name}.mp3”
downed=1;
break;
else
echo -e “\e[1;6m\e[1;31m下载 ${name}.mp3 文件无效,正在删除重新下载\e[1;6m\e[00m”
rm “${TMP}/${name}.mp3”;
((j++))
fi
else
echo -e “\e[1;6m\e[1;31m下载 ${name}.mp3 文件无效,正在删除重新下载\e[1;6m\e[00m”
rm “${TMP}/${name}.mp3”;
((j++))
fi
done

#如果下载成功继续下其余的歌
#continue用于跳过循环体中的后续命令
if [ “$downed” = 1 ] ; then
((i++))
echo -e “\e[1;7m\e[1;41m下载 $name 成功\e[1;7m\e[00m”
continue;
fi

# 如果没有mp3格式的则下载wma格式的歌
j=1;
while((j<=downline_wma)); do
wma=`awk ‘NR=='”$j”” ${TMP}/down_wma.txt`
echo -e “\e[1;6m\e[1;31m正在下载${name}.wma\e[1;6m\e[00m”

#echo -e “\e[1;6m\e[1;31m中转页面地址为${mp3}\e[1;6m\e[00m”
wget -O “${TMP}/transit.html” “$wma”
realURL=`iconv -f gbk -t utf8 -c ${TMP}/transit.html | grep “<li class=\”li\” style=\”margin-right:10px;\”>” | sed ‘s/.*href=”//’ | sed ‘s/” target=”_blank”>.*//’`
#echo -e “\e[1;6m\e[1;31m真实下载地址为${realURL}\e[1;6m\e[00m”
if [ x`which axel` != x”” ];then
axel -n 7 -a -o “${TMP}/${name}.wma” “${realURL}”
else
#wget太慢了。但是如果没有安装axel,可以把上面一行注释掉,用下面一行代替
wget -c –tries=$TRYCOUNT $realURL -O “${TMP}/${name}.wma”
fi
if [ “$?” = 0 ]; then
if [ `file -ib “${TMP}/${name}.wma” | sed -e ‘s/\/.*//g’` = “application” ]; then
#title=`echo $name | sed -e ‘s/-.*//g’`
#artist=`echo $name | sed -e ‘s/.*-//g’ | sed -e ‘s/.mp3//g’ | sed -e ‘s/.wma//g’`
#mid3v2 -D “${TMP}/${name}.wma”
#mid3v2 -t “${title}” -a “${artist}” “${TMP}/${name}.wma”
mv “${TMP}/${name}.wma” “${SAVE}/${name}.wma”
downed=1;
break;
else
echo -e “\e[1;6m\e[1;31m下载 ${name}.wma 文件无效,正在删除重新下载\e[1;6m\e[00m”
rm “${TMP}/${name}.wma”;
((j++))
fi
else
echo -e “\e[1;6m\e[1;31m下载 ${name}.wma 文件无效,正在删除重新下载\e[1;6m\e[00m”
rm “${TMP}/${name}.wma”;
((j++))
fi
done

((i++))
if [ “$downed” = 1 ] ; then
echo -e “\e[1;7m\e[1;41m下载 $name 成功\e[1;7m\e[00m”
else
echo -e “\e[1;7m\e[1;41m下载 $name 失败\e[1;7m\e[00m”
fi
done
rm -fr ${TMP}
exit 0

编辑歌曲id3信息的命令行工具

命令行下更新mp3的id3v2的信息工具:

代码:
sudo apt-get install python-mutagen

这里面包含了几个有用的命令行小工具。其中mid3iconv可以把歌曲中原有的非utf8的id3信息转换成uft8编码; mid3v2可以自己设置id3信息。
mid3v2用法如下:

代码:
mid3v2 -t “蝴蝶泉边” -a “黄雅莉” 蝴蝶泉边-黄雅莉.mp3

呵呵,下次把这个东西写到百度新歌的下载脚本里面去就爽了。

另外还有一个基于java的小工具,功能和mid3iconv差不多,也是转换编码用的,给出主页地址:
http://www.cs.berkeley.edu/~zf/id3iconv/

torsmo原来已经改名叫conky了啊

装了edgy以后一直在找torsmo,以前dapper的源里面是有的,但现在没有了,我觉得挺好用的。
后来才发现已经改名叫conky了。呵呵,还是一样的好用!