summaryrefslogtreecommitdiff
path: root/dockd.sh
blob: 235035a1781132b8b7a868d2e7e38f88dc88e0ff (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/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