#!/bin/sh dock() { echo Docking... xrandr \ --output DP-0 --off \ --output DP-1 --off \ --output DP-2 --primary --mode 2560x1440 --pos 0x0 --rotate normal --dpi 96 \ --output DP-3 --off \ --output DP-4 --off \ --output VGA-0 --off killall xautolock xautolock \ -notify 10 \ -time 10 \ -locker "i3lock -n -f -c 000000 -i ~/.local/share/wallpapers/lock.png; sleep 0.2" \ -notifier "notify-send -t=10000 '10 seconds to lock...'" sysctl hw.snd.default_unit=1 echo Docked } undock() { echo Undocking... xrandr \ --output DP-0 --off \ --output DP-1 --off \ --output DP-2 --off \ --output DP-3 --primary --mode 1920x1080 --transform none --pos 0x0 --rotate normal --dpi 96 \ --output DP-4 --off \ --output VGA-0 --off killall xautolock xautolock \ -killtime 10 \ -killer "sleep 0.5; doas acpiconf -s3" \ -notify 10 \ -time 10 \ -locker "i3lock -n -f -c 000000 -i ~/.local/share/wallpapers/lock.png; sleep 0.2" \ -notifier "notify-send -t=10000 '10 seconds to lock...'" sysctl hw.snd.default_unit=4 echo Undocked } while : do is_lid_open=$(sysctl -n dev.acpi_lid.0.state) if [ "$is_lid_open" != "$was_lid_open" ] then was_lid_open=$is_lid_open [ "$is_lid_open" = "0" ] && dock || undock fi sleep 10 done