Add xmusic tracker/audio player, xfiles media actions, ringtone volume & vibration fix

This commit is contained in:
Luxferre
2026-10-25 17:31:54 +02:00
parent ba2307d44c
commit 30c3e817dc
70 changed files with 2296 additions and 86 deletions
+3 -3
View File
@@ -4,8 +4,8 @@ VERSION_ID="@BANANARCHY_VERSION@"
VERSION="@BANANARCHY_VERSION@ (msm8909)"
ID="bananarchy"
ID_LIKE="postmarketos alpine"
HOME_URL="https://bananahackers.net/"
SUPPORT_URL="https://wiki.nura.eco/wiki/Nokia_8110_4G_(nokia-argon)"
BUG_REPORT_URL="https://gitlab.postmarketos.org/postmarketOS/pmaports/issues"
HOME_URL="https://bananarchy.top"
SUPPORT_URL="https://bananarchy.top"
BUG_REPORT_URL="https://bananarchy.top"
LOGO="bananarchy"
ANSI_COLOR="1;33"
@@ -43,6 +43,24 @@ if [ -z "$SXMO_NO_AUDIO" ]; then
# monitor for headphone for statusbar
superctl start sxmo_soundmonitor
(
sleep 1
spk_vol=100
if [ -r "$XDG_CONFIG_HOME/sxmo/speaker_vol" ]; then
read -r spk_vol < "$XDG_CONFIG_HOME/sxmo/speaker_vol" 2>/dev/null || spk_vol=100
fi
case "$spk_vol" in ''|*[!0-9]*) spk_vol=100 ;; esac
if [ "$spk_vol" -le 0 ]; then
amixer -c 0 cset "name='RX3 Digital Volume'" 0 >/dev/null 2>&1 || true
wpctl set-volume @DEFAULT_AUDIO_SINK@ 0% >/dev/null 2>&1 || true
else
rx3_hw=$(( 60 + spk_vol * 32 / 100 ))
amixer -c 0 cset "name='SPK DAC Switch'" 1 >/dev/null 2>&1 || true
amixer -c 0 cset "name='RX3 Digital Volume'" "$rx3_hw" >/dev/null 2>&1 || true
wpctl set-volume @DEFAULT_AUDIO_SINK@ "${spk_vol}%" >/dev/null 2>&1 || true
fi
sxmo_hook_statusbar.sh volume >/dev/null 2>&1 || true
) &
fi
# Periodically update some status bar components
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
View File
@@ -0,0 +1 @@
dwm-plugin
+1
View File
@@ -0,0 +1 @@
dwm-plugin
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,27 @@
SectionDevice."Speaker" {
Comment "Speaker playback"
ConflictingDevice [
"Headphones"
"Earpiece"
]
EnableSequence [
cset "name='SPK DAC Switch' 1"
cset "name='RX3 MIX1 INP1' RX1"
## gain to +8dB
cset "name='RX3 Digital Volume' 92"
]
DisableSequence [
cset "name='RX3 Digital Volume' 0"
cset "name='SPK DAC Switch' 0"
cset "name='RX3 MIX1 INP1' ZERO"
]
Value {
PlaybackPCM "${var:WcdPlaybackPCM}"
PlaybackChannels 2
PlaybackPriority 200
}
}
@@ -50,6 +50,7 @@ write_line_app baobab "$icon_pie Baobab" "baobab"
write_line_app bluetuith "$icon_bth Bluetuith" "sxmo_terminal.sh bluetuith"
write_line_app calcurse "$icon_clk Calcurse" "sxmo_terminal.sh calcurse"
write_line_app xcamera "$icon_cam Camera" "xcamera"
write_line_app xmusic "$icon_mus Music" "xmusic"
write_line_app celluloid "$icon_mvi Celluloid" "celluloid"
write_line_app chatty "$icon_msg Chatty" "chatty"
([ -z "$WAYLAND_DISPLAY" ] && command -v clipmenu >/dev/null) && \
@@ -27,8 +27,8 @@ fi
# pm8xxx-vib shifts FF_RUMBLE strong_magnitude right by 8 bits (valid 256..65535)
case "${SXMO_VIBRATE_STRENGTH:-}" in
1) SXMO_VIBRATE_STRENGTH=20000 ;;
2|"") SXMO_VIBRATE_STRENGTH=40000 ;;
1) SXMO_VIBRATE_STRENGTH=8000 ;;
2|"") SXMO_VIBRATE_STRENGTH=32000 ;;
3) SXMO_VIBRATE_STRENGTH=65535 ;;
esac
@@ -54,15 +54,41 @@ if ! sxmo_modemcall.sh list_active_calls \
exit
fi
case "${SXMO_RINGVOL:-100}" in
''|*[!0-9]*) SXMO_RINGVOL=100 ;;
esac
[ "$SXMO_RINGVOL" -gt 100 ] && SXMO_RINGVOL=100
SAVED_RX3="$(amixer -c 0 cget "name='RX3 Digital Volume'" 2>/dev/null | awk -F= '/: values=/ {print $2; exit}')"
SAVED_SPK_VOL=100
if [ -r "$XDG_CONFIG_HOME/sxmo/speaker_vol" ]; then
read -r SAVED_SPK_VOL < "$XDG_CONFIG_HOME/sxmo/speaker_vol" 2>/dev/null || SAVED_SPK_VOL=100
fi
case "$SAVED_SPK_VOL" in ''|*[!0-9]*) SAVED_SPK_VOL=100 ;; esac
finish() {
trap - INT TERM EXIT
jobs -p | xargs -r kill
wait
jobs -p | xargs -r kill 2>/dev/null || true
wait 2>/dev/null || true
if [ -n "${SAVED_RX3:-}" ]; then
amixer -c 0 cset "name='RX3 Digital Volume'" "$SAVED_RX3" >/dev/null 2>&1 || true
fi
wpctl set-volume @DEFAULT_AUDIO_SINK@ "${SAVED_SPK_VOL}%" >/dev/null 2>&1 || true
exit
}
ring() {
if [ "${SXMO_RINGVOL:-100}" -le 0 ]; then
return 0
fi
ring_rx3=$(( 60 + SXMO_RINGVOL * 34 / 100 ))
mpv_vol=$(( SXMO_RINGVOL * 130 / 100 ))
amixer -c 0 cset "name='SPK DAC Switch'" 1 >/dev/null 2>&1 || true
amixer -c 0 cset "name='RX3 Digital Volume'" "$ring_rx3" >/dev/null 2>&1 || true
wpctl set-mute @DEFAULT_AUDIO_SINK@ 0 >/dev/null 2>&1 || true
wpctl set-volume @DEFAULT_AUDIO_SINK@ 100% >/dev/null 2>&1 || true
mpv --no-resume-playback --quiet --no-video \
--volume-max=150 --volume="$mpv_vol" \
--loop="${SXMO_RINGNUMBER:-10}" "$SXMO_RINGTONE" >/dev/null &
}
@@ -90,6 +116,9 @@ if [ ! -f "$XDG_CONFIG_HOME"/sxmo/.noring ] && [ ! -f "$XDG_CONFIG_HOME"/sxmo/.n
sxmo_log "RING AND VIBRATE"
sxmo_playerctl.sh pause_all
if [ -p /tmp/dwm_plugin_music.fifo ]; then
echo "PAUSE" > /tmp/dwm_plugin_music.fifo 2>/dev/null || true
fi
ring
vibrate
@@ -99,6 +128,9 @@ elif [ ! -f "$XDG_CONFIG_HOME"/sxmo/.noring ] && [ -f "$XDG_CONFIG_HOME"/sxmo/.n
sxmo_log "RING ONLY"
sxmo_playerctl.sh pause_all
if [ -p /tmp/dwm_plugin_music.fifo ]; then
echo "PAUSE" > /tmp/dwm_plugin_music.fifo 2>/dev/null || true
fi
ring
@@ -30,12 +30,23 @@ if [ -f "$XDG_CONFIG_HOME"/sxmo/.busy ]; then
fi
fi
if [ -f "$XDG_CONFIG_HOME/sxmo/ringsettings" ]; then
# shellcheck disable=SC1091
. "$XDG_CONFIG_HOME/sxmo/ringsettings"
fi
if [ ! -f "$XDG_CONFIG_HOME"/sxmo/.noring ]; then
mpv --no-resume-playback --quiet --no-video "$SXMO_TEXTSOUND" >> /dev/null 2>&1 &
case "${SXMO_RINGVOL:-100}" in
''|*[!0-9]*) SXMO_RINGVOL=100 ;;
esac
if [ "$SXMO_RINGVOL" -gt 0 ]; then
mpv_vol=$(( SXMO_RINGVOL * 130 / 100 ))
mpv --no-resume-playback --quiet --no-video --volume-max=150 --volume="$mpv_vol" "$SXMO_TEXTSOUND" >> /dev/null 2>&1 &
fi
fi
if [ ! -f "$XDG_CONFIG_HOME"/sxmo/.novibrate ]; then
sxmo_vibrate 500 "${SXMO_VIBRATE_STRENGTH:-1}" &
sxmo_vibrate 500 "${SXMO_VIBRATE_STRENGTH:-2}" &
fi
wait
@@ -43,6 +43,24 @@ if [ -z "$SXMO_NO_AUDIO" ]; then
# monitor for headphone for statusbar
superctl start sxmo_soundmonitor
(
sleep 1
spk_vol=100
if [ -r "$XDG_CONFIG_HOME/sxmo/speaker_vol" ]; then
read -r spk_vol < "$XDG_CONFIG_HOME/sxmo/speaker_vol" 2>/dev/null || spk_vol=100
fi
case "$spk_vol" in ''|*[!0-9]*) spk_vol=100 ;; esac
if [ "$spk_vol" -le 0 ]; then
amixer -c 0 cset "name='RX3 Digital Volume'" 0 >/dev/null 2>&1 || true
wpctl set-volume @DEFAULT_AUDIO_SINK@ 0% >/dev/null 2>&1 || true
else
rx3_hw=$(( 60 + spk_vol * 32 / 100 ))
amixer -c 0 cset "name='SPK DAC Switch'" 1 >/dev/null 2>&1 || true
amixer -c 0 cset "name='RX3 Digital Volume'" "$rx3_hw" >/dev/null 2>&1 || true
wpctl set-volume @DEFAULT_AUDIO_SINK@ "${spk_vol}%" >/dev/null 2>&1 || true
fi
sxmo_hook_statusbar.sh volume >/dev/null 2>&1 || true
) &
fi
# Periodically update some status bar components