From 1466078ae64d883bb67e2f09bcd737ad3bbeff91 Mon Sep 17 00:00:00 2001
From: Myned <dev@bjork.tech>
Date: Mon, 10 Feb 2025 18:15:33 -0600
Subject: [PATCH] keyd: ignore ydotool device

Signed-off-by: Myned <dev@bjork.tech>
---
 options/custom/services/keyd.nix | 211 ++++++++++++++++---------------
 1 file changed, 109 insertions(+), 102 deletions(-)

diff --git a/options/custom/services/keyd.nix b/options/custom/services/keyd.nix
index 99600f3..403be73 100644
--- a/options/custom/services/keyd.nix
+++ b/options/custom/services/keyd.nix
@@ -19,117 +19,124 @@ in {
       #!! Binds use qwerty without layouts
       # https://github.com/rvaiya/keyd/blob/master/docs/keyd.scdoc
       #?? keyd monitor
-      keyboards.default.settings = {
-        #// global.disable_modifier_guard = 1; # Disable extraneous Control injection
+      keyboards.default = {
+        ids = [
+          "*"
+          "-2333:6666:69419150" # ydotool
+        ];
 
-        control.esc = "toggle(qwerty)"; # Control+Esc toggles qwerty
-        shift.shift = "capslock"; # Both Shifts toggle Capslock
+        settings = {
+          #// global.disable_modifier_guard = 1; # Disable extraneous Control injection
 
-        "meta+control+shift" = {
-          # Mouse repeat macro
-          "," = "macro2(300, 100, leftmouse)";
-          "." = "macro2(300, 100, rightmouse)";
-          "/" = "macro2(300, 100, middlemouse)";
-        };
+          control.esc = "toggle(qwerty)"; # Control+Esc toggles qwerty
+          shift.shift = "capslock"; # Both Shifts toggle Capslock
 
-        # Emulate function keys
-        function = {
-          space = "playpause";
-          rightalt = "previoussong";
-          rightcontrol = "nextsong";
-          backspace = "mute";
-          minus = "volumedown";
-          equal = "volumeup";
+          "meta+control+shift" = {
+            # Mouse repeat macro
+            "," = "macro2(300, 100, leftmouse)";
+            "." = "macro2(300, 100, rightmouse)";
+            "/" = "macro2(300, 100, middlemouse)";
+          };
 
-          ";" = "pageup";
-          "." = "pagedown";
-          "'" = "home";
-          "/" = "end";
-          "\\" = "sysrq"; # Printscreen
-        };
+          # Emulate function keys
+          function = {
+            space = "playpause";
+            rightalt = "previoussong";
+            rightcontrol = "nextsong";
+            backspace = "mute";
+            minus = "volumedown";
+            equal = "volumeup";
 
-        qwerty = {
-          capslock = "capslock";
-          backspace = "backspace";
+            ";" = "pageup";
+            "." = "pagedown";
+            "'" = "home";
+            "/" = "end";
+            "\\" = "sysrq"; # Printscreen
+          };
 
-          "w" = "w";
-          "," = ",";
-          "s" = "s";
-          "a" = "a";
-          "c" = "c";
-          "g" = "g";
-          "q" = "q";
-          "e" = "e";
-          "]" = "]";
-          "d" = "d";
-          "/" = "/";
-          ";" = ";";
-          "'" = "'";
-          "r" = "r";
-          "f" = "f";
-          "t" = "t";
-          "u" = "u";
-          "." = ".";
-          "j" = "j";
-          "k" = "k";
-          "p" = "p";
-          "o" = "o";
-          "z" = "z";
-          "h" = "h";
-          "i" = "i";
-          "[" = "[";
-          "v" = "v";
-          "l" = "l";
-          "m" = "m";
-          "n" = "n";
-          "x" = "x";
-          "b" = "b";
-          "y" = "y";
-        };
+          qwerty = {
+            capslock = "capslock";
+            backspace = "backspace";
 
-        main = {
-          capslock = "backspace";
-          backspace = "delete";
+            "w" = "w";
+            "," = ",";
+            "s" = "s";
+            "a" = "a";
+            "c" = "c";
+            "g" = "g";
+            "q" = "q";
+            "e" = "e";
+            "]" = "]";
+            "d" = "d";
+            "/" = "/";
+            ";" = ";";
+            "'" = "'";
+            "r" = "r";
+            "f" = "f";
+            "t" = "t";
+            "u" = "u";
+            "." = ".";
+            "j" = "j";
+            "k" = "k";
+            "p" = "p";
+            "o" = "o";
+            "z" = "z";
+            "h" = "h";
+            "i" = "i";
+            "[" = "[";
+            "v" = "v";
+            "l" = "l";
+            "m" = "m";
+            "n" = "n";
+            "x" = "x";
+            "b" = "b";
+            "y" = "y";
+          };
 
-          compose = "layer(function)";
-          leftmeta = "layer(alt)";
-          leftalt = "layer(meta)";
-          rightalt = "layer(meta)";
+          main = {
+            capslock = "backspace";
+            backspace = "delete";
 
-          # Colemak default
-          "w" = "w";
-          "," = ",";
-          "s" = "r";
-          "a" = "a";
-          "c" = "c";
-          "g" = "d";
-          "q" = "q";
-          "e" = "f";
-          "]" = "]";
-          "d" = "s";
-          "/" = "/";
-          ";" = "o";
-          "'" = "'";
-          "r" = "p";
-          "f" = "t";
-          "t" = "g";
-          "u" = "l";
-          "." = ".";
-          "j" = "n";
-          "k" = "e";
-          "p" = ";";
-          "o" = "y";
-          "z" = "z";
-          "h" = "h";
-          "i" = "u";
-          "[" = "[";
-          "v" = "v";
-          "l" = "i";
-          "m" = "m";
-          "n" = "k";
-          "x" = "x";
-          "b" = "b";
-          "y" = "j";
+            compose = "layer(function)";
+            leftmeta = "layer(alt)";
+            leftalt = "layer(meta)";
+            rightalt = "layer(meta)";
+
+            # Colemak default
+            "w" = "w";
+            "," = ",";
+            "s" = "r";
+            "a" = "a";
+            "c" = "c";
+            "g" = "d";
+            "q" = "q";
+            "e" = "f";
+            "]" = "]";
+            "d" = "s";
+            "/" = "/";
+            ";" = "o";
+            "'" = "'";
+            "r" = "p";
+            "f" = "t";
+            "t" = "g";
+            "u" = "l";
+            "." = ".";
+            "j" = "n";
+            "k" = "e";
+            "p" = ";";
+            "o" = "y";
+            "z" = "z";
+            "h" = "h";
+            "i" = "u";
+            "[" = "[";
+            "v" = "v";
+            "l" = "i";
+            "m" = "m";
+            "n" = "k";
+            "x" = "x";
+            "b" = "b";
+            "y" = "j";
+          };
         };
       };
     };