{ pkgs, ... }:
let
  tomlFormat = pkgs.formats.toml {};
in {
  home.packages = [ pkgs.shikane ];

  systemd.user.services.shikane = {
    Unit = {
      Description = "Shikane";
      After = [ "graphical-session.target" ];
    };
    Install = {
      WantedBy = [ "graphical-session.target" ];
    };
    Service = {
      Type = "simple";
      ExecStart = "${pkgs.shikane}/bin/shikane";
    };
  };

  xdg.configFile."shikane/config.toml".source = tomlFormat.generate "shikane-config" {
    profile = [
      {
        name = "desk-clam";
        exec = [ "notify-send shikane \"Profile $SHIKANE_PROFILE_NAME has been applied\"" ];
        output = [
          {
            search = "eDP-1";
            enable = false;
          }
          {
            search = [ "m=BenQ PD2725U" "s=N2N00414019" "v=PNP(BNQ)" ];
            enable = true;
            mode = "3840x2160@59.997Hz";
            position = "0,0";
            scale = 1;
          }
        ];
      }
      {
        name = "desk-dual";
        exec = [ "notify-send shikane \"Profile $SHIKANE_PROFILE_NAME has been applied\"" ];
        output = [
          {
            search = "eDP-1";
            enable = true;
            mode = "2560x1600@240Hz";
            position = "3840,0";
            adaptive_sync = true;
            scale = 1;
          }
          {
            enable = true;
            search = [ "m=BenQ PD2725U" "s=N2N00414019" "v=PNP(BNQ)" ];
            mode = "3840x2160@59.997Hz";
            position = "0,0";
            scale = 1;
          }
        ];
      }
      {
        name = "laptop";
        exec = [ "notify-send shikane \"Profile $SHIKANE_PROFILE_NAME has been applied\"" ];
        output = [
          {
            enable = true;
            search = "eDP-1";
            mode = "2560x1600@240Hz";
            position = "0,0";
            adaptive_sync = true;
            scale = 1;
          }
        ];
      }
    ];
  };
}
