From 58ef2fa9c88f4bac0589cd85e580b92ec069e397 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Sat, 15 Feb 2020 00:24:29 +0100 Subject: [PATCH] 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. --- termimg | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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', -- 2.30.0