{ config, pkgs, lib, ... }:

let
  cfg = config.nomarchy.system.features.makima;
in
{
  config = lib.mkIf cfg {
    # If the user has makima-bin available in their overlays (as they originally used a custom package),
    # this will install it. Otherwise, it will fail evaluation if not available in nixpkgs.
    environment.systemPackages = [ pkgs.makima-bin ];

    environment.etc."makima/AT Translated Set 2 keyboard.toml".source = ../../features/apps/makima + "/AT Translated Set 2 keyboard.toml";

    systemd.services.makima = {
      description = "Makima key remapping service";
      wantedBy = [ "multi-user.target" ];
      serviceConfig = {
        User = config.services.displayManager.autoLogin.user;
        Environment = "MAKIMA_CONFIG=/etc/makima";
        ExecStart = "${pkgs.makima-bin}/bin/makima";
        Restart = "on-failure";
      };
    };
  };
}
