From: Mischa POSLAWSKY Date: Fri, 14 Feb 2020 23:24:29 +0000 (+0100) Subject: compensate for known terminal aspect ratio X-Git-Url: http://git.shiar.nl/minime.git/commitdiff_plain/58ef2fa9c88f4bac0589cd85e580b92ec069e397?hp=10db3aab85650b4732a491621e99d487200931de compensate for known terminal aspect ratio Instead of assuming oldschool/high fonts, calculate from window resolution and characters, supported by many terminals (at least urxvt, xterm, mlterm, stterm, putty). Depend on Term::ReadKey instead of calling a linux-specific ioctl, since it's commonly installed already and obviously better for compatibility. --- diff --git a/termimg b/termimg index 40bf6ab..6876158 100755 --- a/termimg +++ b/termimg @@ -54,10 +54,16 @@ eval { push @info, "# $md5 ($filesize)"; } or warn $@; +my $aspect = eval { + require Term::ReadKey; + my ($w, $h, $x, $y) = Term::ReadKey::GetTerminalSize(); + return $x/$w / $y*$h; +}; + open my $pgm, '-|', convert => ( $file => -delete => '1--1', - '+distort' => SRT => '0,0 1,.56 0', + $aspect ? ('+distort' => SRT => "0,0 1,$aspect 0") : (), -thumbnail => $size || '40x12', -colorspace => 'gray', '-normalize',