LINUX.ORG.RU

Вьюер пикч в терминале

 , ,


2

3

Давным-давно, когда мы еще писали консольный вк, хотелось прикрутить пикчи к ncurses. Чекали w3m, еще пару тулов, но у всех были проблемы с рендером, саппорт не всех терминалов и т.д.

И тут я наткнулся на Überzug

Отличная вещь, написана на питоне, там и примеры для курсов в ридми.

В итоге написал такой небольшой скрипт (за убогий баш-код не пинать), который определяет максимально возможный сайз (без потери соотношения сторон) и нужную строку на которой рендерить пик.

#!/bin/bash
[[ -z "$1" ]] && echo "Error: image path not specified" && exit 1
source "`ueberzug library`"

echo -ne "\033[6n"
read -s -d\[ garbage
read -s -d R cursor_y
cursor_y=(${cursor_y//;/ })
cursor_y=`expr $cursor_y - 1`

tmp=`stty size`
size_y=`echo $tmp | cut -f1 -d' '`
size_x=`echo $tmp | cut -f2 -d' '`

max_height=`expr $size_y - $cursor_y`

ImageLayer 0< <(
    ImageLayer::add [identifier]="example0" [x]="0" [y]="$cursor_y" [max_width]="$size_x" [max_height]="$max_height" [path]="$1"
    read
)

По зависимостям один питон пакет:

  sudo pip install ueberzug

Сам скрипт тут

Делаем симлинк в /usr/bin/ и радуемся пикчам в терминале

Github

Telegram

>>> Просмотр (1920x1080, 3671 Kb)



Проверено: Shaman007 ()

Круто :) А как это работает?

Это именно терминалы внутри себя умеют предоставлять функциональность для отрисовки чего-то кроме разноцветных шрифтов?

Или это какая-то штука которая рисует картинку используя менеджер окон поверх определенного участка терминала?

bonta ()
Ответ на: комментарий от bonta

Xorg умеет отрисовывать изображения. Работает оно обычно отвратно.

mord0d ()
Ответ на: комментарий от BceM_IIpuBeT

-_-

Ты хотел, чтобы оно еще скролл эвенты ловило?

HaCk3D ()
Ответ на: комментарий от bonta

через иксы получает всю инфу о терминале и да

рисует поверх определенного участка терминала

HaCk3D ()
Ответ на: комментарий от HaCk3D

Я к тому, что это не просмотр «в терминале», а отдельное Х окно с нужными координатами.

BceM_IIpuBeT ★★ ()
Ответ на: комментарий от BceM_IIpuBeT

никто не говорил, что пик рендерится напрямую в терминале ;)

HaCk3D ()
Ответ на: комментарий от HaCk3D

Вьюер пикч в терминале

в

В оригинале «на терминале»

Überzug is a command line util which allows to draw images on terminals

BceM_IIpuBeT ★★ ()
Последнее исправление: BceM_IIpuBeT (всего исправлений: 1)
Ответ на: комментарий от AHAH

я слишком привык к termite и его фичам

так что нет, но спасибо)

HaCk3D ()

Ненужно же. Какая то подделка.

Odalist ★★★★★ ()
Ответ на: комментарий от Odalist

Тебе не нужно, мне нужно

Потребность - чисто субьективная вещь, прикинь. Твой комментарий тоже не нужен ;)

HaCk3D ()
Ответ на: комментарий от HaCk3D

мне нужно

Ты приверженец костылестроения?

Odalist ★★★★★ ()
Ответ на: комментарий от Odalist

Если есть предложения по поводу просмотра пикч не зависимо от терминала - добро пожаловать

HaCk3D ()
Ответ на: комментарий от AHAH

termite не поддерживает пик рендер w3m, который юзается в ranger

HaCk3D ()
Ответ на: комментарий от a1batross
img2sixel scrot.png

И ничего не происходит, я что-то не так делаю? :D

HaCk3D ()
Ответ на: комментарий от HaCk3D

Говорят, он плохо поддерживается в терминалах. Всех.

a1batross ★★★★★ ()

Вьюер пикч

Вьюер

пикч

@HaCk3D рускаме езыкам вырожаця ниумем да?

Github

Telegram

ЛОР — не рекламная площадка! ЯЗАБАН.

@JB, ну что за дичь теперь творится в галерее?

mord0d ()
Ответ на: комментарий от mord0d

рускаме езыкам вырожаця ниумем да?

Ты хочешь, чтобы там было написано «просмотрщик изображений в терминале»?

-_-

ЛОР — не рекламная площадка! ЯЗАБАН.

При чем тут рекламная площадка, на gh лежат дотфайлы, если кому-то понадобится.

HaCk3D ()
Ответ на: комментарий от HaCk3D

Ты хочешь, чтобы там было написано «просмотрщик изображений в терминале»?

