From 3f07586ae946f5f5ca6b9231bdc67aed1f938d9c Mon Sep 17 00:00:00 2001 From: John Mertz Date: Sat, 23 Jul 2022 01:32:23 -0400 Subject: [PATCH] Minor bugs Cropping should be avoided if the image is the same size also, not just if it is smaller. I was using a minimum of 2 outputs while testing on my desktop. Revert that to 1. Remove trailing tabs. --- sway/wallpaper.pl | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sway/wallpaper.pl b/sway/wallpaper.pl index 0cc9f6b..f013c21 100755 --- a/sway/wallpaper.pl +++ b/sway/wallpaper.pl @@ -11,7 +11,7 @@ use AnyEvent::Sway; our $s = AnyEvent::Sway->new(); our $o = $s->get_outputs->recv(); -die "No outputs detected.\n" unless (scalar(@$o) > 1); +die "No outputs detected.\n" unless (scalar(@$o)); sub usage() { @@ -74,10 +74,10 @@ sub choose_image push(@i,$_); } } - + return $i[rand(scalar(@i))] || return undef; } - + sub get_size { my $target = shift; @@ -102,15 +102,15 @@ sub crop my $cropped = $image; $cropped =~ s#^.*/([^/]*)\.([^\.]+)$#$1-cropped.$2#; - + use Image::Magick; my $im = Image::Magick->new(); - + $im->Read($image); my ($iw, $ih) = $im->Get("columns", "rows"); # Return full size if it is smaller in either dimension then the output - if ($iw < $ow || $ih < $oh) { + if ($iw <= $ow || $ih <= $oh) { print "Not cropping $image because it is too small\n"; $cropped =~ s#-cropped\.([^\.]+)$#\.$1#; use File::Copy; @@ -121,11 +121,11 @@ sub crop print "Image size: $iw $ih\n"; print "output size: $ow $oh\n"; - + my ($x, $y); $x = int(rand($iw-$ow)); $y = int(rand($ih-$oh)); - + print "Cropping $image ${ow}x${oh}+${x}+${y}\n"; my $err = $im->Crop(geometry=>"${ow}x${oh}+${x}+${y}"); die "$err" if ($err);