diff options
author | Patrick Spek <p.spek@tyil.nl> | 2021-07-05 15:06:20 +0200 |
---|---|---|
committer | Patrick Spek <p.spek@tyil.nl> | 2021-08-14 12:01:21 +0200 |
commit | 72eb38c69d59ff29aa1662f4576ddf1fa3b35b9e (patch) | |
tree | caf14c079a87609d0b35847731639516be59eeea | |
parent | 8b99216c7223501d1b62ef2052723cf6f42ead01 (diff) |
Update scrot commands
-rwxr-xr-x | .local/bin/get-focussed-monitor | 43 | ||||
-rwxr-xr-x | .local/bin/mscrot | 6 | ||||
-rwxr-xr-x | .local/bin/sscrot | 8 | ||||
-rwxr-xr-x | .local/bin/wscrot | 6 |
4 files changed, 63 insertions, 0 deletions
diff --git a/.local/bin/get-focussed-monitor b/.local/bin/get-focussed-monitor new file mode 100755 index 0000000..4d7bbd4 --- /dev/null +++ b/.local/bin/get-focussed-monitor @@ -0,0 +1,43 @@ +#!/usr/bin/env raku + +use v6.d; + +sub MAIN ( + #Bool:D :$shell = False, + Bool:D :$coords = False, +) { + my @xrandr = shell('xrandr | grep -w connected', :out).out.slurp.lines; + my %monitors; + + my $mouse = shell('xdotool getmouselocation', :out).out.slurp.trim ~~ m/ + 'x:' $<x> = [ \d+ ] + \s* + 'y:' $<y> = [ \d+ ] + /; + + for @xrandr -> $monitor { + my $match = $monitor ~~ m/ + $<width> = [ \d+ ] + 'x' + $<height> = [ \d+ ] + '+' + $<x> = [ \d+ ] + '+' + $<y> = [ \d+ ] + /; + + next unless $match<x> ≤ $mouse<x> ≤ ($match<x> + $match<width>); + next unless $match<y> ≤ $mouse<y> ≤ ($match<y> + $match<height>); + + say qq[MONITOR="{$monitor.words.first}"]; + + if ($coords) { + say qq[W="{$match<width>}"]; + say qq[H="{$match<height>}"]; + say qq[X="{$match<x>}"]; + say qq[Y="{$match<y>}"]; + } + + last; + } +} diff --git a/.local/bin/mscrot b/.local/bin/mscrot new file mode 100755 index 0000000..3848aaa --- /dev/null +++ b/.local/bin/mscrot @@ -0,0 +1,6 @@ +#!/usr/bin/env sh + +p="~/pictures/scrot" +cmd="mv \$f ${p} && notify-send \"Screenshot\" \"Saved to ${p}/\$f\"" + +scrot -mz multi-%Y%m%d%H%M%S.png -e "${cmd}" diff --git a/.local/bin/sscrot b/.local/bin/sscrot new file mode 100755 index 0000000..2d4c049 --- /dev/null +++ b/.local/bin/sscrot @@ -0,0 +1,8 @@ +#!/usr/bin/env sh + +p="~/pictures/scrot" +cmd="mv \$f ${p} && notify-send \"Screenshot\" \"Saved to ${p}/\$f\"" + +eval "$(get-focussed-monitor --coords)" + +scrot -a $X,$Y,$W,$H -z screen-%Y%m%d%H%M%S.png -e "${cmd}" diff --git a/.local/bin/wscrot b/.local/bin/wscrot new file mode 100755 index 0000000..2970713 --- /dev/null +++ b/.local/bin/wscrot @@ -0,0 +1,6 @@ +#!/usr/bin/env sh + +p="~/pictures/scrot" +cmd="mv \$f ${p} && notify-send \"Screenshot\" \"Saved to ${p}/\$f\"" + +scrot -bsz window-%Y%m%d%H%M%S.png -e "${cmd}" |