{ pkgs, lib, osConfig,... }:
let cfg = osConfig.mods; in {
  # Modules
  mods.xdg.enable = true;
  mods.social.enable = true;
  mods.i3.enable = true;
  mods.terminal.zsh.enable = true;
  mods.terminal.emulator.enable = true;
  mods.terminal.development.enable = true;
  mods.terminal.tools.enable = true;
  mods.desktop.development.enable = true;
  mods.desktop.productivity.enable = true;
  mods.desktop.media.enable = true;

  # Hardware preferences

  ## Monitors
  xsession.windowManager.i3.config.workspaceOutputAssign = [{
    workspace = "1";
    output = "${cfg.monitors.primary.name}";
  }];
  services.autorandr.enable = true;
  programs.autorandr = {
    enable = true;
    hooks.postswitch = {
      "notify-i3" = "${pkgs.i3}/bin/i3-msg restart";
      "set-wallpaper" = ''
        ${lib.getExe pkgs.feh} --bg-fill --nofehbg ${./wallpaper.png}
      '';
    };
    profiles.default = {
      fingerprint = {
        "${cfg.monitors.primary.name}" = "00ffffffffffff0030e4190500000000001a01049522137803a1c59459578f27205054000000010101010101010101010101010101012e3680a070381f403020350058c210000019222480a070381f403020350058c210000019000000fd00283c43430e010a20202020202000000002000c47ff0a3c6e1f182b6e000000001c";
      };
      config = {
        "${cfg.monitors.primary.name}" =
           cfg.monitors.primary.config;
      };
    };
  };

  # wayland.windowManager.hyprland.settings = {
  #   monitor = [
  #     "DP-2,2560x1440@144,0x480,1"
  #     "HDMI-A-2,1920x1080,2560x0,1,transform,3"
  #   ];
  #   input.sensitivity = -0.4;
  # };

  # Version of first install
  home.stateVersion = "23.05";
}