Что тебе не понятно в «Русская информация об ОС Linux»?

на gh лежат дотфайлы

А в Telegram, конечно же, обсуждение сабжа, ага-ага.

mord0d ()

«отличная вещь» и питон это несовместимо. На питоне пишут только «говно», «и так сойдёт» или «работает и ладно».

Überzug is a command line util which allows to draw images on terminals by using child windows.

Кажется они изобрели... feh. Осталось узнать во сколько раз оно тяжелее и медленнее и насколько фич меньше содержит.

kirill_rrr ★★★★★ ()

Я правильно понимаю, что без иксов это невозможно и все это позёрство?

dk- ()

есть terminology, без всякого пистона может что угодно отображать. хоть видео, хоть графику, хоть в фоне терминала это всё запускать.

Iron_Bug ★★★ ()
Ответ на: комментарий от a1batross

На самом деле наоборот. Хорошо, но только в некоторых.

saahriktu ★★★★★ ()
Ответ на: комментарий от HaCk3D

я что-то не так делаю?

Нужен один из следующих терминалов или эмуляторов терминала:

Several of DEC VT series, VT240/VT241/VT330/VT340/VT282/VT284/VT286/VT382
RLogin (Japanese terminal emulator)
tanasinn (Works with firefox)
mlterm (Works on each of X, win32/cygwin and framebuffer version)
XTerm (configured with --enable-sixel-graphics and lanuched with "-ti 340" option)
yaft / yaftx (Works on framebuffer / X11 environment)
DECterm
Kermit for DOS
WRQ Reflection
ZSTEM

saahriktu ★★★★★ ()
Ответ на: комментарий от saahriktu

наконец-то единственный и адекватный ответ

спасибо)

HaCk3D ()
Ответ на: комментарий от saahriktu

Я не имел ввиду аппаратные.

Я видел только в 2-3 эмулятора терминала, которые прям гордятся поддержкой, но в общем-то на этом всё и заканчивается.

a1batross ★★★★★ ()

писали консольный вк,

фуфу:((( а теперь поди телеграм пишите:( лучше бы к егэ готовились...

crypt ★★★★★ ()
Последнее исправление: crypt (всего исправлений: 1)

Можно и без графики - есть такие вот просмотрщики:

  • timg - Terminal Image Viewer
  • tv - tool to quickly view high-resolution multi-band imagery directly in terminal
  • termimage - terminal image viewer
  • explosion - terminal image viewer

Главное - чтобы терминал поддерживал true color - берите из этого списка.

XVilka ★★★★ ()
Ответ на: комментарий от XVilka

Я уже чекал этот список

all libvte based terminals (since 0.36 version) libvte-based Termite

только вот в термите не заводится

глянул еще список того, что ты советуешь, одни шакалы :D

HaCk3D ()
Последнее исправление: HaCk3D (всего исправлений: 1)

Ну и извращение.
Ждем «консольный» браузер на электроне.

aplay ★★★★ ()
Ответ на: комментарий от aplay

Ждем «консольный» браузер на электроне.

Ждём дистрибутив линукса на электроне

Crocodoom ★★ ()
Ответ на: комментарий от BceM_IIpuBeT

on и in - разные вещи ... кстати, вот тут идёт схождение немецкого и английского: in - в, an (аналог on в англ.) - у, поблизости, рядом, возле

Desmond_Hume ★★★★★ ()
Ответ на: комментарий от HaCk3D

Ты хочешь, чтобы там было написано «просмотрщик изображений в терминале»?

А что плохого в этом переводе? По крайней мере, по-русски понятно. А то любят некоторые употреблять кальку. Помнится, в студенческую бытность переводил я текст с русского. Там было выражение «организация митинга». Это меня насторожило, потому что не очень вязалось с сутью текста, но мозг уже закипал, а автора отрывать не хотелось. Ну и перевел я это соответствующе. Только потом понял, что имелось в виду «meeting». Так что не надо выпендриваться!

denton ★★★★★ ()

Что же касается предмета дискуссии - оригинально, сам как-то думал, а не сделать ли такое же. Но зачем? Из терминала можно и полноценный просмотрщик вызвать, все равно изображение открыл и сразу закрыл, смысла нет им кусок терминала занимать. Интереснее был бы просмотр изображений из голой консоли.

denton ★★★★★ ()
Ответ на: комментарий от denton

Плохого ничего нет, просто звучит не очень, имхо.

«Вьюер пикч» - лаконичнее и проще

HaCk3D ()
Ответ на: комментарий от denton

Кусок терминала не занимается, после нажатия на энтер окно с пикчей пропадает

HaCk3D ()
Ответ на: комментарий от HaCk3D

Скорее всего собран со старым vte. Пинайте мэнтейнеров вашего дистрибутива.

XVilka ★★★★ ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)