https://linuxtoy.org/archives/lrcdis.html
http://www.oschina.net/p/lrcdis/
http://code.google.com/p/lrcdis/downloads/list
#!/bin/bash
# Name: lrcdis (外挂式显歌词脚本)
# License: GPLv3
# Credit: xiooli,solcomo,bones7456,oldherl (2008-2009)
# Encoding: UTF-8
# Thanks to: 搜狗歌词搜索
Version=090908
#是否开启调试信息
Debug=0
Conf_file=~/.config/lrcdis.conf
Cookie_file=/dev/shm/lrcdis-cookie-file-$USER-"`date +"%s.%N"`-$RANDOM"
#=========================定义函数=============================
INIT() {
#程序初始化函数
#没有参数,正确执行如果没有配置文件则会产生配置文件并加载配置,有配置文件则加载配置文件
[ -f "$Conf_file" ] || cat<< EOF > "$Conf_file"
#===================LRCDIS-CONFIG================
#保存lrc文件的文件夹
Lrcdir=~/.lyrics
#显示模式: osd|notify|fifo|title|cli|kdialog|echo (将歌词输出到一个管道文件,以便用其他命令访问)
Dismode=osd
#播放器类型: mpd|mocp|muine|audacious|juk|amarok|exaile|gmusicbrowser|quodlibet|qmmp|rhythmbox|banshee|audacious2|xmms2
Player=rhythmbox
#获取歌曲名称方式: id3(id3标签方式)|filename(文件名方式)
Readname=id3
#自身时间发生器产生时间的间隔(最好小于1秒)
Sleeptm=0.6
#======================[cli]=====================
#命令行显示时的参数
#一屏显示行数
Row=10
#歌曲标题的颜色(见最后的颜色定义)
Titlecolor=green
#歌曲歌词的颜色(见最后的颜色定义)
Lyricscolor=blue
#==============[osd, notify & kdialog]=============
#osd显示时的参数
#osd显示位置:top, bottom
Vposition=top
#osd对齐位置:left, right, center
Halignment=center
#osd最长显示时间(超过则隐藏,单位毫秒?)
Timeout=10000
#span size
Size=20000
#字体颜色: green|white|blue|yellow|grey|...
#注意,这个颜色与cli模式的颜色不是一回事
Foreground=green
#动画效果: off, on
Animations=off
#是否加新行,以免挡住panel等: off|on
Addnewline=off
#notify模式的图标文件名(只支持绝对路径)
NotifyIcon=""
#kdialog显示的timeout
Ktimeout=5
#====================[lrc]======================
#从何处下载歌词: SOGOU_URI,BAIDU_URI,QIANQIAN_URI
Uri=SOGOU_URI
#是否检查歌词文件,yes/no,yes将会检查歌词文件是否正确,若不正确则重新下载歌词
Checklrc=yes
#下载歌词的最大重试次数,不宜过大
Maxdowntimes=4
#================================================
#定义颜色(仅在cli模式下使用)
black="30"
red="31"
green="32"
yellow="33"
blue="34"
magenta="35"
cyan="36"
white="37"
#======================END========================
EOF
. "$Conf_file"
}
DEBUGECHO() {
[ "$Debug" = 1 ] && echo " $@" >&2
}
DO_NAME() {
# 1 argument, the filename
# removing .mp3/.wma/.ogg/.ape/.flac etc.
local a
a="`basename "$1"`"
#理论上说以 . 分隔的最后那部分是扩展名
a="${a%.[a-zA-Z0-9]*}"
#a="${a/%.mp3/}"; a="${a/%.MP3/}"
#a="${a/%.wma/}"; a="${a/%.WMA/}"
#a="${a/%.ogg/}"; a="${a/%.OGG/}"
#a="${a/%.ape/}"; a="${a/%.APE/}"
#a="${a/%.flac/}"; a="${a/%.FLAC/}"
# 去掉前置的一位或两位数字和".",一般是专辑中的序号
a="${a/#[0-9]./}"; a="${a/#[0-9][0-9]./}"
echo "$a"
}
USAGE() {
#显示帮助信息的函数
#没有参数,执行显示帮助信息
cat << EOF
lrcdis $Version (http://code.google.com/p/lrcdis)
用法: $0 [选项]
选项:
-C, --config <配置文件路径>
指定配置文件 (默认: ~/.config/lrcdis.conf)
-s, --save-dir <保存目录>
指定歌词的保存目录 (默认: ~/.lyrics)
-d, --download <歌曲名>
仅下载歌词, 保存至歌词目录
-E, --edit-conf
进入编辑配置文件的模式
-p, --player <播放器>
优先检查此播放器,如果此播放器未运行则继续检查其他播放器
-m, --mode <显示模式>
以 <显示模式> 显示歌词,详细参数见下面:
-m osd
以osd模式显示歌词(needs gnome-osd)
-m notify
以notify模式显示歌词(needs notify-send)
-m fifo
将歌词输出到管道文件/dev/shm/lrcfifo
-m title
将歌词输出到终端的标题中(支持大多数终端)
-m kdialog
将歌词以kdialog的通知模式输出
-m echo
将歌词以普通echo模式输出
-m cli
以cli模式显示歌词
-D, --debug
Debug mode
-h, --help
显示本帮助信息并退出
-v, --version
显示版本号并退出
备注:不加任何选项则以 $Conf_file 为配置文件初始化运行
EOF
}
PLAYER_USERS() {
#一个参数,播放器进程名,返回该进程可能对应的用户ID.
id -u | tr -d "\n"
if [ "$1" = "mpd" ];then
echo -n ",0" #mpd以root运行算合法
if id -u mpd >/dev/null 2>&1 ;then
转载于:https://www.cnblogs.com/lixuebin/p/10814525.html