{ config, ... }:
{
  wayland.windowManager.hyprland.enable = true;
  wayland.windowManager.hyprland.settings = {
    "$mod" = "SUPER";
    "monitor" = ",preferred,auto,1";
    general = {
      border_size = 4;
      gaps_in = 5;
      gaps_out = 10;
      layout = "dwindle";
    };

    decoration = {
      rounding = 24;
      blur = {
        enabled = true;
        size = 3;
        passes = 2;
        ignore_opacity = 0;
      };
      shadow = {
        enabled = false;
      };
    };

    animations = {
      enabled = true;
      bezier = [
        "smoothIn, 0.25, 1, 0.5, 1"
        "smoothOut, 0.25, 1, 0.5, 1"
        "overshot, 0.23, 0.5, 0.36, 1.1"
        "candy, 0.68, -0.6, 0.32, 1.5"
      ];

      animation = [
        "fade, 1, 6, overshot"
        "fadeIn, 1, 5, overshot"
        "fadeOut, 1, 5, overshot"
        "fadeDim, 1, 5, overshot"
        "windows, 1, 3, overshot, popin 80%"
        "border, 1, 6, default"
        "workspaces, 1, 6, overshot, fade"
        "specialWorkspace, 1, 8, smoothOut, slidevert"
      ];
    };
    input = {
      kb_layout = "eu";
      sensitivity = 0.3;
      accel_profile = "flat";
      natural_scroll = true;
    };

    exec-once = [
      "swww-daemon"
      "dunst"
    ];

    "bind" = [
      "$mod, Return, exec, foot"
      "$mod, space, exec, fuzzel"
      "$mod, Q, killactive"
      "$mod, v, togglefloating"
      "$mod, w, exec, waypaper"
      "$mod SHIFT, Q, exit"
      "$mod, J, togglesplit"
      "$mod, minus, togglespecialworkspace, magic"
      "$mod SHIFT, minus, movetoworkspace, special:magic"
      "$mod, B, exec, pkill -SIGUSR1 waybar"

      "$mod, 1, workspace, 1"
      "$mod, 2, workspace, 2"
      "$mod, 3, workspace, 3"
      "$mod, 4, workspace, 4"
      "$mod, 5, workspace, 5"
      "$mod, 6, workspace, 6"
      "$mod, 7, workspace, 7"
      "$mod, 8, workspace, 8"
      "$mod, 9, workspace, 9"
      "$mod, 0, workspace, 10"

      "$mod SHIFT, 1, movetoworkspace, 1"
      "$mod SHIFT, 2, movetoworkspace, 2"
      "$mod SHIFT, 3, movetoworkspace, 3"
      "$mod SHIFT, 4, movetoworkspace, 4"
      "$mod SHIFT, 5, movetoworkspace, 5"
      "$mod SHIFT, 6, movetoworkspace, 6"
      "$mod SHIFT, 7, movetoworkspace, 7"
      "$mod SHIFT, 8, movetoworkspace, 8"
      "$mod SHIFT, 9, movetoworkspace, 9"
      "$mod SHIFT, 0, movetoworkspace, 10"

      # Screenshots
      "Alt, S, exec, hyprshot -m output -m active --clipboard-only --freeze"
      "$mod SHIFT, S, exec, hyprshot -m region --clipboard-only --freeze"
      "Control_L&Alt, S, exec, hyprshot -m window --clipboard-only --freeze"

      "$mod, left, movefocus, l"
      "$mod, right, movefocus, r"
      "$mod, up, movefocus, u"
      "$mod, down, movefocus, d"
      "$mod SHIFT, left, movewindow, l"
      "$mod SHIFT, right, movewindow, r"
      "$mod SHIFT, up, movewindow, u"
      "$mod SHIFT, down, movewindow, d"
      "$mod, h, movefocus, l"
      "$mod, l, movefocus, r"
      "$mod, k, movefocus, u"
      "$mod, j, movefocus, d"
      "$mod SHIFT, h, movewindow, l"
      "$mod SHIFT, l, movewindow, r"
      "$mod SHIFT, k, movewindow, u"
      "$mod SHIFT, j, movewindow, d"

      "$mod, P, exec, /home/lucy/.local/bin/powermenu"
    ];

    binde = [
      ", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
      ", XF86AudioLowerVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-"
      ", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
      ", XF86AudioNext, exec, playerctl next"
      ", XF86AudioPause, exec, playerctl play-pause"
      ", XF86AudioPlay, exec, playerctl play-pause"
      ", XF86AudioPrev, exec, playerctl previous"
      ", XF86MonBrightnessDown, exec, brightnessctl s 10%-"
      ", XF86MonBrightnessUp, exec, brightnessctl s 10%+"
    ];
    bindm = [
      "$mod, mouse:272, movewindow"
      "alt, mouse:272, resizewindow"
    ];
  };
}
