{inputs, ...}: {
  imports = [inputs.niri-flake.homeModules.niri];

  programs.niri = {
    enable = true;

    settings = {
      spawn-at-startup = [
        {command = ["swww-daemon"];}
        {command = ["swww" "img" "/home/benag/.nix-config/assets/pictures/bocchi_wallpaper.png"];}
        {command = ["waybar"];}
      ];

      input = {
        keyboard = {
          xkb = {
            layout = "cz";
            options = "caps:escape";
          };
        };
      };

      outputs = {
        "DVI-D-1".mode = {
          width = 1920;
          height = 1080;
        };

        "HDMI-A-1".mode = {
          width = 1680;
          height = 1050;
        };
      };

      environment = {
        NIXOS_OZONE_WL = "1";
        SDL_VIDEODRIVER = "wayland";
        CLUTTER_BACKEND = "wayland";
      };

      gestures = {
        hot-corners.enable = false;
      };

      layout = {
        gaps = 8;

        default-column-width = {proportion = 0.5;};

        preset-column-widths = [
          {proportion = 0.33333;}
          {proportion = 0.5;}
          {proportion = 0.66667;}
          {proportion = 1.0;}
        ];

        preset-window-heights = [
          {proportion = 0.33333;}
          {proportion = 0.5;}
          {proportion = 0.66667;}
          {proportion = 1.0;}
        ];
      };

      prefer-no-csd = true;
      cursor.size = 14;
      screenshot-path = "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png";
      hotkey-overlay.skip-at-startup = true;

      window-rules = [
        {
          geometry-corner-radius = {
            top-left = 5.0;
            top-right = 5.0;
            bottom-left = 5.0;
            bottom-right = 5.0;
          };
        }
        {
          clip-to-geometry = true;
        }
      ];

      input = {
        keyboard.numlock = true;
        warp-mouse-to-focus.enable = true;

        focus-follows-mouse = {
          enable = true;
          max-scroll-amount = "0%";
        };
      };

      binds = {
        "Mod+Q".action.close-window = [];
        "Mod+Return".action.spawn = ["foot"];
        "Mod+A".action.spawn = ["wofi" "--show" "drun"];
        "Mod+B".action.spawn = ["zen-beta"];
        "Mod+D".action.spawn = ["discord"];

        "Mod+O".action.toggle-overview = [];

        "Mod+Alt+H".action.focus-monitor-left = [];
        "Mod+Alt+L".action.focus-monitor-right = [];

        "Mod+Alt+Left".action.focus-monitor-left = [];
        "Mod+Alt+Right".action.focus-monitor-right = [];

        "Mod+Ctrl+J".action.focus-workspace-down = [];
        "Mod+Ctrl+K".action.focus-workspace-up = [];

        "Mod+Ctrl+Down".action.focus-workspace-down = [];
        "Mod+Ctrl+Up".action.focus-workspace-up = [];

        "Mod+H".action.focus-column-left = [];
        "Mod+L".action.focus-column-right = [];
        "Mod+J".action.focus-window-down = [];
        "Mod+K".action.focus-window-up = [];

        "Mod+Left".action.focus-column-left = [];
        "Mod+Right".action.focus-column-right = [];
        "Mod+Down".action.focus-window-down = [];
        "Mod+Up".action.focus-window-up = [];

        "Mod+WheelScrollDown".action.focus-column-right = [];
        "Mod+WheelScrollUp".action.focus-column-left = [];

        "Mod+Y".action.consume-or-expel-window-left = [];
        "Mod+X".action.consume-or-expel-window-right = [];

        "Mod+R".action.switch-preset-column-width = [];
        "Mod+Shift+R".action.switch-preset-window-height = [];
        "Mod+F".action.maximize-column = [];
        "Mod+Shift+F".action.fullscreen-window = [];
        "Mod+V".action.toggle-window-floating = [];

        "Mod+Minus".action.set-column-width = ["-10%"];
        "Mod+Equal".action.set-column-width = ["+10%"];

        "Mod+Shift+Q".action.quit = [];

        "Print".action.screenshot = [];
        "Ctrl+Print".action.screenshot-screen = [];
        "Alt+Print".action.screenshot-window = [];

        "Mod+Escape".action.toggle-keyboard-shortcuts-inhibit = [];

        "XF86AudioPlay".action.spawn = ["playerctl" "play-pause"];
        "XF86AudioNext".action.spawn = ["playerctl" "next"];
        "XF86AudioPrev".action.spawn = ["playerctl" "previous"];
        "XF86AudioStop".action.spawn = ["playerctl" "stop"];

        "XF86AudioRaiseVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"];
        "XF86AudioLowerVolume".action.spawn = ["wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"];
        "xF86AudioMute".action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"];
      };
    };
  };
}
