@@ -797,7 +797,8 @@ songs () {
797797 elif [[ $val -eq 10 ]]; then
798798 last=$( mpc playlist -f ' %file%' | tail -1)
799799 mpc del $POS ;
800- POS=$(( $POS - 1 )) ;
800+ POS2=$( echo " $POS " | head -1)
801+ POS=$(( $POS2 - 1 )) ;
801802 dplayQueue
802803
803804 elif [[ $val -eq 19 ]]; then
@@ -858,39 +859,58 @@ songs () {
858859 elif [[ $val -eq 25 ]]; then
859860 unset last
860861 if [[ $TRACKDISPLAY_NEW == *" > " * || $TRACKDISPLAY_NEW == *" < " * || $TRACKDISPLAY_NEW == " ---" ]]; then
861- trackids=" $( echo -e " $POS \n" | sed \$ d) "
862- playlist=$( mpc playlist -f ' %position%' )
863- echo " $trackids $playlist "
864- exit
865- # mpc del $deltracks
866- # mpc crop
862+ mpc crop
867863 else
868864 mpc play $POS ;
869- trackids=" $( echo -e " $POS \n" | sed \$ d | sort) "
870- playlist=$( mpc playlist -f ' %position%' | sort)
871- delids=$( diff <( mpc playlist -f ' %position%' | sort) <( echo -e " $trackids \n" ) | awk ' {print $2}' )
872- clear
873- echo " $delids "
874- exit
865+ mpc crop
875866 fi
876867
877868 elif [[ $val -eq 16 ]]; then
878- unset last
879- trackids=" $( echo -e " $POS \n" | sed \$ d | tac) "
880- POS=$( echo -e " $trackids " | tail -1)
881- echo " $trackids " | while read POS2; do
882- mpc mv $POS2 $( echo $(( $POS2 + 1 )) )
883- done
884- POS=$( echo $(( $POS + 1 )) )
869+ if [[ $( echo " $TRACKDISPLAY_NEW " | wc -l) -gt 1 ]]; then
870+ unset last
871+ posSelect=$( echo " $( songs) " | dmenu_t -dmenu -mesg " Move after >" )
872+ if [[ $posSelect == " " ]]; then
873+ exit;
874+ else
875+ chosenPos=$( echo " $posSelect " | awk -F ' ' ' {print $1}' )
876+ trackids=" $( echo -e " $POS \n" | sed \$ d) "
877+ POS=$( echo -e " $trackids " | head -1)
878+ echo " $trackids " | while read POS2; do
879+ mpc mv $POS2 $(( $chosenPos + 1 ))
880+ chosenPos=" $(( $chosenPos + 1 )) "
881+ done
882+ POS=$( echo " ${chosenPos} " ) ;
883+ fi
884+ else
885+ unset last
886+ mpc mv $POS $( echo $(( $POS + 1 )) )
887+ POS=$( echo $(( $POS + 1 )) ) ;
888+ fi
889+
890+
885891
886892 elif [[ $val -eq 15 ]]; then
887- unset last
888- trackids=" $( echo -e " $POS \n" | sed \$ d) "
889- POS=$( echo -e " $trackids " | head -1)
890- echo " $trackids " | while read POS2; do
891- mpc mv $POS2 $( echo $(( $POS2 - 1 )) )
892- done
893- POS=$( echo $(( $POS - 1 )) ) ;
893+ if [[ $( echo " $TRACKDISPLAY_NEW " | wc -l) -gt 1 ]]; then
894+ unset last
895+ posSelect=$( echo " $( songs) " | dmenu_t -dmenu -mesg " Move after >" )
896+ if [[ $posSelect == " " ]]; then
897+ exit;
898+ else
899+ chosenPos=$( echo " $posSelect " | awk -F ' ' ' {print $1}' )
900+ trackids=" $( echo -e " $POS \n" | sed \$ d) "
901+ POS=$( echo -e " $trackids " | head -1)
902+ echo " $trackids " | while read POS2; do
903+ mpc mv $POS2 $(( $chosenPos + 1 ))
904+ chosenPos=" $(( $chosenPos + 1 )) "
905+ done
906+ POS=$( echo " ${chosenPos} " ) ;
907+ fi
908+ else
909+ unset last
910+ mpc mv $POS $( echo $(( $POS - 1 )) )
911+ POS=$( echo $(( $POS - 1 )) ) ;
912+ fi
913+
894914
895915 elif [[ $val -eq 17 ]]; then
896916 unset last
0 commit comments