{pkgs, ...}: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ]; # ------------ System ------------ time.timeZone = "America/New_York"; networking.hostName = "bicep"; services.interception-tools = { enable = true; plugins = with pkgs.interception-tools-plugins; [ dual-function-keys ]; udevmonConfig = '' - JOB: "${pkgs.interception-tools}/bin/intercept -g $DEVNODE | ${pkgs.interception-tools-plugins.dual-function-keys}/bin/dual-function-keys -c /etc/interception/dual-function-keys/my-mappings.yaml | ${pkgs.interception-tools}/bin/uinput -d $DEVNODE" DEVICE: NAME: "AT Translated Set 2 keyboard" ''; }; environment.etc."interception/dual-function-keys/my-mappings.yaml".text = '' MAPPINGS: - KEY: KEY_CAPSLOCK TAP: KEY_ESC HOLD: KEY_LEFTMETA HOLD_START: BEFORE_RELEASE ''; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It's perfectly fine and recommended to leave # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "23.05"; # Did you read the comment? }