dotfiles/bin/executable_thinkpad-dock

47 lines
1.5 KiB
Bash

#!/usr/bin/env bash
set -xv
# Watch for the Keyboard instead of the Thinkpad dock since this keeps us from tripping
# into weird race conditions as the docks usb hub takes a few seconds to settle.
if [[ "${ACTION}" != "" && "${NAME}" != '"ZSA Technology Labs Inc ErgoDox EZ Shine Keyboard"' ]] &&
[[ "${ACTION}" != "" && "${NAME}" != '"ZSA Technology Labs ErgoDox EZ Shine Keyboard"' ]] &&
[[ "${ACTION}" != "" && "${NAME}" != '"ZSA Technology Labs Planck EZ Glow Keyboard"' ]]; then
exit 0
fi;
SWAYSOCK=/run/user/$(id -u)/sway-ipc.sock
DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/$(id -u)/bus"
export SWAYSOCK
export DBUS_SESSION_BUS_ADDRESS
if [[ "${ACTION}" == "add" ]]; then
ICON=$(readlink -f ~/.nix-profile/share/icons/gnome/48x48/devices/computer.png)
else
ICON=$(readlink -f ~/.nix-profile/share/icons/gnome/48x48/devices/display.png)
fi;
TITLE="${ACTION} ${NAME}"
/home/bascht/.nix-profile/bin/notify-send -t 3000 --icon="${ICON}" "Docking event" "$TITLE"
sleep 0.5
# Home and at my main desk
if swaymsg -t get_inputs | grep "ZSA Technology Labs Inc ErgoDox EZ Shine"; then
if grep closed /proc/acpi/button/lid/LID/state; then
swaymsg output eDP-1 disable
fi
# Home and on the side desk
elif swaymsg -t get_inputs | grep "ZSA Technology Labs Planck EZ Glow"; then
if grep closed /proc/acpi/button/lid/LID/state; then
swaymsg output eDP-1 disable
fi
# Whereever else
else
if ! swaymsg -t get_outputs | jq -e '.[] | select(.name == "eDP-1" and .active == true)'
swaymsg output eDP-1 enable
fi
fi;