1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
# Support for Audacious music player
# Written by: Rafael Antonio Porras Samaniego <spoek@distrobit.net>
# Where are stored Audacious playlists
SetEnv Audacious-Playlists "$[FVWM_USERDIR]/playlists"
# Styles for Audacious windows
Style audacious StaysOnTop
Style audacious StartIconic, NoIcon, NoTitle, Sticky, WindowListSkip
Style playlist StartIconic, NoIcon, NoTitle, Sticky, WindowListSkip
Style equalizer StartIconic, NoIcon, NoTitle, Sticky, WindowListSkip
# If there is no selected mixer, load the default
CheckPreferences DefaultMixer "Include components/functions/Mixer-audacious"
# Main functions and menus
DestroyMenu /Music
AddToMenu /Music
+ DynamicPopupAction Function /Music-generator
DestroyFunc /Music-generator
AddToFunc /Music-generator
+ I DestroyMenu recreate /Music
+ I AddToMenu /Music '$[gt.Load playlist]' Popup /Music/LoadPlaylist
+ I AddToMenu /Music '$[gt.Save playlist...]' Music-SavePlaylist
+ I AddToMenu /Music '$[gt.Clear playlist]' Music-ClearPlaylist
+ I AddToMenu /Music '$[gt.Remove current song]' Music-RemoveSong
+ I AddToMenu /Music '$[gt.Remove playlist]' Popup /Music/RemovePlaylist
+ I AddToMenu /Music "" Nop
+ I PipeRead 'audtool get-volume | sed -e "s:[ \t]::g" | sed -e "s:^.\\+$:AddToMenu\ /Music \'$[gt.Volume] \(&%%\)\' Popup /Mixer:"'
+ I AddToMenu /Music '$[gt.Toggle random]' Music-ToggleRandom
+ I AddToMenu /Music '$[gt.Toggle repeat]' Exec exec audtool playlist-repeat-toggle
+ I AddToMenu /Music "" Nop
+ I AddToMenu /Music '$[gt.Stop playback]' Music-Stop
+ I AddToMenu /Music '$[gt.Show/hide player]' Music-GUI
+ I AddToMenu /Music '$[gt.Play/Pause]' Music-PlayPause
# ---------------------------------------------------------------------------
# Basic control functions
DestroyFunc Music-Play
AddToFunc Music-Play
+ I Exec exec audtool playback-play
DestroyFunc Music-Pause
AddToFunc Music-Pause
+ I Exec exec audtool playback-pause
DestroyFunc Music-Stop
AddToFunc Music-Stop
+ I Exec exec audtool playback-stop
DestroyFunc Music-PlayPause
AddToFunc Music-PlayPause
+ I Exec exec audacious -t
DestroyFunc Music-Next
AddToFunc Music-Next
+ I Exec exec audtool playlist-advance
DestroyFunc Music-Prev
AddToFunc Music-Prev
+ I Exec exec audtool playlist-reverse
DestroyFunc Music-Forward
AddToFunc Music-Forward
+ I Nop
DestroyFunc Music-Backward
AddToFunc Music-Backward
+ I Nop
DestroyFunc Music-ToggleRandom
AddToFunc Music-ToggleRandom
+ I Exec exec audtool playlist-shuffle-toggle
DestroyFunc Music-RemoveSong
AddToFunc Music-RemoveSong
+ I Exec exec audtool playlist-delete `audtool playlist-position`
DestroyFunc Music-GUI
AddToFunc Music-GUI
+ I All (audacious) Iconify toggle
DestroyFunc Music-Find
AddToFunc Music-Find
+ I Nop
# ---------------------------------------------------------------------------
# Playlist functions
DestroyMenu /Music/LoadPlaylist
AddToMenu /Music/LoadPlaylist
+ DynamicPopupAction Function /Music/LoadPlaylist-generator
DestroyFunc /Music/LoadPlaylist-generator
AddToFunc /Music/LoadPlaylist-generator
+ I DestroyMenu recreate /Music/LoadPlaylist
+ I AddToMenu /Music/LoadPlaylist
+ I PipeRead 'for i in $[Audacious-Playlists]/*.m3u $[Audacious-Playlists]/*.pls; do \
name=$(basename "$i"); \
sname=${name%%.m3u}; \
sname=${sname%%.pls}; \
echo \"AddToMenu /Music/LoadPlaylist \'$sname\' Exec exec audacious \'$i\'\"; done'
DestroyFunc Music-SavePlaylist
AddToFunc Music-SavePlaylist
+ I Exec exec mkdir -p $[Audacious-Playlists]
+ I Module FvwmForm Music-SavePlaylist-Dialog
All (Music-SavePlaylist-Dialog) Close
DestroyModuleConfig Music-SavePlaylist-Dialog: *
*Music-SavePlaylist-Dialog: Title "$[gt.Save playlist]"
*Music-SavePlaylist-Dialog: Text "$[gt.Name of the playlist]"
*Music-SavePlaylist-Dialog: Line center
*Music-SavePlaylist-Dialog: Input PlaylistName 40 ""
*Music-SavePlaylist-Dialog: Line center
*Music-SavePlaylist-Dialog: Line center
*Music-SavePlaylist-Dialog: Button quit " $[gt.Cancel] " ^[
*Music-SavePlaylist-Dialog: Command Nop
*Music-SavePlaylist-Dialog: Button quit " $[gt.Save] " ^M
*Music-SavePlaylist-Dialog: Command PipeRead 'numero=1; echo "#EXTM3U" > $[Audacious-Playlists]/$(PlaylistName).m3u; while [ $numero -le `audtool playlist-length` ]; do \
echo "#EXTINF:-1,"`audtool playlist-song $numero` >> $[Audacious-Playlists]/$(PlaylistName).m3u; \
audtool playlist-song-filename $numero >> $[Audacious-Playlists]/$(PlaylistName).m3u; \
numero=`expr $numero + 1`; \
done'
*Music-SavePlaylist-Dialog: Line center
DestroyFunc Music-ClearPlaylist
AddToFunc Music-ClearPlaylist
+ I Exec exec audtool playlist-clear
DestroyMenu /Music/RemovePlaylist
AddToMenu /Music/RemovePlaylist
+ DynamicPopupAction Function /Music/RemovePlaylist-generator
DestroyFunc /Music/RemovePlaylist-generator
AddToFunc /Music/RemovePlaylist-generator
+ I DestroyMenu recreate /Music/RemovePlaylist
+ I AddToMenu /Music/RemovePlaylist
+ I PipeRead 'for i in $[Audacious-Playlists]/*.m3u $[Audacious-Playlists]/*.pls; do \
name=$(basename "$i"); \
sname=${name%%.m3u}; \
sname=${sname%%.pls}; \
echo \"AddToMenu /Music/RemovePlaylist \'$sname\' Exec rm -f \'$i\'\"; done'
# vim:ft=fvwm
|