lavaridge: add support for dynamic resolution based on charging status
Some checks are pending
git-mirror / gitlab-sync (push) Waiting to run
nix-build / default-build (push) Waiting to run
nix-build / fallarbor-build (push) Waiting to run
nix-build / lavaridge-build (push) Waiting to run
nix-build / mauville-build (push) Waiting to run
nix-build / pacifidlog-build (push) Waiting to run
nix-build / petalburg-build (push) Waiting to run
nix-build / rustboro-build (push) Waiting to run
nix-build / slateport-build (push) Waiting to run
nix-check / fmt-check (push) Waiting to run
nix-check / eval-check (push) Waiting to run

This commit is contained in:
Aly Raffauf 2024-10-16 01:00:10 -04:00
parent 317755bad2
commit bf4ba5c5c6

View file

@ -2,6 +2,7 @@
{ {
config, config,
lib, lib,
pkgs,
self, self,
... ...
}: { }: {
@ -38,6 +39,31 @@
environment.variables.GDK_SCALE = "2"; environment.variables.GDK_SCALE = "2";
networking.hostName = "lavaridge"; networking.hostName = "lavaridge";
services.udev.extraRules = let
hyprlandDynamicRes = pkgs.writeShellScript "hyprland-dynamic-resolution" ''
MON="eDP-1"
RES="2880x1920"
for dir in /run/user/*; do
for hypr_dir in "$dir/hypr/"*/; do
socket="''${hypr_dir}.socket.sock"
if [[ -S $socket ]]; then
monitor_info=$(echo -e "monitors" | ${lib.getExe pkgs.socat} - UNIX-CONNECT:"$socket")
if echo "$monitor_info" | grep -q "$MON"; then
echo -e "keyword monitor $MON, $RES@$1, 0x0, 2, vrr, $2" | ${lib.getExe pkgs.socat} - UNIX-CONNECT:"$socket"
fi
fi
done
done
'';
in ''
SUBSYSTEM=="power_supply", ATTR{online}=="1", ACTION=="change", RUN+="${hyprlandDynamicRes} 120 1"
SUBSYSTEM=="power_supply", ATTR{online}=="0", ACTION=="change", RUN+="${hyprlandDynamicRes} 60 0"
'';
system.stateVersion = "24.05"; system.stateVersion = "24.05";
ar = { ar = {