46 lines
962 B
Bash
Executable file
46 lines
962 B
Bash
Executable file
#!/bin/bash
|
|
|
|
bat=/sys/class/power_supply/BAT0/
|
|
char="$(cat "$bat/status")"
|
|
monitor_count=$(hyprctl monitors | rg "ID 1")
|
|
internal_active=$(hyprctl monitors | rg "eDP-1")
|
|
|
|
|
|
close() {
|
|
if [ "$char" == "Discharging" ]; then
|
|
# dunstify 'discharging and locking'
|
|
playerctl --all-players -a pause
|
|
swaylock -c 000000 & systemctl suspend
|
|
else
|
|
if [ "$monitor_count" == "" ]; then
|
|
# dunstify 'charging but no second monitor, locking'
|
|
playerctl --all-players -a pause
|
|
swaylock -c 000000 & systemctl suspend
|
|
else
|
|
dunstify 'charging and second monitor, switching to external mode'
|
|
./monitor.sh onlysecond
|
|
fi
|
|
fi
|
|
}
|
|
|
|
open() {
|
|
if [ "$internal_active" == "" ]; then
|
|
if [ "$monitor_count" == "" ]; then
|
|
dunstify 'external monitor connected, extending'
|
|
./monitor.sh extend
|
|
else
|
|
dunstify 'only internal'
|
|
./monitor.sh onlyfirst
|
|
fi
|
|
fi
|
|
}
|
|
|
|
|
|
if [ "$1" == "open" ]; then
|
|
open
|
|
else
|
|
close
|
|
fi
|
|
|
|
|
|
|