Added Volume controls to kiosk user

This commit is contained in:
henrov committed 2026-09-11 22:10:04 +02:00
1 parent 6e5df35dc0
commit 249f36a83b
2 files changed
+37 -79

No files matched your search

BIN
View File
Binary file not shown.
+37 -79
View File
@@ -218,7 +218,7 @@ unset KIOSK_PASSWORD KIOSK_HASH
echo
echo "--> Openbox, LightDM GTK-greeter en hulpprogramma's installeren..."
apt install -y openbox lightdm-gtk-greeter unclutter xdotool
apt install -y openbox lightdm-gtk-greeter unclutter xdotool pulseaudio-utils
echo
echo "--> Chromium installeren (deb-pakket, geen snap)..."
@@ -381,6 +381,10 @@ xset s noblank
# Muisaanwijzer verbergen bij inactiviteit
unclutter -idle 2 &
# Volume bij elke start terugzetten naar 90% en dempen uitschakelen
pactl set-sink-volume @DEFAULT_SINK@ 90% &
pactl set-sink-mute @DEFAULT_SINK@ 0 &
# Bewakingslus: herstart de browser als deze ooit gesloten wordt of vastloopt
(
while true; do
@@ -400,6 +404,23 @@ cat > /home/kiosk/.config/openbox/rc.xml <<'EOF'
<command>dm-tool switch-to-greeter</command>
</action>
</keybind>
<!-- Volumetoetsen -->
<keybind key="XF86AudioRaiseVolume">
<action name="Execute">
<command>pactl set-sink-volume @DEFAULT_SINK@ +5%</command>
</action>
</keybind>
<keybind key="XF86AudioLowerVolume">
<action name="Execute">
<command>pactl set-sink-volume @DEFAULT_SINK@ -5%</command>
</action>
</keybind>
<keybind key="XF86AudioMute">
<action name="Execute">
<command>pactl set-sink-mute @DEFAULT_SINK@ toggle</command>
</action>
</keybind>
</keyboard>
<mouse>
<context name="Frame"/>
@@ -444,98 +465,35 @@ EndSection
EOF
# -----------------------------------------------------------------------------
# 10. Script waarmee av-admin het Chromium-beleid kan verversen na het
# aanpassen van /etc/kiosk/urls.txt.
#
# Het echte script staat centraal in /etc/kiosk/.
# av-admin krijgt een symlink in ~/kiosk/.
# 10. Script maken waarmee av-admin het Chromium-beleid kan verversen na het
# aanpassen van /etc/kiosk/urls.txt, zonder het hele installatiescript
# opnieuw te hoeven draaien.
# -----------------------------------------------------------------------------
echo
echo "--> refresh_policies.sh installeren..."
echo "--> /etc/kiosk/refresh_policies.sh wegschrijven..."
AV_ADMIN_HOME="/home/av-admin"
ADMIN_KIOSK_DIR="${AV_ADMIN_HOME}/kiosk"
REFRESH_SCRIPT="/etc/kiosk/refresh_policies.sh"
REFRESH_LINK="${ADMIN_KIOSK_DIR}/refresh_policies.sh"
# Zorg dat de directories bestaan
mkdir -p /etc/kiosk
mkdir -p "$ADMIN_KIOSK_DIR"
# Schrijf het refresh-script
cat > "$REFRESH_SCRIPT" <<'REFRESH_EOF'
cat > "/etc/kiosk/refresh_policies.sh" <<'REFRESH_EOF'
#!/bin/bash
# Ververs de kiosk-browser nadat /etc/kiosk/urls.txt is gewijzigd.
#
# Gebruik als av-admin:
#
# sudo /home/av-admin/kiosk/refresh_policies.sh
#
# Chromium wordt beëindigd. De Openbox-bewakingslus in de kiosk-sessie
# start Chromium daarna automatisch opnieuw.
# Herstart Chromium op de kiosk zodat gewijzigde /etc/kiosk/urls.txt en
# beleidsinstellingen opnieuw ingelezen worden. Voer uit met: sudo ./refresh_policies.sh
set -euo pipefail
if [ "$(id -u)" -ne 0 ]; then
echo "Voer dit script uit met sudo:" >&2
echo " sudo /home/av-admin/kiosk/refresh_policies.sh" >&2
echo "Voer dit script uit met sudo: sudo ./refresh_policies.sh" >&2
exit 1
fi
echo "--> Chromium op de kiosk wordt herstart..."
if pgrep -u kiosk chromium >/dev/null 2>&1; then
pkill -u kiosk chromium || true
echo " Chromium beëindigd."
elif pgrep -u kiosk chromium-browser >/dev/null 2>&1; then
pkill -u kiosk chromium-browser || true
echo " Chromium-browser beëindigd."
else
echo " Chromium draaide momenteel niet."
fi
echo " De Openbox-bewakingslus start Chromium automatisch opnieuw."
echo " Klaar."
echo "--> Chromium op de kiosk wordt herstart om wijzigingen door te voeren..."
pkill -u kiosk chromium 2>/dev/null || pkill -u kiosk chromium-browser 2>/dev/null || true
echo " Klaar. De bewakingslus in de kiosk-sessie start de browser automatisch opnieuw."
REFRESH_EOF
# Script uitvoerbaar maken
chmod 755 "$REFRESH_SCRIPT"
chmod +x "/etc/kiosk/refresh_policies.sh"
chown av-admin:av-admin "/etc/kiosk/refresh_policies.sh"
# Eigendom centraal script
chown root:root "$REFRESH_SCRIPT"
# Verwijder eventueel oude versie/link
rm -f "$REFRESH_LINK"
# Maak de symlink voor av-admin
ln -s "$REFRESH_SCRIPT" "$REFRESH_LINK"
# Zorg dat av-admin eigenaar is van zijn eigen kiosk-directory
chown -R av-admin:av-admin "$ADMIN_KIOSK_DIR"
# Controleer resultaat
echo
echo " Refresh-script:"
ls -l "$REFRESH_SCRIPT"
echo
echo " Link voor av-admin:"
ls -l "$REFRESH_LINK"
# Controleer dat de link daadwerkelijk naar het script wijst
if [ ! -e "$REFRESH_LINK" ]; then
echo "FOUT: refresh_policies.sh kon niet worden aangemaakt." >&2
exit 1
fi
if [ ! -x "$REFRESH_LINK" ]; then
echo "FOUT: refresh_policies.sh is niet uitvoerbaar." >&2
exit 1
fi
echo " refresh_policies.sh succesvol geïnstalleerd."
ln -sf /etc/kiosk/refresh_policies.sh "${ADMIN_KIOSK_DIR}/refresh_policies.sh"
chown -h av-admin:av-admin "${ADMIN_KIOSK_DIR}/refresh_policies.sh"
# -----------------------------------------------------------------------------
# Klaar