{pkgs, ...}: let
  # Screenshot script with swappy integration
  screenshot = pkgs.writeShellScriptBin "screenshot" ''
    #!/usr/bin/env bash

    case "$1" in
      region)
        # Select region and edit
        grim -g "$(slurp)" - | swappy -f -
        ;;
      window)
        # Screenshot active window
        grim -g "$(hyprctl -j activewindow | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"')" - | swappy -f -
        ;;
      screen)
        # Screenshot current monitor
        grim -o "$(hyprctl -j monitors | jq -r '.[] | select(.focused) | .name')" - | swappy -f -
        ;;
      all)
        # Screenshot all monitors
        grim - | swappy -f -
        ;;
      region-save)
        # Quick region screenshot (save without editing and copy to clipboard)
        filepath=~/Pictures/Screenshots/$(date +'%Y-%m-%d_%H-%M-%S.png')
        grim -g "$(slurp)" "$filepath"
        wl-copy < "$filepath"
        notify-send "Screenshot saved" "Saved and copied to clipboard"
        ;;
      *)
        echo "Usage: screenshot {region|window|screen|all|region-save}"
        exit 1
        ;;
    esac
  '';
in {
  home.packages = with pkgs; [
    grim         # Screenshot utility
    slurp        # Region selector
    swappy       # Annotation tool
    jq           # For window selection
    wl-clipboard # For copying to clipboard
    screenshot   # Our wrapper script
  ];

  # Create Screenshots directory
  home.file."Pictures/Screenshots/.keep".text = "";

  # Swappy configuration
  home.file.".config/swappy/config".text = ''
    [Default]
    save_dir=$HOME/Pictures/Screenshots
    save_filename_format=screenshot_%Y%m%d_%H%M%S.png
    show_panel=true
    line_size=5
    text_size=20
    text_font=sans-serif
    paint_mode=brush
    early_exit=false
    fill_shape=false
  '';
}
