Посмотрел я на чужие скриншоты, где постоянно выводится играющая песня в данный момент в плеере и захотел примерно так же. Только не постоянно, дабы не мозолило глаза, а временно, скажем — 5 секунд при включении и по требованию.
Решил написать простой скриптик и тут понеслось, в целом вышло три простых скриптика:
Небольшой конфиг
$ cat ~/bin/playrat_config
#плеер
player=mplayer
#время сообщения
msg_time=5
#файл содержащий актуальную песню
lock_file=/tmp/playrat_lock
#имя скрипта для отображения содержимого этого файла
show_file=~/bin/playrat_show
Основной скрипт
Пользоваться можно так же, как я и до этого mplayer’ом:
$ playrat ~/Music/папка/*.mp3
Сам скриптик:
$ cat ~/bin/playrat
#/bin/sh
. ~/bin/playrat_config
for mfile in "$@"
do
if [ -f "$mfile" ]
then
echo "Сейчас воспроизводится: $mfile" > $lock_file
$show_file
$player "$mfile"
#если жмём Ctrl+C в плеере, завершаем скрипт
if [ $? -ne 0 ]
then
rm $lock_file > /dev/null
exit 1
fi
else
echo "Неправильно задано имя файла" > $lock_file
$show_file
fi
done
rm $lock_file > /dev/null
Вывод сообщения из временного файла
$ cat ~/bin/playrat_show
#!/bin/sh
. ~/bin/playrat_config
#для того, дабы всё работало запуская из другой консоли
rat_pid=`ps aux | grep ratpoison | head -1 | awk '{print $2}'`
display=`cat /proc/$rat_pid/environ | tr '\0' '\n' | grep '^DISPLAY=' | sed 's/DISPLAY=//'`
msg_time_default=$msg_time
if grep -q "msgwait" ~/.ratpoisonrc
then
msg_time_default=`cat ~/.ratpoisonrc | grep "msgwait" | awk '{print $2}'`
fi
if [ -f $lock_file ]
then
msg=`cat $lock_file`
else
msg="Сейчас музыка не играет"
fi
ratpoison -d $display -c "msgwait $msg_time"
ratpoison -d $display -c "echo $msg"
ratpoison -d $display -c "msgwait $msg_time_default"
Подытожим
Осталось добавить хоткей на скриптик playrat_show в ~/.ratpoisonrc:
definekey top s-m exec ~/bin/playrat_show
Ну и запускать музыку через playrat(папка ~/bin добавлена в переменную окружения PATH):
$ playrat file.mp3 */*.mp3
Я это делаю в отдельной консоли, к примеру по Ctrl-Alt-F2. Конечный результат выглядит примерно так: