From 3f341d9f5d03807e69ea20eb89bda6ad72e5a3d3 Mon Sep 17 00:00:00 2001 From: "Frankie B." Date: Sun, 10 Mar 2024 22:20:12 +0000 Subject: [PATCH] Lid open/close binds --- homes/floppydisk/hyprland.nix | 4 ++-- misc/scripts/lidclose.sh | 15 +++++++++++++++ misc/scripts/lidopen.sh | 3 +++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100755 misc/scripts/lidclose.sh create mode 100755 misc/scripts/lidopen.sh diff --git a/homes/floppydisk/hyprland.nix b/homes/floppydisk/hyprland.nix index 0d39b50..89fede5 100644 --- a/homes/floppydisk/hyprland.nix +++ b/homes/floppydisk/hyprland.nix @@ -79,8 +79,8 @@ }; bindl = [ - ",switch:on:Lid Switch,exec,hyprctl keyword monitor LVDS-1, disable" - ",switch:off:Lid Switch,exec,hyprctl keyword monitor LVDS-1, 1600x900, 0x0, 1" + ",switch:on:Lid Switch,exec,${/. + ../../misc/scripts/lidclose.sh}" + ",switch:off:Lid Switch,exec,${/. + ../../misc/scripts/lidopen.sh}" ]; bindm = [ diff --git a/misc/scripts/lidclose.sh b/misc/scripts/lidclose.sh new file mode 100755 index 0000000..c3c2673 --- /dev/null +++ b/misc/scripts/lidclose.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +# Count the number of connected monitors +connected_monitors=$(xrandr | grep " connected " | wc -l) +# Check if more than one monitor is connected +if [ $connected_monitors -gt 1 ]; then + # Disable LVDS-1 + hyprctl keyword monitor LVDS-1, disable +else + # Send computer to sleep + swayidle -w \ + timeout 1800 'hyprctl dispatch dpms off' \ + resume 'hyprctl dispatch dpms on' \ + timeout 3600 'systemctl suspend' +fi diff --git a/misc/scripts/lidopen.sh b/misc/scripts/lidopen.sh new file mode 100755 index 0000000..0269352 --- /dev/null +++ b/misc/scripts/lidopen.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +hyprctl keyword monitor LVDS-1, preferred, auto, 1