mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2025-12-06 17:17:22 +01:00
50 lines
1.5 KiB
Nix
50 lines
1.5 KiB
Nix
_:
|
|
{
|
|
services.logind = {
|
|
lidSwitch = "suspend";
|
|
lidSwitchDocked = "ignore";
|
|
};
|
|
services.acpid = {
|
|
enable = true;
|
|
handlers.lidClosed = {
|
|
event = "button/lid \\w+ close";
|
|
action = ''
|
|
cat /sys/class/backlight/amdgpu_bl1/device/enabled
|
|
if grep -Fxq disabled /sys/class/backlight/amdgpu_bl1/device/enabled
|
|
then
|
|
echo "Lid closed. Disabling fprintd."
|
|
systemctl stop fprintd
|
|
ln -s /dev/null /run/systemd/transient/fprintd.service
|
|
systemctl daemon-reload
|
|
fi
|
|
'';
|
|
};
|
|
handlers.lidOpen = {
|
|
event = "button/lid \\w+ open";
|
|
action = ''
|
|
if ! $(systemctl is-active --quiet fprintd); then
|
|
echo "Lid open. Enabling fprintd."
|
|
rm -f /run/systemd/transient/fprintd.service
|
|
systemctl daemon-reload
|
|
systemctl start fprintd
|
|
fi
|
|
'';
|
|
};
|
|
lidEventCommands =
|
|
''
|
|
export PATH=$PATH:/run/current-system/sw/bin
|
|
export WAYLAND_DISPLAY=wayland-1
|
|
export XDG_RUNTIME_DIR=/run/user/1000
|
|
export SWAYSOCK=$(ls /run/user/1000/sway-ipc.* | head -n 1)
|
|
|
|
LID_STATE=$(cat /proc/acpi/button/lid/*/state | grep -q closed && echo "closed" || echo "open")
|
|
DOCKED=$(swaymsg -t get_outputs | grep -q 'HDMI\|DP' && echo "docked" || echo "undocked")
|
|
|
|
if [ "$LID_STATE" == "closed" ] && [ "$DOCKED" == "docked" ]; then
|
|
swaymsg output eDP-2 disable
|
|
else
|
|
swaymsg output eDP-2 enable
|
|
fi
|
|
'';
|
|
};
|
|
}
|