{ pkgs, inputs, flakeRoot, system, ... }: {

  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 = let
        mod = "SUPER";
        terminal = "kitty";
        menu = "anyrun";
        reloadWallpaper = "${inputs.nixpkgs-unstable.legacyPackages.${system}.hyprpaper}/bin/hyprpaper";
      in {
        exec-once = "${reloadWallpaper}";

        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 = [
          "${mod}, Q, killactive"
          "${mod}, SPACE, togglefloating"
          "${mod}, RETURN, exec, ${terminal}"
          "${mod}, down, movefocus, d"
          "${mod}, up, movefocus, u"
          "${mod}, right, movefocus, r"
          "${mod}, left, movefocus, l"

          "${mod} SHIFT, R, exec, ${reloadWallpaper}"

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

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

        misc = {
          force_default_wallpaper = 0;
        };
      };
    };
  };
}
