#!/bin/bash
# Najít uživatelské jméno přihlášené v grafickém prostředí (na display :0)
X_USER=$(who | grep '(:0)' | awk '{print $1}')
# Pokud se nepodaří najít uživatele, skončit s chybou
if [ -z "$X_USER" ]; then
echo "Chyba: Nepodařilo se najít uživatele přihlášeného v grafickém prostředí." >&2
exit 1
fi
# Nastavit proměnné prostředí pro správného uživatele
export DISPLAY=:0
export XAUTHORITY=/home/$X_USER/.Xauthority
# Automaticky najít jméno připojeného monitoru
MONITOR=$(xrandr | grep " connected " | cut -d ' ' -f 1)
# Pokud byl monitor nalezen, vypnout ho a uložit jeho jméno
if [ ! -z "$MONITOR" ]; then
echo "Vypínám monitor: $MONITOR (pro uživatele $X_USER)"
xrandr --output "$MONITOR" --off
# Uložit jméno monitoru pro 'monitor-on' skript
echo "$MONITOR" > /tmp/last_monitor.txt
else
echo "Nenalezen žádný aktivní monitor."
fi
A teď script pro zapínání
#!/bin/bash
# Najít uživatelské jméno přihlášené v grafickém prostředí (na display :0)
X_USER=$(who | grep '(:0)' | awk '{print $1}')
# Pokud se nepodaří najít uživatele, skončit s chybou
if [ -z "$X_USER" ]; then
echo "Chyba: Nepodařilo se najít uživatele přihlášeného v grafickém prostředí." >&2
exit 1
fi
# Nastavit proměnné prostředí pro správného uživatele
export DISPLAY=:0
export XAUTHORITY=/home/$X_USER/.Xauthority
# Zjistit jméno monitoru z dočasného souboru
if [ -f /tmp/last_monitor.txt ]; then
MONITOR=$(cat /tmp/last_monitor.txt)
else
echo "Chyba: Nelze zjistit, který monitor zapnout. Spusťte nejdříve 'monitor-off'." >&2
exit 1
fi
# Pokud jméno monitoru existuje, zapnout ho
if [ ! -z "$MONITOR" ]; then
echo "Zapínám monitor: $MONITOR (pro uživatele $X_USER)"
xrandr --output "$MONITOR" --auto
else
echo "Chyba: Jméno monitoru k zapnutí nebylo nalezeno."
fi
