# Monitor layout for 14900k (ported from NixOS-New `hosts/clients/14900k/home.nix`).
# Niri: `chiasson.desktop.niri.extraSettings` (`extraConfig` KDL + `binds` merged with defaults).
# Hyprland: `chiasson.desktop.hyprland.settings` (merged in HM when `chiasson.desktop.hyprland.enable`).

#TODO[epic=Moderate] Clean this up, move to host's configuration.nix.
{ config, lib, ... }:
{
  chiasson.desktop.niri.extraSettings = {
    extraConfig = ''
      output "DP-2" {
          mode "2560x1080@144"
          scale 1.0
          position x=0 y=0
          focus-at-startup
      }
      output "HDMI-A-3" {
          mode "1920x1080@60"
          scale 1.0
          position x=-1920 y=0
      }
      output "DP-4" {
          mode "1920x1080@144"
          scale 1.0
          position x=0 y=-1080
      }

    '';

    binds."XF86Tools".spawn = [
      "wpctl"
      "set-mute"
      "@DEFAULT_AUDIO_SOURCE@"
      "toggle"
    ];
  };

  chiasson.desktop.hyprland.settings = lib.mkIf config.chiasson.desktop.hyprland.enable (
    let
      monitorList = [
        "DP-2, 2560x1080@144, 0x0, 1"
        "DP-4, 1920x1080@144, 0x-1080, 1"
        "HDMI-A-3, 1920x1080@60, -1920x0, 1"
      ];
      workspaceList = [
        "1, monitor:DP-3, default:true"
        "2, monitor:DP-3"
        "3, monitor:DP-3"
        "4, monitor:Unknown-2, default:true"
        "5, monitor:Unknown-2"
        "6, monitor:Unknown-2"
        "7, monitor:DP-4"
        "8, monitor:DP-4"
        "9, monitor:DP-4"
      ];
    in
    {
      monitor = lib.mkBefore monitorList;
      workspace = workspaceList;
    }
  );
}
