{
  pkgs,
  inputs,
  ...
}: {
  imports = [
    ./kitty.nix
    ./waybar.nix
    ./mako.nix
    ./walker.nix
    ./network-manager.nix
    ./rofi.nix
    ./cliphist.nix
    ./wlogout.nix
    ./wlsunset.nix
  ];

  home.packages = [
    inputs.hyprland-qtutils.packages."${pkgs.system}".default
    pkgs.brightnessctl
    pkgs.kdePackages.xwaylandvideobridge
    pkgs.wl-clipboard
    pkgs.playerctl

    pkgs.libsForQt5.qt5ct
    pkgs.kdePackages.qt6ct
  ];

  wayland.windowManager.hyprland = {
    enable = true;
    xwayland.enable = true;

    settings = {
      # Define Catppuccin Mocha Mauve colors
      "$rosewater" = "rgb(f5e0dc)";
      "$rosewaterAlpha" = "f5e0dc";

      "$flamingo" = "rgb(f2cdcd)";
      "$flamingoAlpha" = "f2cdcd";

      "$pink" = "rgb(f5c2e7)";
      "$pinkAlpha" = "f5c2e7";

      "$mauve" = "rgb(cba6f7)";
      "$mauveAlpha" = "cba6f7";

      "$red" = "rgb(f38ba8)";
      "$redAlpha" = "f38ba8";

      "$maroon" = "rgb(eba0ac)";
      "$maroonAlpha" = "eba0ac";

      "$peach" = "rgb(fab387)";
      "$peachAlpha" = "fab387";

      "$yellow" = "rgb(f9e2af)";
      "$yellowAlpha" = "f9e2af";

      "$green" = "rgb(a6e3a1)";
      "$greenAlpha" = "a6e3a1";

      "$teal" = "rgb(94e2d5)";
      "$tealAlpha" = "94e2d5";

      "$sky" = "rgb(89dceb)";
      "$skyAlpha" = "89dceb";

      "$sapphire" = "rgb(74c7ec)";
      "$sapphireAlpha" = "74c7ec";

      "$blue" = "rgb(89b4fa)";
      "$blueAlpha" = "89b4fa";

      "$lavender" = "rgb(b4befe)";
      "$lavenderAlpha" = "b4befe";

      "$text" = "rgb(cdd6f4)";
      "$textAlpha" = "cdd6f4";

      "$subtext1" = "rgb(bac2de)";
      "$subtext1Alpha" = "bac2de";

      "$subtext0" = "rgb(a6adc8)";
      "$subtext0Alpha" = "a6adc8";

      "$overlay2" = "rgb(9399b2)";
      "$overlay2Alpha" = "9399b2";

      "$overlay1" = "rgb(7f849c)";
      "$overlay1Alpha" = "7f849c";

      "$overlay0" = "rgb(6c7086)";
      "$overlay0Alpha" = "6c7086";

      "$surface2" = "rgb(585b70)";
      "$surface2Alpha" = "585b70";

      "$surface1" = "rgb(45475a)";
      "$surface1Alpha" = "45475a";

      "$surface0" = "rgb(313244)";
      "$surface0Alpha" = "313244";

      "$base" = "rgb(1e1e2e)";
      "$baseAlpha" = "1e1e2e";

      "$mantle" = "rgb(181825)";
      "$mantleAlpha" = "181825";

      "$crust" = "rgb(11111b)";
      "$crustAlpha" = "11111b";
      # ------------------------------ #

      "$mod" = "SUPER";
      "$terminal" = "kitty";
      "$files" = "dolphin";
      "$menu" = "rofi -show run";
      bind =
        [
          "$mod, Return, exec, $terminal"
          "$mod, SPACE, exec, $menu"
          "$mod, E, exec, $files"

          "$mod SHIFT, V, togglefloating,"
          "$mod SHIFT, Q, killactive,"

          "$mod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy"

	  # Scroll through existing workspaces with mod + scroll
	  "$mod, mouse_down, workspace, e+1"
	  "$mod, mouse_up, workspace, e-1"
        ]
        ++ (
          # workspaces
          # binds $mod + [shift +] {1..9} to [move to] workspace {1..9}
          builtins.concatLists (builtins.genList (
              i: let
                ws = i + 1;
              in [
                "$mod, code:1${toString i}, workspace, ${toString ws}"
                "$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}"
              ]
            )
            9)
        );

      bindm = [
        "$mod, mouse:272, movewindow"
        "$mod, mouse:273, resizewindow"

	
      ];

      bindel = [
        ",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 2%+"
        ",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 2%-"
        ",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
        ",XF86MonBrightnessUp, exec, brightnessctl s 2%+"
        ",XF86MonBrightnessDown, exec, brightnessctl s 2%-"
      ];

      bindl = [
        ", XF86AudioNext, exec, playerctl next"
	", XF86AudioPause, exec, playerctl play-pause"
	", XF86AudioPlay, exec, playerctl play-pause"
	", XF86AudioPrev, exec, playerctl previous"
      ];

      input = {
        kb_layout = "us";
        touchpad = {
          natural_scroll = true;
          scroll_factor = 0.4;
        };
      };

      general = {
        resize_on_border = true;

        gaps_in = 5;
        gaps_out = 5;

        border_size = 2;

        "col.active_border" = "rgba($mauveAlphaee)";
	"col.inactive_border" = "rgba($overlay1Alphaee)";
      };

      decoration = {
        rounding = 5;
	
	blur = {
	    enabled = true;
	    size = 3;
	    passes = 1;
	    vibrancy = 0.1696;
	};
      };

      gestures = {
        workspace_swipe = true;
	workspace_swipe_fingers = 3;
      };
    };

    extraConfig = ''
      exec-once waybar
    '';
  };
}
