{ pkgs, inputs, ... }: {

  programs.hyprland.enable = true;

  home-manager.users.coded = {
    home.packages = [ pkgs.hyprpicker ];

    wayland.windowManager.hyprland = {
      enable = true;

      xwayland.enable = true;
      systemd.enable = true;

      plugins = [
        
      ];


      settings = {
        "$mainMod" = "SUPER";
        "$terminal" = "kitty";
        "$menu" = "anyrun";

        general = {
          gaps_in = 5;
          gaps_out = 20;

          border_size = 2;
          "col.active_border" = "rgba(71AEF5EE) rgba(F2D478EE) 45deg";
          "col.inactive_border" = "rgba(C4C4C4EE)";

          layout = "dwindle";
        };

        decoration = {
          rounding = 10;

          drop_shadow = true;
          shadow_range = 4;
          shadow_render_power = 3;
          "col.shadow" = "rgba(1a1a1aee)";
        };

        input = {
          kb_layout = "us";
          numlock_by_default = true;
        };

        monitor = [
          "DP-1,1920x1080@165,0x0,1"
          "DP-2,1920x1080@165,1920x0,1"
          "HDMI-A-1,1920x1080@60,960x-1080,1"
          ",preferred,auto,1"
        ];

        xwayland = {
          force_zero_scaling = true;
        };

        master = {
          new_is_master = true;
        };

        bind = [
          "$mainMod, Q, killactive"
          "$mainMod, SPACE, togglefloating"
          "$mainMod, RETURN, exec, $terminal"
          "$mainMod, down, movefocus, d"
          "$mainMod, up, movefocus, u"
          "$mainMod, right, movefocus, r"
          "$mainMod, left, movefocus, l"

          "ALT, SPACE, exec, $menu"
        ] ++ (
          builtins.concatLists (builtins.genList (
              x: let
                ws = let
                  c = (x + 1) / 10;
                in
                  builtins.toString (x + 1 - (c * 10));
              in [
                "$mainMod, ${ws}, workspace, ${toString (x + 1)}"
                "$mainMod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
              ]
            )
            10)
        );

        bindm = [
          "$mainMod, mouse:272, movewindow"
          "$mainMod, mouse:273, resizewindow"
        ];
      };
    };
  };

  # services.xserver.enable = true;
  # services.xserver.videoDrivers = [ "amdgpu" ];

  # services.xserver.displayManager.sddm.enable = true;
  # services.xserver.desktopManager.plasma5.enable = true;

  # hardware.opengl.driSupport = true;
  # # For 32 bit applications
  # hardware.opengl.driSupport32Bit = true;

  # programs.dconf.enable = true;

  # services.xserver = {
  #   layout = "us";
  #   xkbVariant = "";
  # };

  hardware.opengl = {
    enable = true;
    driSupport = true;
    driSupport32Bit = true;
    extraPackages = [
      pkgs.vaapiVdpau
    ];
  };
}
