Консоль Linux обычно имеет дисплей с клавиатурой и используется для подключения к главному компьютеру для обмена данными и отображения результатов обработки. В большинстве случаев сама обработка выполняется хост-компьютером. Однако есть гики, которые хотят на консоли просматривать веб-страницы, и есть программное обеспечение, такие как текстовые браузеры типа «Browsh», которые могут отображать веб-сайты в графическом виде без графического интерфейса.
Большинство основных дистрибутивов Linux поставляются с предустановленными Firefox или Falkon. И идея текстового браузера для консоли Linux может показаться абсурдной. В конце концов, первые браузеры были основаны на графическом интерфейсе, а современный Интернет так вообще состоит из графики и JavaScript — элементов, с которыми консольным браузерам трудно или даже невозможно работать. Но именно эта несовместимость с современной Сетью делает консольные браузеры такими привлекательными для некоторых пользователей. Для этого есть несколько причин. Интерфейсы таких браузеров чрезвычайно просты в компоновке и работают очень быстро. Текстовые браузеры требуют меньше пропускной способности для работы, и загружают страницы намного быстрее, чем графические. Кроме того, графические браузеры потребляют больше ресурсов ЦП для Javascript, CSS и т. д. Также изображения, автоматически воспроизводимые видео и звуковые эффекты могут отвлекать внимание пользователя.
Но как можно сохранить малое потребление ресурсов ЦП текстовых браузеров, при этом отображая графику через консоль?
Через Carbonyl.
❯Сколько вешать...
Консольные браузеры позволяют просматривать веб-страницы на компьютерах с исключительно низкой пропускной способностью и низкими характеристиками, а также блокируют отвлекающие факторы и дают больший контроль над конфиденциальностью.
На момент написания статьи домашняя страница Lenta.ru весила почти 10 МБ (замерено через 2ip.ru). Это довольно много (оптимально веб-страницы должны весить не больше 3 МБ). Если вы посещаете новостные порталы или другие сайты каждый день с помощью обычного браузера, потребление трафика может быстро увеличиться, а это уже влетит вам в копеечку. Если вы используете браузер через консоль, вы загружаете HTML, но не изображения, видео и рекламу, экономя десятки, а то и сотни МБ в течение дня. JavaScript также не выполняется в текстовом браузере, а это означает, что программные платные сети, такие как The New York Times, не срабатывают. Вы можете читать столько статей, сколько хотите, без перерывов и бесплатно.
Новый браузер Carbonyl, основан на движке Chromium и способен отображать на консоли любой сайт, включая YouTube. Браузер поддерживает почти все веб-API, включая WebGL, WebGPU и инструменты для воспроизведения видео, звука и анимации. Работа возможна как при прямом запуске консоли, так и при подключении по SSH. Carbonyl можно назвать лучшим браузером Linux. Это полноценный браузер, который соответствует и совместим с современными стандартами, а это означает, что страницы открываются так, как должны, и пользователь может смотреть потоковое видео в консоли Linux.
Все консольные браузеры имеют ограничения: Lynx — старейший браузер из тех, которые до сих пор поддерживается, функциональный и мало потребляет трафик, но не поддерживает мультимедиа любого типа. w3m может отображать изображения, но полностью нарушает форматирование и имеет тенденцию тормозить и зависать. Browsh, который работает, запуская Firefox в автономном режиме и подключаясь к нему через протокол автоматизации, достаточно ресурсоёмкий и медленный, и, несмотря на лежащий в его основе стек Firefox, тоже имеет серьёзные проблемы с форматированием.
Carbonyl является ответвлением проекта Google Chromium и не имеет ни одной из упомянутых выше проблем. Страницы открываются и отображаются мгновенно — быстрее, чем браузер с графическим интерфейсом на рабочем столе. Использование ресурсов невелико, особенно если запускать Linux без среды рабочего стола. Более того, Carbonyl обладает почти всеми возможностями обычного Chromium. Можно смотреть видео на YouTube или играть в онлайн-игры такие, как например Doom. Миниатюры предварительного просмотра видео, GIF-файлы запускаются автоматически.
К сожалению, в настоящее время расширения не поддерживаются, хотя, вероятно, будут в будущем.
В то время как вход в онлайн-аккаунты является рутиной с такими браузерами, как Lynx, с Carbonyl можно быстро и без усилий войти в Gmail, Slack, Asana и OpenAI. Carbonyl протестирован на ряде консолях Linux, включая XFCE, GNOME, kitty и Cool Retro Terminal. Браузер был плавным и быстрым на всех. Также Carbonyl удалённо запускается на Raspberry Pi через SSH в ЭЛТ.
❯Как запустить Carbonyl на консоли Linux
Carbonyl доступен в виде образа Docker, поэтому убедитесь, что у вас установлен Docker и что ваш аккаунт входит в группу Docker.
Загрузите образ Carbonyl Docker:
docker run -ti fathyb/carbonyl https://duckduckgo.com
При первом запуске этой команды придётся подождать до нескольких минут, пока образы будут загружены, но при любом последующем использовании Carbonyl запустится мгновенно.
Carbonyl не имеет встроенной панели поиска, и нужно ввести любой URL-адрес в качестве аргумента командной строки. Оказавшись на странице, можно использовать мышку, чтобы переходить по ссылкам, вводить текст в текстовые поля и сёрфить как обычно.
Carbonyl представляет веб-контент, используя шрифты вашей консоли для текста и сплошные цветные блоки для изображений, поэтому ожидайте пикселизации с низким разрешением при просмотре. Качество изображения можно значительно улучшить, уменьшив размер шрифта консоли, хотя будет означать, что текст окажется нечитаемым. Ещё один небольшой недостаток заключается в том, что Carbonyl не передает аудио в потоковом режиме, поэтому, если вы вдруг решите использовать его для просмотра фильмов онлайн, то вам придётся включить субтитры.
Carbonyl на GitHub.
Fathy Boundjadj, один из разработчиков Carbonyl, изначально работал над программой под названием html2svg, написанный на Rust, и который преобразует веб-страницы в векторные (SVG, PDF) или растровые изображения (PNG, JPEG, WebP). html2svg включён как среда выполнения Carbonyl. По словам Фати, помимо гарантии того, что консоль может «отрисовывать моноширинные символы в фиксированной сетке», он мало что может сделать, как правило, «перемещать курсор», «отображать символы Unicode» и «устанавливать цвет фона и цвет переднего плана».
Для отображения графики задействованы возможности консоли, такие как xterm-256, который выводит unicode-символы в цвете — в качестве виртуального пикселя используется символ U+2584 ("▄"). Пользуясь тем, что соотношение сторон в этом символе 1:2, имеется возможность отображения на его основе двух квадратных пикселей, верхний из которых задаёт цвет фона, а нижний — переднего плана.
Для отслеживания движения мыши, перемещения курсора и изменения цвета текста используются escape-последовательности xterm. Для терминала xterm возможно задействование RGB-палитры 6x6x6, а при установке режима COLORTERM — 24-разрядной полноцветной палитры RGB. Текст отрисовывается в фиксированном размере, отдельно от изображений. Для перехвата текста в библиотеке Skia подключается отдельный обработчик. Код отрисовки оптимизирован для работы в терминале и позволяет выводить графику с частотой обновления на уровне 60 FPS с минимальной нагрузкой на CPU.
Через html2svg вот так открывается страница YouTube с помощью эмулятора консоли.
После улучшения анимации и прокрутки, решения проблем с макетом, Carbonyl сможет отображать Википедию или воспроизводить DOOM.
Комментарии (12)
alexander222
00.00.0000 00:00+5Тема экономии траффика не понятна, чтобы преобразовать картинку в символы ее все равно надо скачать.
login0101
00.00.0000 00:00+4возможно в переводе что-то потерялось и имеется в виду вариант когда этот "браузер" работает где-то на сервере, а ты подключаешься к нему как к удалённому терминалу по ssh или типа того
vlad196
00.00.0000 00:00Всё равно спорно. Мозайка символов получаются + в потоке и при каждом взаимодействии с браузером оно постоянно грузит с сервера новую картинку, ну и поток данных получается избыточен (всегда грузит одно и то же количество символов на окно, даже если это пустой белый фон). Намного экономней будет просто запретить картинки и видео в браузере и пусть полностью прогрузит страницу. Один фиг при таком отображении медиа это нечитабельно будет.
В общем да. Непонятно откуда взяты многие тезисы, учитывая, что это просто браузер, который качает и преобразовывает изображение, как и остальные браузеры, но только с выводом в CLI
invasy
00.00.0000 00:00+5Это перевод ведь (причём корявый). Почему нет плашки соответствующей со ссылкой на оригинал? На английском понятней было бы.
Upd: нашёл оригинальную статью.
baldr
00.00.0000 00:00+4p<censored>hub в этом браузере прямо вышиб слезу ностальгии по интернету конца 90-х.
zbot
00.00.0000 00:00угу понятно типа как GeForce NOW только теперь уже браузер для слабых компьютеров. Что там дальше редактор текста и таблицы запущенные где-то в облаке и в виде картинок пересылаемые на компьютер пользователя?
thevlad
00.00.0000 00:00+1редактор текста и таблицы запущенные где-то в облаке и в виде картинок пересылаемые на компьютер пользователя
Так вроде уже давно, как есть RDP и VCN.
dmitryrf
00.00.0000 00:00Перевод ужасный
является рутиной с такими браузерами, как Lynx
в оригиналеis a chore with browsers such as Lynx
Здесь не рутина, а кошмар, который противопоставлен удобству Carbonyl, о чём и сказано во второй части предложения. А вы смысл полность перевернули и потеряли в процессе.
up40k
Из текста может сложиться впечатление, что экономия трафика относится и к этому браузеру. Потому что следующий абзац будто бы развивает тему, а не является противопоставлением.
Автономный и headless режимы - это две разные сущности.
После изображений уже не смог читать, извините.