436828d50eb6ced694615d8d47b46eb078bfe76c
3 bail
() { echo >&2 "$*"; exit 2; }
7 get-disorder-state
() {
8 coproc stdbuf
-oL
$disorder log
; kid
=$
!
14 enable_random
) randp
=t
;;
15 disable_random
) randp
=nil
;;
16 enable_play
) playp
=t
;;
17 disable_play
) playp
=nil
;;
31 op-volume-up
() { amixer sset
$alsa_mixer 5%+ >/dev
/null
; }
32 op-volume-down
() { amixer sset
$alsa_mixer 5%- >/dev
/null
; }
35 coproc
$disorder playing
; kid
=$
!
38 nothing
) echo "Not playing."; return ;;
40 *) bail
"unexpected first-line token \`$k'" ;;
44 case $k in id
) ;; *) bail
"unexpected second-line token \`$k'" ;; esac
46 case $k in picked
) who
=$name; read -p k _
;; esac
47 case $k in played
) ;; *) bail
"unexpected third-line token \`$k'" ;; esac
49 case $t[-1] in started | ok
) st
="" ;; paused
) st
=" (paused)" ;; esac
50 kill $kid >/dev
/null
2>&1 ||
:
52 artist
=$
(disorder part
$track display artist
)
53 album
=$
(disorder part
$track display album
)
54 title
=$
(disorder part
$track display title
)
55 case $artist in [A-Z
]) artist
=$album album
= ;; esac
56 echo "$artist: ‘$title’${album+, from ‘$album’}${who+
60 op-scratch
() { disorder scratch
; }
61 op-enable
/disable
() {
64 t
) disorder disable
;;
65 nil
) disorder
enable ;;
70 case $playp,$pausep in
71 nil
,t
) disorder
enable; disorder resume
;;
72 nil
,nil
) disorder
enable ;;
73 t
,t
) disorder resume
;;
74 t
,nil
) disorder pause
;;
78 if [[ -e
$HOME/etc
/media-keys.
local ]]; then
79 .
$HOME/etc
/media-keys.
local
82 case $# in 0) echo >&2 "usage: $0 OP"; exit 2 ;; esac
84 case $
(whence
-w op-
$op) in
85 "op-$op: function") ;;
86 *) echo >&2 "$0: unknown operation \`$op'"; exit 2 ;;