{
  lib,
  osConfig,
  ...
}: let
  inherit (lib) optionals;
  inherit (osConfig.services.xserver) xkb;
  inherit (osConfig.vars) mainMonitor;

  miceNames = [
    "logitech-g502-x"
    "logitech-g502-hero-gaming-mouse"
  ];
  nagaConf = name: {
    inherit name;
    sensitivity = 0;
    accel_profile = "flat";
  };
in {
  wayland.windowManager.hyprland = {
    settings = {
      device = map (d: (nagaConf d)) miceNames;

      input = {
        kb_layout = xkb.layout;
        kb_variant = xkb.variant;
        follow_mouse = true;

        touchpad = {
          natural_scroll = true;
          disable_while_typing = false;
        };
      };

      bind = [
        ",XF86AudioPlay, exec, playerctl play-pause"
        ",XF86AudioStop, exec, playerctl stop"
        ",XF86AudioNext, exec, playerctl next"
        ",XF86AudioPrev, exec, playerctl previous"
      ];

      exec-once =
        optionals (! isNull mainMonitor)
        ["hyprctl dispatch focusmonitor ${mainMonitor}"];
    };
  };
}