LINUX.ORG.RU

FARS 1.0.0 Beta

 , , , sui,


0

2

После более года разработки, 32-го марта, состоялся выпуск 1.0.0 Beta кроссплатформенного, многопоточного, SIMD-оптимизированного менеджера файлов FARS.

Особенности:

  • Для работы требуется любой эмулятор терминала с поддержкой форматов Sixel, Kitty Graphics Protocol или iTerm2.
  • Желательно, чтобы ЭТ поддерживал Kitty Keyboard Protocol, тогда станет доступно большее количество сочетаний клавиш.
  • Парсинг ESC-последовательностей ЭТ осуществляется библиотекой Lug 0.5.0.
  • Для пользовательского интерфейса используется мой значительно переписанный форк FTXUI 6.0.0 и 6.0.1) с бэкендом constixel.hpp для отрисовки в ЭТ.
  • Так как интерфейс уже не текстовый, я назвал эту концепцию SUI – Sixel User Interface (хотя constixel.hpp поддерживает все три формата).
  • Для быстрой работы с ФС используется библиотека llfio, вызывающая syscall напрямую.
  • Встроенный редактор на основе Lexilla и Scintilla (на базе редактора turbo).
  • Конфигурация хранится в формате TOML, так что Glaze 7.2.0 подошла идеально.

Код проекта написан на C++ (стандарт C++23) и распространяется по лицензии WTFPL.

Просьба сообщать обо всех найденных ошибках!

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: dataman (всего исправлений: 3)

Ссылка на подробности палевная – сразу подсвечивается как «посещённая».

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

constixel.hpp и glaze используют.

dataman ★★★★★
() автор топика

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

usermod
()

Фарси (персидский язык) — основной язык Ирана, относящийся к иранской группе индоевропейской семьи.

сходство символизирует😊

etwrq ★★★★★
()

Надо было до 33 марта подождать.

greenman ★★★★★
()

Шо это? Очень интересно, но ничего не понятно!

skyman ★★★★★
()

WTFPL

лол, даже не знал о такой

и тем не менее:

«WTFPL почти не применяется для открытого программного обеспечения. На 2016 год, использование лицензии составляло менее одного процента».

Странно, что вики не подтянули по годам хотя бы посвежее. При том, что последний раз страница редактировалась 14 марта 2026 года.

Может там и процент уже побольше… :)

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

«Менее одного процента» — это может быть не так уж и мало на фоне всего ПО на самом деле. Смотря насколько менее. У Линукса на десктопах вон тоже по всяким статистикам всего 4%, а когда-то 1% был, и ничего.

Я, кстати, WTFPL тоже использую для всякой мелочи. Либо GPL (для чего-то посерьёзнее), либо WTFPL (для того, что в принципе вообще пофиг, кто и как юзает — пусть себе хоть обзакрываются скриптов на одну сотню строк). В основном именно эти две и юзаю.

Думал ещё, что где-то может пригодиться AGPL+NIGGER или BSD+NIGGER, но пока не было таких ситуаций, где в моих проектах это имело бы практический смысл.

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

FARS

Ещё чуть-чуть и было бы FARTS.

mshewzov ★★★★
()

32-го марта

Это gut.

vold ★★★★★
()

с бэкендом constixel.hpp для отрисовки в ЭТ.

Насколько это всё тормозит?

Допустим, нужно пролистывать тонны картинок. Что будет меньше тормозить, GUI просмотрщик вроде Geeqie или просмотр в терминале с загрузкой картинок через sixel или что там ещё? Насколько меньше?

i-rinat ★★★★★
()

Для быстрой работы с ФС используется библиотека llfio, вызывающая syscall напрямую

если они вызывают сисколлы напрямую, то почему не собираются под мюслем?

build/install/include/quickcpplib/ringbuffer_log.hpp:68:10: fatal error: execinfo.h: No such file or directory
   68 | #include <execinfo.h>
      |          ^~~~~~~~~~~~

классика. Пусть переходят на libunwind или что-нибудь подобное.

И вообще для плюсов есть куда более компактная fast_io

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

есть куда более компактная fast_io

Как же, помню нападки её автора на автора fmtlib.
expnkx бросался на Зверовича, как дикий зверь, со своими претензиями и бенчмарками.
А потом выпилился с Гитхаба и вернулся уже другим.

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

Первоапрельским новостям добавляется тег 1 апреля, и всё.

dataman ★★★★★
() автор топика

История стала легендой, легенда — фарсом, а потом уже и анекдотов насочиняли.

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

так он был прав, лол. Что fmt, что std::format, что iostream - это все охренеть какая блоатварь. Если есть возможность ими не пользоваться, то лучше не пользоваться.

Lrrr ★★★★★
()

Встроенный редактор на основе Lexilla и Scintilla (на базе редактора turbo).

Этот турбо не собирается:

CMake Error at deps/CMakeLists.txt:29 (add_subdirectory):
  The source directory

    /home/user/cpp/turbo/deps/tvision

  does not contain a CMakeLists.txt file.
Call Stack (most recent call first):
  CMakeLists.txt:89 (include)


-- Configuring incomplete, errors occurred!

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

Ага, закомпилил.

Редактор неплохой, классические сочетания клавиш радуют.

Но:

* Вертикального выделения нет.
* Мультикурсора нет.

И клавиши не переназначаются. Соответсвенно, «Продолжить поиск» - надо вспоминать что жмется Alt+N. «Поиск назад» - Alt+P. Неудобно, хотя должен сказать что наглядно, ибо буковки которые надо нажимать подсвечены. Этим и хорош Turbo Vision, они сделали то, что до сих пор не смогли понять любители vi/vim и прочего консольного хлама.

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

Блин, в Turbo сохранения по F2 нет, и навешано Rename.

Я сохранение по F2 даже в KWrite настраиваю. А в turbo нельзя.

И еще нельзя выход по Esc сделать чтобы можно было бесшовно использовать как встроенный редактор в MC.

* * *

В исходниках смог сделать сохранение по F2 и Rename по Shift-F2. Осталось разобраться как по Esc выходить, чтобы выход не перекрывал отмену действий или закрытие модальных окон.

Xintrea ★★★★★
()
Последнее исправление: Xintrea (всего исправлений: 2)
Ответ на: комментарий от dataman

Коль ты уже ковырялся с Turbo Vision, не мог бы подсказать, как сделать следующее:

Надо понизить приоритет клавиши, которая прописана в главном меню. Например, в главном меню для выхода из программы используется kbEsc, но и в интерфейсе для закрытия окна помощи тоже используется Esc. Как сделать так, чтобы в начале Esc обрабатывалось для окна помощи, а только потом для всей программы, чтобы программу закрыть?

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

Как сделать так, чтобы в начале Esc обрабатывалось для окна помощи, а только потом для всей программы, чтобы программу закрыть?

Я сейчас не за компом, но думаю, что можно навесить глобальный обработчик событий, в котором будет производиться закрытие текущего окна при нажатии Esc. Иначе – передавать обработку события этому окну.


Ещё на тему TUI – FINAL CUT 0.9.0 - библиотека для создания консольных приложений.

dataman ★★★★★
() автор топика
Последнее исправление: dataman (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.