# helium laptop
{ pkgs, lib, ... }:

{
  imports = [
    ../lib/common.nix
    ../lib/urxvt.nix
    ../lib/linux.nix
    ../lib/emacs.nix
    ../lib/ssh.nix
    ../lib/packages.nix
    # ../lib/email.nix
  ];

  home = {
    packages = with pkgs; [
      gnumeric
      wmctrl
      zulip
      obs-studio
      obsidian
    ];
  };

  services.polybar.enable = true;
  services.polybar.script = "polybar top &";
  services.polybar.config."bar/top".monitor = "\${env:MONITOR:HDMI-2}";
  services.polybar.config."bar/top".monitor-fallback = "\${env:MONITOR:eDP-1}";

  programs.autorandr.enable = true;

  programs.autorandr.hooks.postswitch = {
    "restart-polybar" = "systemctl --user restart polybar.service";
  };

  programs.autorandr.profiles = let
    fingerprint = {
      # get fingerprints with `autorandr --fingerprint`
      eDP-1 = "00ffffffffffff000daea814000000002c170104951f11780237459e55539229125054000000010101010101010101010101010101015e358096703814402c1c240034ad10000018000000fe004e3134304847452d4541310a20000000fe00434d4e0a202020202020202020000000fe004e3134304847452d4541310a20001f";
      HDMI-2 = "00ffffffffffff0006b3ca28305f010025200103803e22782aad65ad50459f250e50542308008140818081c081009500b300d1c001014dd000a0f0703e80303035006d552100001a565e00a0a0a02950302035006d552100001e000000fd00283c1ea03c000a202020202020000000fc0041535553205647323839513141012b02034df154010304121305141f1007060260610e0f15161d1e2309070783010000e200d567030c001000383c67d85dc401788003681a00000101283ef0e305e301e40f003000e606070159521c023a801871382d40582c45006d552100001e00000000000000000000000000000000000000000000000000000000000000009e";
    };

    externalMonitor = rotate: {
      enable = true;
      primary = true;
      position = "0x0";
      mode = "2560x1440";
      dpi = 221;
      rate = "60.00";
      inherit rotate;
    };

    laptopScreen = {
      enable = true;
      primary = true;
      position = "0x0";
      mode = "1920x1080";
      rate = "60.00";
      dpi = 156;
    };

  in {
    #docked-portrait = {
    #  fingerprint = { inherit (fingerprint) HDMI-2; };
    #  config = {
    #    eDP-1.enable = false;
    #    HDMI-2 = externalMonitor "right";
    #  };
    #};
    docked = {
      inherit fingerprint;
      config = {
        eDP-1.enable = false;
        HDMI-2 = externalMonitor "normal";
      };
    };
    laptop = {
      fingerprint = { inherit (fingerprint) eDP-1; };
      config = {
        HDMI-2.enable = false;
        eDP-1 = laptopScreen;
      };
    };
  };

  services.betterlockscreen.enable = true;

  services.picom = {
    enable = false;
    backend = "glx";
    vSync = true;

    # Transparency/Opacity
    inactiveOpacity = 0.70;
    activeOpacity = 0.95;
    opacityRules = [
      "100:class_g   *?= 'Firefox'"
      "100:class_g   *?= 'Deadd-notification-center'"
      "100:class_g   *?= 'Rofi'"
    ];

    # Fading
    fade = true;
    fadeDelta = 5;

    # Shadows
    shadowExclude = [
      "class_g = 'eww-topbar-btw'"
    ];

    settings = {
      # Blur
      blur-method = "dual_kawase";
      blur-strength = 8;
      blur-backgroud-exclude = [
        "class_g = 'eww-topbar-btw'"
      ];

      # Radius
      corner-radius = 10;
      round-borders = 1;
      rounded-corners-exclude = [
        "class_g = 'Custom-taffybar'"
      ];
    };
  };

  # this doesn't have an 'enable' option??
  #services.muchsync = {
  #  remotes = {
  #    lithium = {
  #      frequency = "*:0/05";
  #      upload = true;
  #      remote = {
  #        host = "dev.simatime.com";
  #        checkForModifiedFiles = true;
  #        importNew = true;
  #      };
  #      local = {
  #        checkForModifiedFiles = true;
  #        importNew = true;
  #      };
  #    };
  #  };
  #};
}