From d12041ba46fda46e803b170faec86f2d0d33a99b Mon Sep 17 00:00:00 2001
From: Oliver Davies <oliver@oliverdavies.dev>
Date: Thu, 26 Dec 2024 00:13:42 +0000
Subject: [PATCH] Make autorandr configurable per host

---
 nix/modules/nixos/autorandr.nix | 39 ++++++++++++++++++++++++++-------
 1 file changed, 31 insertions(+), 8 deletions(-)

diff --git a/nix/modules/nixos/autorandr.nix b/nix/modules/nixos/autorandr.nix
index 9adbaea6..b00d34dd 100644
--- a/nix/modules/nixos/autorandr.nix
+++ b/nix/modules/nixos/autorandr.nix
@@ -1,20 +1,41 @@
+{ config, ... }:
+
 {
   services.autorandr = {
     enable = true;
 
     profiles =
       let
-        fingerprint = "00ffffffffffff000dae081400000000251d0104a51f117802ee95a3544c99260f505400000001010101010101010101010101010101363680a0703820403020350035ad1000001a000000fe004e3134304843472d4551310a20000000fe00434d4e0a202020202020202020000000fe004e3134304843472d4551310a200084";
-        name = "eDP-1";
+        hosts = {
+          lemp11 = {
+            internal = {
+              fingerprint = "00ffffffffffff000dae081400000000251d0104a51f117802ee95a3544c99260f505400000001010101010101010101010101010101363680a0703820403020350035ad1000001a000000fe004e3134304843472d4551310a20000000fe00434d4e0a202020202020202020000000fe004e3134304843472d4551310a200084";
+              name = "eDP-1";
+            };
+
+            desktop.name = "HDMI-1";
+          };
+
+          t490 = {
+            internal = {
+              fingerprint = "00ffffffffffff0030e4fa0500000000001c0104a51f117802aa95955e598e271b5054000000010101010101010101010101010101012e3680a070381f403020350035ae1000001ab62c80f4703816403020350035ae1000001a000000fe004c4720446973706c61790a2020000000fe004c503134305746412d53504432004d";
+              name = "eDP-1";
+            };
+
+            desktop.name = "HDMI-2";
+          };
+        };
+
+        host = hosts."${config.networking.hostName}";
       in
       {
         default = {
           fingerprint = {
-            "${name}" = fingerprint;
+            "${host.internal.name}" = host.internal.fingerprint;
           };
 
           config = {
-            "${name}" = {
+            "${host.internal.name}" = {
               enable = true;
               mode = "1920x1080";
             };
@@ -23,9 +44,9 @@
 
         desktop = {
           config = {
-            "${name}".enable = false;
+            "${host.internal.name}".enable = false;
 
-            "HDMI-1" = {
+            "${host.desktop.name}" = {
               enable = true;
               mode = "2560x1440";
               primary = true;
@@ -34,8 +55,10 @@
           };
 
           fingerprint = {
-            "${name}" = fingerprint;
-            "HDMI-1" = "00ffffffffffff004c2d1710424e58432b1f0103803f24782ac8b5ad50449e250f5054bfef80714f810081c081809500a9c0b300010108e80030f2705a80b0588a0078682100001e000000fd00324b1e873c000a202020202020000000fc004c5532385235350a2020202020000000ff0048345a524130303132380a20200183020335f04961120313041f10605f2309070783010000e305c0006b030c002000b83c2000200167d85dc401788003e20f81e3060501023a801871382d40582c450078682100001e023a80d072382d40102c458078682100001e04740030f2705a80b0588a0078682100001e565e00a0a0a029503020350078682100001a000049";
+            "${host.internal.name}" = host.internal.fingerprint;
+
+            "${host.desktop.name}" =
+              "00ffffffffffff004c2d1710424e58432b1f0103803f24782ac8b5ad50449e250f5054bfef80714f810081c081809500a9c0b300010108e80030f2705a80b0588a0078682100001e000000fd00324b1e873c000a202020202020000000fc004c5532385235350a2020202020000000ff0048345a524130303132380a20200183020335f04961120313041f10605f2309070783010000e305c0006b030c002000b83c2000200167d85dc401788003e20f81e3060501023a801871382d40582c450078682100001e023a80d072382d40102c458078682100001e04740030f2705a80b0588a0078682100001e565e00a0a0a029503020350078682100001a000049";
           };
         };
       };