diff options
Diffstat (limited to '.local/bin/linkview')
-rwxr-xr-x | .local/bin/linkview | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/.local/bin/linkview b/.local/bin/linkview index 1523e33..ec928a4 100755 --- a/.local/bin/linkview +++ b/.local/bin/linkview @@ -14,13 +14,20 @@ use POSIX qw(setsid); use feature qw(switch); no warnings qw(experimental::smartmatch); +my $menu = "dmenu"; +my $IMGVIEW_PATH = 'nsxiv -b -a'; + +if (defined $ENV{WAYLAND_DISPLAY}) { + $menu = "wmenu"; + $IMGVIEW_PATH = 'imv'; +} + use constant { TERMINAL_PATH => $TERMINAL, MPV_PATH => 'mpv', YTDL_PATH => 'yt-dlp', FETCH_PATH => 'fetch', CURL_PATH => 'curl', - IMGVIEW_PATH => 'nsxiv', ZATHURA_PATH => 'zathura', W3M_PATH => 'w3m', BROWSER_PATH => $BROWSER, @@ -34,7 +41,7 @@ use constant PROG_LIST => "" . "ytdl" . "\n" . "ytdl thumbnail" . "\n" . "fetch" . "\n" . -"nsxiv" . "\n" . +"img" . "\n" . "zathura" . "\n" . "w3m" . "\n" . "browser" . "\n" . @@ -88,7 +95,7 @@ sub open_link $ret = -1; if ($a eq "ytdl") { $list = QUAL_LIST; - $quality = `printf "$list" | dmenu -i -l 8`; + $quality = `printf "$list" | $menu -l 8`; if (not $quality) { exit 0; } @@ -328,12 +335,14 @@ sub open_link $file_name = $tmp; $file_name =~ s/.+\///g; chomp $file_name; - system(IMGVIEW_PATH, '-b', '-a', $file_name); + system("magick", $file_name, $file_name . ".jpg"); + system($IMGVIEW_PATH . " " . $file_name . ".jpg"); unlink($file_name); + unlink($file_name . ".jpg"); exit 0; } } - elsif ($a eq "nsxiv" || $a eq "zathura") { + elsif ($a eq "img" || $a eq "zathura") { $pid = fork(); if (not $pid) { setsid(); @@ -355,8 +364,8 @@ sub open_link system(FETCH_PATH, '-q', $url); } } - if ($a eq "nsxiv") { - exec(IMGVIEW_PATH, '-b', '-a', $file_name); + if ($a eq "img") { + exec($IMGVIEW_PATH . " " . $file_name); } else { exec(ZATHURA_PATH, $file_name); @@ -393,7 +402,7 @@ sub dmenu_prompt my $answer; my $list = PROG_LIST; - $answer = `printf "$list\nURL: $url\n" | dmenu -i`; + $answer = `printf "$list\nURL: $url\n" | $menu -i`; chomp $answer; return $answer; } |