, и она потрясающая! Напоминаю, f4 — эксперимент по переписыванию Far Manager на go, чтобы сразу и кроссплатформенно и асинхронно и красиво.

С красоты и начнём! На днях во фреймворк консольных интерфейсов vtui, который пишется под f4, добавлена поддержка Auto layout. Можно делать диалоги как у Apple! А чтобы это смотрелось красиво, предусмотрены две стратегии хинтинга: байткод, по аналогии с тем, как это сделано для рендеринга шрифтов у TrueType, и эвристики, как у FreeType. Для этого потребовалось портировать на go быструю считалку cassowary (пользуйтесь! там и wasm есть), а потом изобрести дискретный cossowary специально под консоль — задаем стандарты интерфейсов, люблю такое! И заодно — новая, уже полностью своя цветовая тема, не пытающаяся повторять что-то из Far, Turbo Vision или Monokai.

Показываю на китайском, чтобы заодно похвастаться — попилили под капотом поддержку Юникода, больше никаких проблем с символами двойной ширины. И нулевой. И даже с BiDi. А ещё иероглифы сверху панелей — это, оказывается, очень красиво!

И это одна из причин, за которые я люблю консоль. Она задаёт строгие рамки. Здесь при всём желании очень трудно сделать плохой интерфейс. А вот графика требует от программиста быть дизайнером (а это не наша канцелярия — конец довольно предсказуем, запустите почти что угодно опенсорсное).

Однако вернёмся к фичам. Мы (в данном случае это были я и модель, окей :) сделали переводы на все международные языки и на языки всех стран, где популярны двухпанельники (смотрели по доступной статистике скачиваний). Бенгальский — это красиво.

Да, я тоже заметил не переведенные строчки — обычно не отвлекаюсь на перевод на все языки каждой новой фичи, а перевожу время от времени накопившееся пачками, на экране как раз накопившееся. Есть инструмент, который мониторит такое, чтобы я видел объемы.

Кстати об инструментах. В процессе работы над переводами выяснилось, что нейронки на этой задаче делают очень типовые ошибки. В итоге написал линтер нейропереводов, он же детектор слопа. Если модель случайно перепутала языки, или решила вставить в перевод свой Очень Важный Комментарий, упадёт CI.

Этот релиз наполнен как новыми фичами (например, вы можете примонтировать любую VFS из f4 как папку через FUSE), так и стабилизацией старых (например, дошлифована поддержка разных кодировок в редакторе, или вот переводы допилили с минимальным хелпом). Все новые в статью не поместятся (или это будет статья целиком из-под нейронки, которую никто не дочитает даже до середины), так что рассказываю в случайном порядке самое интересное :) Например, из того, что мне давно хотелось попробовать — вкладки, как в ConEmu. И да, это очень удобная штука оказалась.

Открытые вкладки: панели, просмотрщик, другие панели, редактор
Открытые вкладки: панели, просмотрщик, другие панели, редактор

Кстати, о ConEmu. Его разработчик в команде и шлёт нам патчи! Например, «движок» для вкладок, т.н. воркспейсы, я сдеал в vtui уже довольно давно, а он сделал поверх него собственно UI/UX.

Кстати о движках. У нас появилась поддержка ещё одного графического бекенда. Попробуйте с --gui=ebiten, слышал отзывы что отзывчивость на Винде приятней, чем у дефолтного, пробуйте и пишите в комментариях, какой лучше работает у вас! Да, в голой консоли Винды запускаемся через --tty, но там не будет полноцвета и не будет просмотра картинок (а вот в Windows Terminal это всё уже будет работать).

О терминалах. f4, в общем-то, сами себе терминал — f4 может нарисовать себя и в консоль и на холст кучей способов. Причём у нас ещё и свой терминал внутри — в отличие от mc или Far, где по Ctrl+O вы попадаете в исходную консоль, f4 выбрал путь far2l, где по Ctrl+O работает свой отдельный встроенный терминал. Недавно перед самым выходом беты я починил в нём несколько багов, из-за которых он не запускался на некоторых BSD и Солярисах — теперь всё у всех работает. Если у вас какой-нибудь такой юникс-лайк — попробуйте f4 обязательно, я стараюсь очень хорошо их поддерживать.

Мы добавили «палитру действий», где можно искать, если забыли, как называется нужная команда на текущем языке. Или менять все хоткеи. Никакого хардкода сочетаний клавиш больше нет, есть только семантические названия действий.

Да, кстати, f4 уже умеет макросы на Lua, как в Far3. Но и простые клавишные продолжает уметь тоже. В настройках можно выбрать, в каком формате писать при записи.

Появилась очень подробная инфо панель, даже с инфой о железе.

Появилась панель быстрового просмотра, и он действительно быстрый, у f4 же piecetable под капотом и читает он с диска только то, что вы смотрите прямо сейчас. И по сети это работает тоже, если подключаться по FISH+, о нём ниже.

Да, если уж мы коснулись скорости. Космически ускорена работа colorer из Far3 (так, стоп! для начала: мы портировали colorer из Far3! через wasm и wazero). Тут большое спасибо коллегам из команды far2l, они его раз в 10 по скорости оптимизировали, на этом фоне замедление 1.2~1.5x из-за оверхеда на wasm jit вообще не имеет значения. colorer у меня был задачей, за которую я долго не мог взяться, потому что кода там огого, переписывать задолбаешься даже с моделями, а хочется сделать красиво. В итоге компромисс: небольшая обёртка над автономной wasm сборкой. И оно работает более чем отлично! Сборка, кстати, устроена так, что исходники colorer там вообще нетронутые, обновляются элементарно.

