- PVSM.RU - https://www.pvsm.ru -

Терминал с картинками на python: proof of concept

Поскольку TermKit [1]так и не допилили пока еще, смотреть хотя бы картинки в терминале — наверное было бы неплохо всё же (тем более что тут [2]и тут [3]говорят так). Да и самому мне это полезно, при работе с веб-проектами. Попробовал написать proof-of-concept-прототип. Под катом скрины, небольшое описание работы и ссылки на код.

Скрины

Начнем с того, как это выглядит:
Терминал с картинками на python: proof of concept
Терминал с картинками на python: proof of concept
Суть в следующем. Запустив терминал, набрав в нём
cat your_image.png | show
или
show your_image.jpg
можно увидеть картинку прямо в окне терминала.

Особенности реализации

Суть вывода картинки достаточно проста:
1. Берем стандартную для Gnome библиотеку vte,
2. Множественно наследуем класс vte.Terminal совместно с DrawingArea (да простят меня боги ООП),
3.…
4. Profit!

Всё сложнее с тем, как организовать обмен данными между процессами. Тут колесо не изобретешь, в proof-of-concept используются named-pipes и сигналы (чтобы сигнализировать о том, что пошла картинка). Поскольку кода немного, и других технологий не использовано… то на том можно пока остановиться.

Код

Найти всё это можно здесь [4].

Выводы

  • Картинки — это маловато будет. Было бы круто видики, html… но нужно подключать другие движки.
  • Пока нет поддержки copy-paste и прочих прелестей GUI. Хотя vte позволяет их реализовать.

Наверное, главное в том, что идея вывода графики в консоли реализуема не только через node.js и mime-types, как это сделано в TermKit, но и старыми добрыми средствами *nix. Вся остальная красота, конечно же, легче достаётся средствами webkit… и хотелось бы её дождаться.

P.S.

В чулан опубликовать не хватило кармы, публикую в хаб, где изначально было про TermKit.

Автор: S_A

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/python/20491

Ссылки в тексте:

[1] TermKit : http://habrahabr.ru/post/119550/

[2] тут : http://habrahabr.ru/post/119550/#comment_3909357

[3] тут : http://habrahabr.ru/post/119550/#comment_3909358

[4] здесь: https://github.com/AndruxaSazonov/termpy

[5] Источник: http://habrahabr.ru/post/159341/