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 /.local/bin/get-focussed-monitor | |
parent | 8b99216c7223501d1b62ef2052723cf6f42ead01 (diff) |
Update scrot commands
Diffstat (limited to '.local/bin/get-focussed-monitor')
-rwxr-xr-x | .local/bin/get-focussed-monitor | 43 |
1 files changed, 43 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; + } +} |