{
  config,
  lib,
  pkgs,
  ...
}:

let
  screenshot_sway_config = pkgs.writeTextFile {
    name = "screenshot.conf";
    text =
      builtins.replaceStrings
        [ "@grim@" "@wl-screenrec@" "@pactl@" "@grep@" "@slurp@" ]
        [
          "${pkgs.grim}/bin/grim"
          "${pkgs.wl-screenrec}/bin/wl-screenrec"
          "${pkgs.pulseaudio}/bin/pactl"
          "${pkgs.gnugrep}/bin/grep"
          "${pkgs.slurp}/bin/slurp"
        ]
        ''
          # Screenshots
          #bindsym $mod+print exec @slurp@ | @grim@ -g - $(xdg-user-dir PICTURES)/$(date +'screenshot_%Y-%m-%d-%H%M%S.png')
          bindsym $mod+print exec @slurp@ | @grim@ -g - "$HOME/$(date +'screenshot_%Y-%m-%d-%H%M%S.png')"
          bindsym print exec @grim@ "$HOME/$(date +'screenshot_%Y-%m-%d-%H%M%S.png')"
          # Maybe add --audio flag? can optionally specify specific device name from `@pactl@ list sources | @grep@ Name`
          bindsym $mod+Shift+print exec @wl-screenrec@ -g "$(@slurp@)" --codec av1 -f "$HOME/$(date +'screencast_%Y-%m-%d-%H%M%S.mkv')"
          bindsym Shift+print exec @wl-screenrec@ --codec av1 -f "$HOME/$(date +'screencast_%Y-%m-%d-%H%M%S.mkv')"
          bindsym $mod+ctrl+Shift+print exec pkill -SIGINT @wl-screenrec@
          # Need to make a hotkey to end the recording
        '';
  };
in
{
  imports = [ ];

  config = lib.mkIf (config.me.graphical && config.me.sway.enable) {
    me.swayIncludes = [
      screenshot_sway_config
    ];
  };
}