sh/bash/dash/ksh/zsh等Shell脚本
-
emptyhua
- 帖子: 18
- 注册时间: 2008-06-10 12:31
#1
帖子
由 emptyhua » 2010-01-18 21:20
感觉适合shell控的人阅读,便发到这里来了
---------------------------------------
换了好多播放器,最终还是回归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
偶的快捷键的配置

-
leeaman
- 帖子: 30702
- 注册时间: 2007-02-02 18:14
- 系统: debian sid
#2
帖子
由 leeaman » 2010-01-18 21:23
支持一个,不过这些键gnome不让我用~~~

醉了星星,醉月亮●●●●●The Long Way To Go(*^_^*)
-
xiooli
- 帖子: 6956
- 注册时间: 2007-11-19 21:51
- 来自: 成都
-
联系:
#3
帖子
由 xiooli » 2010-01-18 22:22
lz 的搜索框很山寨哦,呵呵,为啥不要 zenity 做搜索框呢?
-
xzap
- 帖子: 256
- 注册时间: 2006-08-24 21:25
#4
帖子
由 xzap » 2010-01-19 0:37
和我自己在用的差不多,不过我是用遥控器控制的。
发下我在用的脚本
相比较下,我这个没有搜索框,不过用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
-
emptyhua
- 帖子: 18
- 注册时间: 2008-06-10 12:31
#5
帖子
由 emptyhua » 2010-01-19 9:01
xiooli 写了:lz 的搜索框很山寨哦,呵呵,为啥不要 zenity 做搜索框呢?

不知道有zenity这种东西,就用gnome-terminal代替了~
-
emptyhua
- 帖子: 18
- 注册时间: 2008-06-10 12:31
#6
帖子
由 emptyhua » 2010-01-19 9:07
xzap 写了:
代码: 全选
killall notification-daemon 2>/dev/null
哈哈,学习了,这样就不会出一堆提示了~
不过我的是下面才管用
更新后的脚本
代码: 全选
#!/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
-
xzap
- 帖子: 256
- 注册时间: 2006-08-24 21:25
#7
帖子
由 xzap » 2010-01-19 11:43
因为我用的是archlinux 没用ubuntu的notify
搜索那里用zenity应该会简单点,你现在的脚本,搜索那里太冗余了
zenity --entry 提示输入框,然后再将所有搜索到的歌曲放到 zenity --list
然后双击播放,效果应该会好一点。