Да, раз уж мы коснулись FISH+. Это такое ноу-хау f4, как FISH/SHELL в mc, только на стероидах. Например, на сервер выносится поиск файла. Или поиск по файлу. Или копирование или перемещение внутри сервера без загрузки себе на комп. Даже между разными серверами можно! Если хотя бы один будет в состоянии достучаться до второго напрямую и авторизоваться там, передача данных пойдёт вообще без загрузки себе. Поднимать упавший сервер, сидя с девушкой на берегу озера на едва живом GPRS, теперь будет несколько проще.

Раз уж зашла речь про сеть. Сделал сквозную поддержку прокси, в том числе в автоматических обновлениях. Ах да, я же сделал давно запрашиваемое автообновление. Отдельно релизов и найтли. И плагинов тоже! Для плагинов, кстати, уже и магазин приложений написан, что-то между PlugRing и Аппстором. И ещё у нас теперь поддерживаются облака Гугла, Яндекса и Амазона. И WebDAV.

И Андроиды с Айфонами мы тоже научились монтировать!

Немного о разработческом. Давно скучал по hiew, в итоге взял и сделал прямо в f4 — да, с дизассемблером!

А ещё добавилась ИИ-панелька. Давно хотел возможность отправлять нашим электронным друзьям файлы прямо по F5, и теперь наконец могу это делать!

В разработке — возможность модели делать для вас какие-то штуки, а не просто генерировать текст. Скопировать или перенести какие-то файлы, внести в них какие-то изменения, выполнить ещё какие-то операции от вашего имени.

На уровне MVP это уже работает:
1. вы набираете в командной строке ai:ap
2. f4 вытягивает скилл к модели
3. модель генерит инструкции "что нужно сделать" в определенном формате
4. специальный скрит на стороне пользователя выполняет действия (см. "Apply patch?" ниже)

Сделать такое было не очень сложно, потому что формат инструкций и скрипт их применения (отшлифованный до совершенства в области обхода типичных глюков моделей) у меня давно уже придуман. Но вам понадобится скачать ap.py и положить куда-то в path. В будущем сделаем такое без внешних зависимостей и добавим возможность операций с какими-то сущностями самого f4, а не только модификации файловой системы.

И напоследок — загадочная улыбка великолепной Lena в плагине просмотра картинок!

На этом, пожалуй, прервемся. Фич много, точно стоит попробовать. f4 собирается подо всё, включая DragonflyBSD и Illumos, ссылки на ночные бинарники прямо в README на Гитхабе.

И последнее. Четверть миллиона строк изменений за две недели, силами 10 контрибьюторов! Люди активно несут хороший, качественный код, добавляют фичи, которых не хватает им самим. И в этом особенный кайф делать инструмент для айтишников. Попробуйте f4, у него с каждым днём всё больше шансов стать первой программой, появляющейся на вашем новом компе! И добавляйтесь в чат, там и разработчики сидят тоже.

Комментарии (8)


  1. Void-Cowboy
    16.08.2026 16:16

    круто!

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


    1. unxed Автор
      16.08.2026 16:16

      Заработает! --tty


      1. Void-Cowboy
        16.08.2026 16:16

        интересно, завтра наживую потыкаю отпишу

        если все ок будет то возможно вы нового мейнтейнера получите)

        кстати за плагины - на го есть разное, из самого цельного это плагинная система на базе gRPC где плагины как wasm собираются.


        1. unxed Автор
          16.08.2026 16:16

          О, класс, жду фидбека! А у меня примерно так же оно и сделано. И colorer, например (люблю эту красилку, а особенно её способность понимать вложенные языки), из Far у меня через wasm и портирован :)


          1. Void-Cowboy
            16.08.2026 16:16

            у wasm свои пределы

            у меня в столе лежит пет-проект для читалки что бы везде нормально работала (включая нативный PoketBook) с поддержкой плагинов и как раз таки из-за границ возможности wasm оно подвисло так как для сложных вещей по факту нужно создать свой рендер и язык что бы плагины могли сами задавать менюшки/кнопки/ets если нужно

            плюс wasm сам по себе перепаковка потому запуск десятка плагинов уже процесс не быстрый очень много оверхеда сверху

            я смотрю у вас в проекте много разного и было бы круто это все выкинуть на уровень плагинов без необходимости вшивать в исходник
            хотя как вариант можно gentoo-стаил и пересобирать каждый раз с добавлением/обновлением "плагинов"


            1. unxed Автор
              16.08.2026 16:16

              Да, возможно мы так сделаем в какой-то момент. Архитектура на такое рассчитана.

              Про wasm. Попробуйте прогнать через binaryen, потом через goccy/wasm2go (именно из этого репозитория!), а потом попрофилировать и пооптимизировать горячие места мощной нейронкой. Я так сишные оригиналы обгоняю


  1. koreychenko
    16.08.2026 16:16

    Наблюдаю отставание интерфейса верхнего меню при работе с мышой. Т.е. мышь с пункта меню давно ушла, а пункт только-только подсветился. Отставание где-то полсекунды. Или, например, если мышь повозить по выпавшему меню вверх-вниз, то пункты подсветится не тот пункт, на котором мышь в итоге остановилась, а сначала весь мышиный путь. Да и в целом интерфейс на моей машине довольно "задумчив". В tty режиме работает чуть бодрее, но отваливается перемещение по файлам с помощью стрелочек :-) Ubuntu 26.04 + Kde 6.x


    1. unxed Автор
      16.08.2026 16:16

      Спасибо! А с --gui=ebiten? В Konsole есть баг, попал в релиз увы. В мастере у них пофикшено уже. Попробуйте в kitty