From 42bcd16f65ec5ac778d01b3be187b8c57301d312 Mon Sep 17 00:00:00 2001 From: Donovan Glover Date: Tue, 2 Apr 2024 16:31:23 -0400 Subject: [PATCH] meta(nix): Replace inline YAML with builtins.toJSON --- modules/dual-function-keys.nix | 73 +++++++++++++++++++++------------- 1 file changed, 45 insertions(+), 28 deletions(-) diff --git a/modules/dual-function-keys.nix b/modules/dual-function-keys.nix index a964bffd..8d7a3a89 100644 --- a/modules/dual-function-keys.nix +++ b/modules/dual-function-keys.nix @@ -5,34 +5,51 @@ enable = true; plugins = with pkgs.interception-tools-plugins; [ dual-function-keys ]; - udevmonConfig = with pkgs; /* yaml */ '' - - JOB: "${interception-tools}/bin/intercept -g $DEVNODE | ${interception-tools-plugins.dual-function-keys}/bin/dual-function-keys -c /etc/dual-function-keys.yaml | ${interception-tools}/bin/uinput -d $DEVNODE" - DEVICE: - EVENTS: - EV_KEY: [KEY_CAPSLOCK, KEY_ESC] - ''; + udevmonConfig = with pkgs; builtins.toJSON [ + { + JOB = "${interception-tools}/bin/intercept -g $DEVNODE | ${interception-tools-plugins.dual-function-keys}/bin/dual-function-keys -c /etc/dual-function-keys.yaml | ${interception-tools}/bin/uinput -d $DEVNODE"; + DEVICE = { + EVENTS = { + EV_KEY = [ "KEY_CAPSLOCK" "KEY_ESC" ]; + }; + }; + } + ]; }; - environment.etc."dual-function-keys.yaml".text = /* yaml */ '' - TIMING: - - TAP_MILLISEC: 1000 - - DOUBLE_TAP_MILLISEC: 0 - - SYNTHETIC_KEYS_PAUSE_MILLISEC: 0 - MAPPINGS: - - KEY: KEY_CAPSLOCK - TAP: KEY_ESC - HOLD: KEY_LEFTCTRL - - KEY: KEY_SYSRQ - TAP: KEY_SYSRQ - HOLD: KEY_RIGHTMETA - - KEY: KEY_LEFTMETA - TAP: [ KEY_LEFTMETA, KEY_F1 ] - HOLD: KEY_LEFTMETA - - KEY: KEY_RIGHTSHIFT - TAP: [ KEY_LEFTMETA, KEY_F2 ] - HOLD: KEY_RIGHTSHIFT - - KEY: KEY_RIGHTALT - TAP: KEY_GRAVE - HOLD: KEY_RIGHTALT - ''; + environment.etc."dual-function-keys.yaml".text = builtins.toJSON { + TIMING = [ + { TAP_MILLISEC = 1000; } + { DOUBLE_TAP_MILLISEC = 0; } + { SYNTHETIC_KEYS_PAUSE_MILLISEC = 0; } + ]; + + MAPPINGS = [ + { + KEY = "KEY_CAPSLOCK"; + TAP = "KEY_ESC"; + HOLD = "KEY_LEFTCTRL"; + } + { + KEY = "KEY_SYSRQ"; + TAP = "KEY_SYSRQ"; + HOLD = "KEY_RIGHTMETA"; + } + { + KEY = "KEY_LEFTMETA"; + TAP = [ "KEY_LEFTMETA" "KEY_F1" ]; + HOLD = "KEY_LEFTMETA"; + } + { + KEY = "KEY_RIGHTSHIFT"; + TAP = [ "KEY_LEFTMETA" "KEY_F2" ]; + HOLD = "KEY_RIGHTSHIFT"; + } + { + KEY = "KEY_RIGHTALT"; + TAP = "KEY_GRAVE"; + HOLD = "KEY_RIGHTALT"; + } + ]; + }; }