Представлен новый консольный web-браузер Carbonyl, основанный на движке Chromium и способный отображать в терминале любые сайты, в том числе YouTube. Браузер поддерживает почти все Web API, включая WebGL, WebGPU и средства для воспроизведения видео, звука и анимации. Работа возможна как при прямом запуске терминала, так и при подключении через SSH. Обвязка вокруг движка Chromium написана на языках TypeScript, C++ и Rust.

Проект продолжает развитие утилиты html2svg, которая изначально была разработана для преобразования HTML и <canvas> в векторные (SVG, PDF) или растровые изображения (PNG, JPEG, WebP), а теперь задействована в качестве основы для отрисовки в терминал. Для вывода графики задействованы возможности терминалов, таких как xterm-256, выводить unicode-символы в цвете - в качестве виртуального пикселя используется символ U+2584 ("▄"). Пользуясь тем, что соотношение сторон в этом символе 1:2, имеется возможность отображения на его основе двух квадратных пикселей, верхний из которых задаёт цвет фона, а нижний - переднего плана.

Для отслеживания движения мыши, перемещения курсора и изменения цвета текста используются escape-последовательности xterm. Для терминала xterm возможно задействование RGB-палитры 6x6x6, а при установке режима COLORTERM - 24-разрядной полноцветной палитры RGB. Текст отрисовывается в фиксированном размере, отдельно от изображений. Для перехвата текста в библиотеке Skia подключается отдельный обработчик.Код отрисовки оптимизирован для работы в терминале и позволяет выводить графику с частотой обновления на уровне 60 FPS с минимальной нагрузкой на CPU.

// cc-by opennet.ru
// converted with crypt’s opennet autoreposter <<<

  • cocucka
    link
    fedilink
    arrow-up
    0
    ·
    3 years ago

    Охуеть, к нему бы еще сиксель прикрутить и можно вообще из консоли не вылезать

    • cryptOP
      link
      fedilink
      arrow-up
      0
      ·
      3 years ago

      сиксель

      сиски-чего?

      да, вещь крутая, но я так и не понял, где они взяли терминал с таким разрешением. у меня стандартный 80x25 строк.

        • cryptOP
          link
          fedilink
          arrow-up
          0
          ·
          3 years ago

          сходу не въехал, как они реализуют вывод группы пихелей в позицию терминала. но почему ты говоришь, что этого нет? твоя ссылка - это прямо, как скрины в новости.

          • cocucka
            link
            fedilink
            arrow-up
            0
            ·
            3 years ago

            Я про графику, в сикселе вывод точечный, а эта хрень использует символы.

            • Вячеслав
              link
              fedilink
              arrow-up
              0
              ·
              3 years ago

              А этот сиксель работает только если запускаешь графику? Или по ssh тоже? Все скрины вроде из графического режима там

              • cocucka
                link
                fedilink
                arrow-up
                0
                ·
                3 years ago

                Эмулятор терминала должен поддерживать. Про ссш хз

            • cryptOP
              link
              fedilink
              arrow-up
              0
              ·
              3 years ago

              он не точечный, а там матрица 6х6.

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

    • sorrow
      link
      fedilink
      arrow-up
      0
      ·
      3 years ago

      Это хуйня. Вот если бы они запилили чтобы браузер запускался на голом VT и рендерил напрямую в DRM мимо всяких иксов-вейландов, с аппаратным ускорением и норм шрифтами, вот это было бы круто.

      • JamesHolden
        link
        fedilink
        arrow-up
        0
        ·
        3 years ago

        Ну и нафейхоа.

        Тут основная фишка, что можно на удаленной машине запускать по ssh.

          • Александр
            link
            fedilink
            arrow-up
            0
            ·
            3 years ago

            Зачем его вообще запускать? У вас там графический режим ещё не освоили? Он в Windows 3 уже был

      • tiinn
        link
        fedilink
        arrow-up
        0
        ·
        3 years ago

        Это хуйня. Вот если бы они запилили чтобы браузер запускался на голом VT и рендерил напрямую в DRM мимо всяких иксов-вейландов… вот это было бы круто.

        Плюсую. Через svgalib, например.

    • sorrow
      link
      fedilink
      arrow-up
      0
      ·
      3 years ago

      Недавно кстати в MPV запилили вывод видео через sixel. Непонятно зачем, но прикольно.