Колись давно зробив собі доволі зручну штуку — контекстне меню, що дозволяло грати вибрану теку (або декілька) в одному з улюблених програвачів. На днях поставив Debian GNU/Linux собі на лептоп, на якому дали працювати, і згадав про цей маленький свій виріб. Трохи доробив і вирішив поділитись. Для роботи потрібен лише zenity і якийсь stand-alone програвач (з mpd чи xmms2 ніколи не грався). Скрипт сам визначає, які з передбачених програвачів є у системі, і запропонує заграти вміст теки одним із них на вибір користувача.
Сам текст скрипта ось:
#!/bin/sh ALL_POSSIBLE_PLAYERS="audacious deadbeef qmmp xmms vlc rhythmbox banshee exile gmplayer playitslowly exfalso xine gxine smplayer clementine" ALL_POSSIBLE_PLAYERS="`echo $ALL_POSSIBLE_PLAYERS|tr " " "\n"|sort|tr "\n" " "`" AVAILABLE_PLAYERS=`which $ALL_POSSIBLE_PLAYERS` for EACH in $AVAILABLE_PLAYERS do PROGRAMS="$PROGRAMS `basename $EACH`" done for EACH in $PROGRAMS do ZENITY_LIST="$ZENITY_LIST `echo '""' $EACH`" done PLAYER=`zenity --list --title="Audio Player Selection" \ --text "Program to play your files with" --radiolist \ --window-icon="/usr/share/icons/Tango/scalable/actions/player_play.svg" \ --column="Select" --column="Player" $ZENITY_LIST` if [ $? -eq "1" ]; then zenity --error --title="Oops" --text="Canceled" --timeout=1 \ #--window-icon="/usr/share/icons/Tango/32x32/actions/process-stop.png" exit 0 fi if [ -z $1 ]; then zenity --error --title="Oops" --text="Nothing to play" --timeout=1 \ #--window-icon="/usr/share/icons/Tango/scalable/actions/view-refresh.svg" exit 0 fi if [ -z `which $PLAYER` ]; then zenity --error --title="Oops" --text="Player not found. Select another one" --timeout=1 ; player_select "$@" else $PLAYER "$@" fi
У мене він збережений у ~/bin/player_select
Контекстне меню реалізовано через Custom Actions у Thunar (XFCE):

У рядку, де вказано, що має виконуватись, записано “/full/path/to/player_select %F” (не буквально — треба вказати повний шлях до скрипта, і без лапок). Якщо раптом комусь знадобиться, але серед переліку нема потрібного програвача, то все вирішується просто додаванням його назви у другому рядочку скрипта в ALL_POSSIBLE_PLAYERS
Отаке.








Кажуть люди: