summaryrefslogtreecommitdiff
path: root/dockd.sh
diff options
context:
space:
mode:
Diffstat (limited to 'dockd.sh')
-rwxr-xr-xdockd.sh54
1 files changed, 54 insertions, 0 deletions
diff --git a/dockd.sh b/dockd.sh
new file mode 100755
index 0000000..235035a
--- /dev/null
+++ b/dockd.sh
@@ -0,0 +1,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