Tentative renouvellement block MPD
This commit is contained in:
parent
b9432c0932
commit
b4fe385d4f
7 changed files with 70 additions and 137 deletions
|
@ -1,8 +1,8 @@
|
||||||
[Settings]
|
[Settings]
|
||||||
gtk-application-prefer-dark-theme=false
|
gtk-application-prefer-dark-theme=true
|
||||||
gtk-theme-name=Vertex-Dark
|
gtk-theme-name=Vertex-Dark
|
||||||
gtk-icon-theme-name=Vertex-Icons
|
gtk-icon-theme-name=Adwaita
|
||||||
gtk-font-name=IBM Plex Sans 11
|
gtk-font-name=IBM Plex Sans 10
|
||||||
gtk-button-images=1
|
gtk-button-images=1
|
||||||
gtk-menu-images=1
|
gtk-menu-images=1
|
||||||
gtk-enable-event-sounds=1
|
gtk-enable-event-sounds=1
|
||||||
|
|
|
@ -353,7 +353,7 @@ bindsym $mod+9 exec --no-startup-id xscreensaver-command -activate
|
||||||
# Autostart applications
|
# Autostart applications
|
||||||
## adjustment of i3bar battery reading (only run at the very first login):
|
## adjustment of i3bar battery reading (only run at the very first login):
|
||||||
#exec --no-startup-id /usr/bin/adjust_i3statusconf
|
#exec --no-startup-id /usr/bin/adjust_i3statusconf
|
||||||
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
#exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||||
exec --no-startup-id conky --config "$HOME/.config/conky/conkyrc1"
|
exec --no-startup-id conky --config "$HOME/.config/conky/conkyrc1"
|
||||||
exec --no-startup-id conky --config "$HOME/.config/conky/conkyrc2"
|
exec --no-startup-id conky --config "$HOME/.config/conky/conkyrc2"
|
||||||
exec_always --no-startup-id setcursor
|
exec_always --no-startup-id setcursor
|
||||||
|
@ -361,7 +361,6 @@ exec claws-mail --online
|
||||||
exec --no-startup-id urxvtc -name newsboat -e newsboat
|
exec --no-startup-id urxvtc -name newsboat -e newsboat
|
||||||
exec --no-startup-id xinput --disable "AlpsPS/2 ALPS DualPoint TouchPad"
|
exec --no-startup-id xinput --disable "AlpsPS/2 ALPS DualPoint TouchPad"
|
||||||
exec --no-startup-id redshift-gtk
|
exec --no-startup-id redshift-gtk
|
||||||
exec --no-startup-id sudo radeontop -d /dev/shm/radeontop
|
|
||||||
exec --no-startup-id nm-applet
|
exec --no-startup-id nm-applet
|
||||||
exec --no-startup-id steam-native -silent -noverifyfiles -language french
|
exec --no-startup-id steam-native -silent -noverifyfiles -language french
|
||||||
#exec --no-startup-id SVPManager
|
#exec --no-startup-id SVPManager
|
||||||
|
|
|
@ -31,6 +31,17 @@ markup=pango
|
||||||
#command=echo $(xdotool getactivewindow getwindowname)
|
#command=echo $(xdotool getactivewindow getwindowname)
|
||||||
#interval=1
|
#interval=1
|
||||||
|
|
||||||
|
# Generic media player support
|
||||||
|
#
|
||||||
|
# This displays "ARTIST - SONG" if a music is playing.
|
||||||
|
# Supported players are: spotify, vlc, audacious, xmms2, mplayer, and others.
|
||||||
|
[mpd]
|
||||||
|
#instance=spotify
|
||||||
|
interval=1
|
||||||
|
signal=13
|
||||||
|
#markup=none
|
||||||
|
|
||||||
|
|
||||||
# CPU usage
|
# CPU usage
|
||||||
#
|
#
|
||||||
# The script may be called with -w and -c switches to specify thresholds,
|
# The script may be called with -w and -c switches to specify thresholds,
|
||||||
|
@ -145,16 +156,6 @@ interval=600
|
||||||
#interval=10
|
#interval=10
|
||||||
#min_width="bat ██████"
|
#min_width="bat ██████"
|
||||||
|
|
||||||
# Generic media player support
|
|
||||||
#
|
|
||||||
# This displays "ARTIST - SONG" if a music is playing.
|
|
||||||
# Supported players are: spotify, vlc, audacious, xmms2, mplayer, and others.
|
|
||||||
[mpd]
|
|
||||||
#instance=spotify
|
|
||||||
interval=1
|
|
||||||
signal=13
|
|
||||||
#markup=none
|
|
||||||
|
|
||||||
# OpenVPN support
|
# OpenVPN support
|
||||||
#
|
#
|
||||||
# Support multiple VPN, with colors.
|
# Support multiple VPN, with colors.
|
||||||
|
@ -166,14 +167,15 @@ signal=13
|
||||||
# The first parameter sets the step (and units to display)
|
# The first parameter sets the step (and units to display)
|
||||||
# The second parameter overrides the mixer selection
|
# The second parameter overrides the mixer selection
|
||||||
# See the script for details.
|
# See the script for details.
|
||||||
[toggle-sink]
|
#[toggle-sink]
|
||||||
interval=once
|
#interval=once
|
||||||
separator=false
|
#separator=false
|
||||||
separator_block_width=0
|
#separator_block_width=0
|
||||||
|
|
||||||
[volume]
|
[volume]
|
||||||
#instance=vol
|
#instance=vol
|
||||||
#instance=PCM
|
#instance=PCM
|
||||||
|
label=vol
|
||||||
interval=once
|
interval=once
|
||||||
signal=10
|
signal=10
|
||||||
separator=false
|
separator=false
|
||||||
|
|
|
@ -31,9 +31,14 @@ alang=fr,fre,fra
|
||||||
#slang=fr,fre,fra
|
#slang=fr,fre,fra
|
||||||
slang=en,eng,fr,fre,fra
|
slang=en,eng,fr,fre,fra
|
||||||
|
|
||||||
# Network
|
# Cache
|
||||||
cache=yes
|
cache=yes
|
||||||
demuxer-max-bytes=256MiB
|
cache-pause-wait=5
|
||||||
|
cache-pause-initial=yes
|
||||||
|
demuxer-max-bytes=512MiB
|
||||||
demuxer-readahead-secs=20
|
demuxer-readahead-secs=20
|
||||||
|
prefetch-playlist=yes
|
||||||
|
|
||||||
|
# YTDL
|
||||||
ytdl-format="((bestvideo[vcodec^=av01][height<=?1080][width<=?1920]/bestvideo[vcodec=vp9][height<=?1080][width<=?1920]/bestvideo[height<=?1080][width<=?1920]/bestvideo)+(bestaudio[acodec=opus]/bestaudio[acodec=vorbis]/bestaudio))/best"
|
ytdl-format="((bestvideo[vcodec^=av01][height<=?1080][width<=?1920]/bestvideo[vcodec=vp9][height<=?1080][width<=?1920]/bestvideo[height<=?1080][width<=?1920]/bestvideo)+(bestaudio[acodec=opus]/bestaudio[acodec=vorbis]/bestaudio))/best"
|
||||||
# ytdl-raw-options=ignore-config=
|
# ytdl-raw-options=ignore-config=
|
||||||
|
|
|
@ -180,6 +180,7 @@ ext cbz, has zathura, X, flag f = zathura -- "$@"
|
||||||
mime ^image/svg, has inkscape, X, flag f = inkscape -- "$@"
|
mime ^image/svg, has inkscape, X, flag f = inkscape -- "$@"
|
||||||
mime ^image/svg, has display, X, flag f = display -- "$@"
|
mime ^image/svg, has display, X, flag f = display -- "$@"
|
||||||
|
|
||||||
|
mime ^image, has gthumb, X, flag f = gthumb -- "$@"
|
||||||
mime ^image, has viewnior, X, flag f = viewnior -- "$@"
|
mime ^image, has viewnior, X, flag f = viewnior -- "$@"
|
||||||
mime ^image, has imv, X, flag f = imv -- "$@"
|
mime ^image, has imv, X, flag f = imv -- "$@"
|
||||||
mime ^image, has pqiv, X, flag f = pqiv -- "$@"
|
mime ^image, has pqiv, X, flag f = pqiv -- "$@"
|
||||||
|
|
|
@ -11,7 +11,7 @@ else
|
||||||
[[ -z "$origstatus" ]] && origstatus='stop'
|
[[ -z "$origstatus" ]] && origstatus='stop'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
LONG=30
|
LONG=15
|
||||||
SHORT=15
|
SHORT=15
|
||||||
|
|
||||||
case $BLOCK_BUTTON in
|
case $BLOCK_BUTTON in
|
||||||
|
@ -95,15 +95,15 @@ then
|
||||||
|
|
||||||
case $scrolling in
|
case $scrolling in
|
||||||
long)
|
long)
|
||||||
longsong="${song} "
|
longsong="${song}"
|
||||||
shortsong="${song} "
|
shortsong="${song}"
|
||||||
;;
|
;;
|
||||||
short)
|
short)
|
||||||
longsong="$(<${runtime}/mpd) "
|
longsong="$(<${runtime}/mpd)"
|
||||||
shortsong="${song} "
|
shortsong="${song}"
|
||||||
;;
|
;;
|
||||||
none)
|
none)
|
||||||
longsong="$(<${runtime}/mpd) "
|
longsong="$(<${runtime}/mpd)"
|
||||||
shortsong="$longsong"
|
shortsong="$longsong"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -1,136 +1,62 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
LONG=25
|
LENGHT=40
|
||||||
SHORT=10
|
|
||||||
|
|
||||||
human_time() {
|
human_time() {
|
||||||
|
# Prends des secondes
|
||||||
local seconds="$1"
|
local seconds="$1"
|
||||||
|
|
||||||
if [[ "$seconds" -lt 0 ]]
|
if [[ "$seconds" -lt 0 ]]
|
||||||
then
|
then
|
||||||
|
# Négatif = pas de temps à afficher
|
||||||
echo "--:--"
|
echo "--:--"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Calcule les minutes
|
||||||
local minutes=$(( $seconds / 60 ))
|
local minutes=$(( $seconds / 60 ))
|
||||||
seconds=$(( $seconds % 60 ))
|
seconds=$(( $seconds % 60 ))
|
||||||
if [[ "$minutes" -ge 90 ]]
|
|
||||||
|
# Calcule les heures
|
||||||
|
local hours=$(( $minutes / 60 ))
|
||||||
|
minutes=$(( $minutes % 60 ))
|
||||||
|
|
||||||
|
if [[ "$hours" -ge 1 ]]
|
||||||
then
|
then
|
||||||
printf "%5s\n" "${minutes}m"
|
# Si on dépasse l’heure affiche le temps en heures-minutes
|
||||||
|
printf "%02dh%02d\n" "$hours" "$minutes"
|
||||||
else
|
else
|
||||||
|
# Sinon en minutes-secondes
|
||||||
printf "%02d:%02d\n" "$minutes" "$seconds"
|
printf "%02d:%02d\n" "$minutes" "$seconds"
|
||||||
fi
|
fi
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if ! systemctl --user is-active mpd &>/dev/null
|
# Boucle principale
|
||||||
then
|
while true
|
||||||
origstatus='off'
|
do
|
||||||
else
|
# Déclaration des variables
|
||||||
origstatus="$(mpc status | sed -n '2p' | grep -Eo '^\[.*\]' | tr -d '[]')"
|
declare status
|
||||||
[[ -z "$origstatus" ]] && origstatus='stop'
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
# État du serveur
|
||||||
case $BLOCK_BUTTON in
|
if ! systemctl --user is-active mpd.service &>/dev/null
|
||||||
1) mpc -q prev ;;
|
|
||||||
2) mpc -q toggle ;;
|
|
||||||
3) mpc -q next ;;
|
|
||||||
4) mpc -q volume +2 ;;
|
|
||||||
5) mpc -q volume -2 ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
status="<span foreground=\"#6699CC\">"
|
|
||||||
case $origstatus in
|
|
||||||
stop ) status="<span foreground=\"#F2777A\">" ;;
|
|
||||||
paused ) status="<span foreground=\"#FFCC66\">" ;;
|
|
||||||
playing ) status="<span foreground=\"#99CC99\">" ;;
|
|
||||||
off ) status="<span foreground=\"#515151\">" ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [[ "$origstatus" != "stop" ]] && [[ "$origstatus" != "off" ]]
|
|
||||||
then
|
|
||||||
if [[ ! -f /dev/shm/mpd ]]
|
|
||||||
then
|
then
|
||||||
mpc -f '[[%artist%§]%title%|[%file%]' current > /dev/shm/mpd
|
# Traitement particulier pour le cas où le service est coupé
|
||||||
fi
|
status="off"
|
||||||
|
|
||||||
song=$(</dev/shm/mpd)
|
|
||||||
|
|
||||||
if [[ "${#song}" -gt $LONG ]]
|
|
||||||
then
|
|
||||||
scrolling=long
|
|
||||||
elif [[ "${#song}" -gt $SHORT ]]
|
|
||||||
then
|
|
||||||
scrolling=short
|
|
||||||
else
|
else
|
||||||
scrolling=none
|
status="$(mpc status | sed -n '2p' | grep -Eo '^\[.*\]' | tr -d '[]')"
|
||||||
|
[[ -z status ]] && status="stopped"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$scrolling" != "none" ]]
|
artist="$(mpc -f '%artist%' current)"
|
||||||
then
|
title="$(mpc -f '%title%' current)"
|
||||||
scroll="$(</dev/shm/mpd-scroll)"
|
name="$(mpc -f '%name%' current)"
|
||||||
|
file="$(basename "$(mpc -f '%file%' current)")"
|
||||||
if [[ -z "${scroll// /}" ]]
|
album="$(mpc -f '%album%' current)"
|
||||||
then
|
|
||||||
printf "%-${LONG}s" "$(</dev/shm/mpd)" > /dev/shm/mpd-scroll
|
|
||||||
song="$(</dev/shm/mpd-scroll)"
|
|
||||||
else
|
|
||||||
song="$(</dev/shm/mpd-scroll)"
|
|
||||||
printf "%-${LONG}s" "${song:1}" > /dev/shm/mpd-scroll
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
time="$(echo -e 'status\nclose' | nc -U $MPD_HOST | grep time \
|
|
||||||
| cut -d' ' -f2)"
|
|
||||||
|
|
||||||
time_elapsed=$(human_time "${time%:*}")
|
|
||||||
time_total=$(human_time "${time#*:}")
|
|
||||||
time_left=$(human_time "$(( ${time#*:} - ${time%:*} ))")
|
|
||||||
|
|
||||||
longtime="[$time_elapsed $time_left ${time_total/00:00/--:--}]"
|
|
||||||
shorttime="$time_elapsed $time_left"
|
|
||||||
|
|
||||||
case $scrolling in
|
|
||||||
long)
|
|
||||||
longsong="${song} "
|
|
||||||
shortsong="${song} "
|
|
||||||
;;
|
|
||||||
short)
|
|
||||||
longsong="$(</dev/shm/mpd) "
|
|
||||||
shortsong="${song} "
|
|
||||||
;;
|
|
||||||
none)
|
|
||||||
longsong="$(</dev/shm/mpd) "
|
|
||||||
shortsong="$longsong"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
longsong="${longsong:0:$LONG}"
|
|
||||||
shortsong="${shortsong:0:$SHORT}"
|
|
||||||
longsong="${longsong//&/&}"
|
|
||||||
shortsong="${shortsong//&/&}"
|
|
||||||
|
|
||||||
if [[ "$longsong" =~ § ]]
|
|
||||||
then
|
|
||||||
longsong="<u>${longsong/§/</u> }"
|
|
||||||
elif [[ "$song" =~ § ]]
|
|
||||||
then
|
|
||||||
longsong="<u>${longsong}</u>"
|
|
||||||
fi
|
|
||||||
if [[ "$shortsong" =~ § ]]
|
|
||||||
then
|
|
||||||
shortsong="<u>${shortsong/§/</u> }"
|
|
||||||
elif [[ "$song" =~ § ]]
|
|
||||||
then
|
|
||||||
shortsong="<u>${shortsong}</u>"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "${longsong} $status$longtime</span>"
|
|
||||||
echo "${shortsong} $status$shorttime</span>"
|
|
||||||
else
|
|
||||||
[[ -f /dev/shm/mpd ]] && rm /dev/shm/mpd
|
|
||||||
[[ -f /dev/shm/mpd-scroll ]] && rm /dev/shm/mpd-scroll
|
|
||||||
printf "%${LONG}s $status[--:-- --:-- --:--]</span>\n" " "
|
|
||||||
printf "%${SHORT}s $status--:-- --:--</span>\n" " "
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
( zscroll -b "<b>$artist</b> " "${title:-${file}}" ) &
|
||||||
|
pid="$!"
|
||||||
|
|
||||||
|
mpc idle &>/dev/null
|
||||||
|
kill "$pid"
|
||||||
|
done
|
||||||
|
|
Loading…
Reference in a new issue