{ 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 ]; }; }