分页: 1 / 1

偶的mpd全局快捷键配置

发表于 : 2010-01-18 21:20
emptyhua
感觉适合shell控的人阅读,便发到这里来了 :em06
---------------------------------------
换了好多播放器,最终还是回归mpd了… 配上快捷键和模糊搜索,好用多了。效果如下:

上一首,下一首可以使用notify-send提示

图片

快捷键调出搜索框,跳转到某一首歌

图片
配置过程如下,假设已经装好了mpd和mpc:
1 . 安装notify-send

代码: 全选

sudo apt-get install libnotify-bin
2 . 下载一个shell脚本 : mpc.sh,将脚本解压到 ~/bin/ 目录
3 . 配置全局快捷键,可用命令如下

代码: 全选

#停止
sh /home/yourname/bin/mpc.sh stop
#播放/暂停
sh /home/yourname/bin/mpc.sh toggle
#下一首
sh /home/yourname/bin/mpc.sh next
#上一首
sh /home/yourname/bin/mpc.sh prev
#弹出一个搜索窗口
sh /home/yourname/bin/mpc.sh popfav
偶的快捷键的配置

图片

Re: 偶的mpd全局快捷键配置

发表于 : 2010-01-18 21:23
leeaman
支持一个,不过这些键gnome不让我用~~~ :em20

Re: 偶的mpd全局快捷键配置

发表于 : 2010-01-18 22:22
xiooli
lz 的搜索框很山寨哦,呵呵,为啥不要 zenity 做搜索框呢?

Re: 偶的mpd全局快捷键配置

发表于 : 2010-01-19 0:37
xzap
和我自己在用的差不多,不过我是用遥控器控制的。
发下我在用的脚本
相比较下,我这个没有搜索框,不过用xosd来显示快进快退的进度

代码: 全选

#!/bin/bash 

jindu(){
killall osd_cat 2>/dev/null
xx=($(mpc|awk 'NR==2{print $0}'))
sj="${xx[2]}  ${xx[3]}"

jg=`echo ${xx[3]}|sed 's/(\(..\)\%)/\1/g'`
osd_cat -d 2 -O 2 -u black  -l 2 -p bottom -o 60 -A center -c green \
        -f "-adobe-helvetica-bold-r-normal-*-*-100-*-*-p-*-iso8859-1" \
        -T "$sj"\
       	-b percentage -P "$jg" &
}

case $1 in
n)
	mpc next
	killall notification-daemon  2>/dev/null
	notify-send `mpc|head -1`
;;
p)
	mpc prev
	killall notification-daemon  2>/dev/null
	notify-send `mpc|head -1`
;;
+)
	mpc seek +5
	jindu
;;
-)
	mpc seek -5
	jindu
;;
m)
	mpc toggle
	killall notification-daemon  2>/dev/null	
	notify-send `mpc|head -1`
;;

l)	
	ps -A |grep lrcdis 2>/dev/null && notify-send "歌词插件lrcdis正在运行,现在关闭" && killall lrcdis && exit
	lrcdis -m notify 2>/dev/null &
	exit
;;
esac

Re: 偶的mpd全局快捷键配置

发表于 : 2010-01-19 9:01
emptyhua
xiooli 写了:lz 的搜索框很山寨哦,呵呵,为啥不要 zenity 做搜索框呢?
:em03 不知道有zenity这种东西,就用gnome-terminal代替了~

Re: 偶的mpd全局快捷键配置

发表于 : 2010-01-19 9:07
emptyhua
xzap 写了:

代码: 全选

killall notification-daemon  2>/dev/null
哈哈,学习了,这样就不会出一堆提示了~
不过我的是下面才管用

代码: 全选

killall notify-osd
更新后的脚本

代码: 全选

#!/bin/sh
# Author : [email protected]
# Site : bluehua.org
ACTION=$1
DISPLAY=":0"
SELF="/home/${USER}/bin/mpc.sh"
case "$ACTION" in
#下一首
    next)
        killall mpc
        mpc next
        killall notify-osd  2>/dev/null 
        notify-send "Mpc Next" "`mpc`"
        ;;
#上一首
    prev)
        killall mpc
        mpc prev
        killall notify-osd  2>/dev/null 
        notify-send "Mpc Prev" "`mpc`"
        ;;
#停止
    stop)
        killall mpc
        mpc stop
        ;;
#播放
    play)
        killall mpc
        mpc toggle 
        ;;
#快捷搜索
    popfav)
        gnome-terminal --window --hide-menubar --geometry="50x4+300+200" --title="输入一个想要播放的模糊关键字" --command "sh ${SELF} playfav"
        ;;
    playfav)
        echo "输入关键字,会从匹配关键字的第一首开始播放"
        echo -n "keyword:"
        read keyword
        num="`mpc playlist | sed -n \"/${keyword}/{=;q}\"`"
        if [ -n "$num" ];then
            killall mpc
            mpc play $num
            killall notify-osd  2>/dev/null
            notify-send "Mpc playing" "`mpc`"
        else
            echo "没有匹配的曲目,任意键结束"
            read xx
        fi
        ;;
    *)
        exit 
        ;;
esac

Re: 偶的mpd全局快捷键配置

发表于 : 2010-01-19 11:43
xzap
emptyhua 写了:不过我的是下面才管用

代码: 全选

killall notify-osd
因为我用的是archlinux 没用ubuntu的notify

搜索那里用zenity应该会简单点,你现在的脚本,搜索那里太冗余了

zenity --entry 提示输入框,然后再将所有搜索到的歌曲放到 zenity --list
然后双击播放,效果应该会好一点。