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'" ;;
43 case $k in id
) ;; *) bail
"unexpected second-line token \`$k'" ;; esac
45 case $k in played
) ;; *) bail
"unexpected third-line token \`$k'" ;; esac
47 case $t[-1] in started | ok
) st
="" ;; paused
) st
=" (paused)" ;; esac
50 artist
=$
(disorder part
$track display artist
)
51 album
=$
(disorder part
$track display album
)
52 title
=$
(disorder part
$track display title
)
53 case $artist in [A-Z
]) artist
=$album album
= ;; esac
54 echo "$artist: ‘$title’${album+, from ‘$album’}"
57 op-scratch
() { disorder scratch
; }
58 op-enable
/disable
() {
61 t
) disorder disable
;;
62 nil
) disorder
enable ;;
67 case $playp,$pausep in
68 nil
,t
) disorder
enable; disorder resume
;;
69 nil
,nil
) disorder
enable ;;
70 t
,t
) disorder resume
;;
71 t
,nil
) disorder pause
;;
75 if [[ -e
$HOME/etc
/media-keys.
local ]]; then
76 .
$HOME/etc
/media-keys.
local
79 case $# in 0) echo >&2 "usage: $0 OP"; exit 2 ;; esac
81 case $
(whence
-w op-
$op) in
82 "op-$op: function") ;;
83 *) echo >&2 "$0: unknown operation \`$op'"; exit 2 ;;