Обновить

Комментарии 95

Идея хорошая. будем смотреть. Собрать на 12.2 можно? Если нет, то можно ли выложить собранный?

Все собранное - выложено на GitHub в Release

Собирать лучше на 13, т.к. там перелопатили систему отрисовки в FMX. В частности работу анимации. Прирост на винде крайне значительный.

Мое почтение!

Огромный труд.

Сам пользователь farmanager, а также far2l....

За просмотрщик markdown отдельное спасибо!

Пойду пробовать

Проверил в первую очередь, неплохо пашет, таблички рисует. Норм.

Так же юзаю плагин к n++ для .md визуализации, тоже супер.

Почему некоторые буквы/скобки обрезаны снизу?

Эксперименты с разными шрифтами в процессе победить этот глюк рендеринга шрифтов: https://habr.com/ru/articles/1087174/comments/#comment_30470628.
Заодно теперь найден другой глюк в шрифте Ubuntu Mono - символы обрезаются снизу. Возможно это из-за настроек скейла внутри программы пробовал 125, а возможно из-за шрифтов. Да проверил - это так обрезает скейл в настройках шрифта.

Вау, я попробовал! И первые впечатления - это гораздо круче чем написано. Т.е. вполне можно переходить с farmanager, а я ведь тоже много чего пробовал. Ну да, есть непонятки и неудобства…

Есть ли форум-канал где можно позадавать вопросы, пожелания и оставить ценные советы 😊?

Пока включил на GitHub - Discussions

Снимаю шляпу! Delphi отличный выбор, а FireMonkey вдвойне интересно в плане кросс платформенности.

А ты говорил, что FMX не решает)))

Я порадовался, что такие статьи появляются. Но я всё ещё надеюсь, что десктопная разработка воскреснет и станет удобной как в Delphi, но уже в чем-то более актуальном (может QTCreator, может WinUI, может Avalonia, а может и что-то Electron-подобное (Tauri?), но хотелось бы верить, что веб и JS всё-таки не поглотят всё... но пытаются...)

Знаете это царапающее чувство, когда в 2026 году открываешь проводник Windows с вкладками, ждешь пару секунд, пока он сообразит отобразить сетевой диск или каталог с громадным репозиторием, и ловишь себя на каком-то тихом раздражении? Где нужный файл? А вот он! И что? Щелкаешь на него и ждешь еще 1-2 секунды для запуска сторонней программы для работы с этим.

Вот! Хоть кто-то ещё это написал. Когда я говорю, что не могу после линуха работать с виндой из-за этих её постоянных тормозов и фризов, меня не понимают.

Я на винде с проводником не могу работать, ну он же тупо неудобный.

Но я сижу на Total Commander.

Очень ностальгичная и крутая штука, но под винду - не нужно. Страна на линуксы переходит. На работе уже который год даже корпоративные АРМы под линукс, а про сервера вообще молчу.

Переходит, и переходить будет еще долго. Бюджетников-то можно перевести в приказном порядке, а коммерческие компании пока не особо торопятся.

Ну, если вам нравится его разрабатывать, это отдельный момент.

Проект MTN2 развивается, живет и уже закрывает мои повседневные задачи

Видимо, повседневных задач действительно много, раз вам понадобилось своё решение.

2. Из Total — пакетное переименование файлов

В Far`е тоже есть, к слову.

Ну, и если мне не хватает какой-то повторяющейся комбинации, я пользуюсь макросами (Ctrl+точка - и можно записать любую последовательность символов и забиндить на сочетание клавиш, и потом также легко стереть).

Эх… а UI похоже остался таким же деревянным :D

| Но под Windows на C++ разработка GUI неизбежно упирается либо в кроссплатформенный Qt
Тут я поперхнулся чаем, ибо писал свой командир и на DOS, после писали коммандир и на Windows. Никакой неизбежности в сторонних библиотеках не испытывали. Да и не всегда они были в природе. DOSовский вариант был до TurboVision, да и вообще на простом C. Windows версия C++ и WinAPI.

Без Qt программы на Windows уже невозможно и представить?
Не понимаю, товарищ автор, в чем же такая неизбежность?

А дочитать фразу до конца не пробовали?

а Double Cmmander видали? он кстати тоже на Паскале. qt/gtk, кросплатформеный

Хорошее хобби.. Хотя я в упор не понимаю, почему так упорно используются в подобных прогах цвета Нортона, а не самого ДосНавигатора. После выхода новых версий Виндоус проводник стал действительно невозможным, куча дублирующих и сокращенных менюшек - настоящий квест настроек.. Но Фар и пр. ко мне так и не зашёл. Уж больно удобно в Тотал или Дубль Командер периодически нажимать распаковать или проиграть в в винамп с помощью меню, плюс тот факт что во время открытия этих файлов менеджер регулярно сворачивается, а в Дубле нет и т.п.. Мне доставляет, что менеджеры написаны на "сильно устаревших языках программирования" и ничего работают куда лучше всякой питонячьей хрени с недеревянными интерфейсами

Согласен, но по дефолту пусть будут эти кислотные сине-белые, историческая отсылка же, однако в самой программе надо обязательно поддерживать и включать разные схемы как миднайте например. Почти всегда ставлю палитру из DN

з.ы. проводник винды, как был так и остаётся полным антифункциональным неэргономическим гумном, не понимаю вообще как его люди (юзеры винды со средним опытом) юзают, когда есть тотал коммандер. Расскажите опытные юзеры проводника почему, зачем, как... ?

Ooops. Претензии снимаю, в комплекте есть разные темы. Но ту классическую из Дос Навигатора была бы к месту тоже. Ну и редактор тем или хотя бы файлы в которых можно настроить самому. Искал но не нашёл (

Но главное конечно исправить отображение шрифтов, с такими артефактами мылом юзать нереально, кровь из глаз жалко. ;)

>Расскажите опытные юзеры проводника почему, зачем, как... ?

простые задачи + хоткеи достаточно удобно

для командной строки и остального есть Far

Проблемы со шрифтами в винде. Они покорёженные и мытые.

Win 10, Font size 125% (или как там скейл интерфейса в винде это называется)

image
image

Второй скрин в 2раза увеличенны пиксе, справа MTN2 слева FAR

image
image

Смена шрифта и настроек внутри программы не помогают.

Раз появился это скриншот с FAR хотелось бы обратить внимание на цвет фона, в FAR он светлей комфортней. У меня вообще такой настроен. И лучше бы сделать тени кнопок в диалогах помягче, уменьшить или убрать. Это было круто в 1992 но не 2026.

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

Да и выделенные айтемы в дефолтной теме слабо отличаются от обычных. можно использовать цвет фона при выделении.

Причина корёженья шрифтов в том что настройки в венде 125%, на гитхабе в обсуждениях подтвердил другой человек у него также.

Что касается подсветки в редакторе, когда я портировал файловый менеджер CONNECT (The IBM HandShaker) на OS/2 и Win32, довольно легко удалось в него интегрировать плагин Colorer для FAR Manager. Где-то в сети можно найти исходники, там есть unit-файлы для Colorer'а.

Ой как здорово, Лаентир! Спасибо, попробую вечером этот менеджер. От Far2 я что-то устал уже, а Total ну не переношу почему-то. В итоге мучаюсь.

Зачем оно со старта лезет в интернет?

получить компактный бинарник

Почти 20Мб - это компактный бинарник?

Ну по сравнению с исполняемым файлом в F4, у файлового менеджера менеджера в текущей статье действительно компактный бинарник.

Глянул F4 неплохо там уже функционала наверчено. И 80 мегабайт, нынче времена фреймворков и говнокода. ;( ДОС Навигатор всего то 1,4 метров, а функционал никак не меньший, ну и Волков вообще 65 килобайт, там конечно минимум функций.

ну так рантайм Go, да...
Но зато мультиплатформенность, даже ReactOS для любителей.


И поддержка "из коробки" того, что во времена DN еще не существовало в принципе, поэтому обсуждать сейчас сколько бы оно заняло (на сколько увеличило бинарник) нет никакого смысла...

отдать свои файлы ии-сгенерированной на 100% проге?

я не готов

ну такой себе аргумент в 2026м... луддизмом каким-то попахивает
И с автором f4 еще, наверное, старые "тёрки" по форуму или т.п.?

нет, просто есть практика управления проектами, итил и пр

а "где то в коде такая ошибка, я в этом не понимаю, перегенери весь код пожалуйста", не устраивает

Far2l изначально создавался под Unix-подобные системы и только потом получил порт под винду

У автора цель была другая : взять ламповую эстетику DOS Navigator и натянуть ее на нормальный графический вывод Skia

Тут изначально разные задачи и подходы к интерфейсу

Но проект далек от «вайбкодинга». Вся системная архитектура, многопоточность VFS, низкоуровневая интеграция с WinAPI, отлов гонок в ConPTY, оптимизация GPU‑рендерера — это ручное программирование и отладка (ну если честно — на 98%). …По крайней мере каждая строчка написана с четким пониманием того, во что она превратится в машинных инструкциях.

Я не противник АИ кодинга. Зачем этот мазохизм с ручным написанием? Думаю процентов 80 кода это «бойлерплайт» - пусть АИ и генерирует.

Особенно порадовало от Паскалиста фраза про понимаете во что компилятор развернет инструкциии. Вроде никто не заморачивался за исключением особо сложных случаев, поскольку компилятор там всегда лучше человека справлялся.

Чур, чур, АИ-шным духом пахнет … :)

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

Из абзаца про TotalCommander так и не понял, чем именно он не устроил. TC закрывает все потребности.

В нем живет другая идея взаимодействия, в отличие от математической матрицы знакомест, где всё пространство экрана — единая символьная сетка

Какая-то абстрактная вещь. Вам нужна “математическая матрица знакомест” и “символьная сетка” или удобный файловый менеджер? И как эти вещи связаны? Можно сделать ужасный GUI, можно сделать ужасный TUI. Но также можно сделать и хороший GUI, и хороший TUI, но хороший GUI всегда будет выигрывать у хорошего TUI по удобству и функциональным возможностям, просто потому что TUI ограничен by design.

Я юзаю в 80% задач - Total, и 20 остаётся на Midnight, Far. TC устаивает почти всем, кроме возможности редактировать текстовые/бинарные файлы в своём окне, внутри, не так что по F4 запускается npp или другой оконный редактор а вот хочется прямо внутри интерфейса TC иметь хороший встроенный редактор уровня npp, как это реализованно во всех tui менеджерах файлов.
И второе нехватает кустомизации цветов интерфейса. Да панели и типы файлов я раскрасил как надо но весь интерфейс не раскрашивается, как в том же Midnight Commander.

Ну и желательно что бы по ctrl-o скрывались панели а под ними была bash, cmd или powershell с командами

Хотелку с редактором я решил через портабельный npp - кладётся в папку с портабельным TC (который есть просто копия файлов с официальной установки) и правятся команды вызова по F4. Копируем на флешку и сборка всегда со мной.

Ну так у меня так же, npp портабельный, запускается с флешки, это хороший и годный редактор и кейс в целом. Но я писал о том что хочется именно встроенный редактор в TC как во всех консольных менеджерах. То есть запускаемый прямо в окне самого файлового менеджера (вместо панелей) а не отдельным окном/приложением. Этого в TC сильно не хватает при всех его остальных плюсах.

переключение между редакторами/консолью по ctrl+tab npp тоже закрывает?

Да, верно этот кейс не закрывает даже банального удобства, когда редактор/консоль/панели_файлов в одном окне на одном так сказать логическом и визуальном слое как в far, midnight, vc. Видимо кто не юзал это постоянно, вообще не поймёт никогда в чем плюс такой концепции.

Только почему ctrl-tab не понял, везде по ctrl-o это работает же.

ctrl-o - скрыть/показать актвную вкладку.

ctrl-tab - переключение между вкладками. то есть можно из редактора переключиться в обзор папок, что то проверить в консоли, окрыть на редактирование еще один файл, и переключитсья обратно

Нет, ну понятно, что это интеграция не полная. ctrl+tab в npp это просто путешествие по вкладкам открытым в npp. Для возврата в tc нужно alt+tab. Про консоль вообще молчу)

... единая символьная сетка

Это не абстракция. Это — основание для пользовательского интерфейса. Его краеугольный камень. В текстовом режиме мы прямо гарантируем, какую область и какой объект занимает, что и как перекрывается. В графическом режиме эти параметры "плывут". Не говоря о том, что моноширинные шрифты позволяют лучше различать сами символы (хотя, есть сложности, например, с "1" и с "l".).

[Я и не говорю о том, что текстовый режим мог бы аппаратно поддерживаться специальным сопроцессором. (Его функции можно было бы поручить GPU.)]

В графическом режиме эти параметры “плывут”

В GUI можно задать детерминированную геометрию, можно так же задать сетку и layouts. А символьная сетка в TUI никак не устраняет проблему layout, она там ещё актуальнее чем в GUI, потому что в GUI layouts можно сделать гораздо гибче (вспоминаю Qt). Если у вас что-то не помещается, оно не помещается и эту проблему надо как-то решать. TUI точно так же зависит от размера терминала. И размер ячейки в физических пикселях зависит от шрифта, DPI и настроек терминала. Но да, определённый класс табличных и column-aligned интерфейсов делать удобнее и они выглядят лучше чем в GUI и допускаю, что даже могут быть удобнее.

Но хочу вернуться к своему тезису, который когда-то уже тут на хабре приводил: TUI делают от бедности (нет графического окружения), от усталости и раздражения от плохого GUI и плохих программ. У нас очень много программ с очень плохим, тормозным, раздутым GUI, отсюда и появилась такая мода на TUI в терминалах в графическом окружении. Но на TUI всего не сделаешь, просто не хватит выразительности и возможностей, да и зачем если можно сделать хороший GUI если захотеть, а терминальные TUI-приложения оставить для терминалов, где GUI не запустишь.

Не говоря о том, что моноширинные шрифты позволяют лучше различать сами символы

Это тоже спорный аргумент. Вы же сами пример привели с 1 и l, буквы сами по себе могут быть сильно разными по ширине в разных алфавитах, а пропорциональные шрифты как раз решают проблему читабельности текста из букв разной ширины, когда не надо выравнивать текст по столбцам и упихивать их в “символьную сетку”.

Разница вылезает когда нужно открыть встроенный терминал прямо под файлами, в окне Total Commander нормальную текстовую консоль без костылей поверх Win32 до сих пор прикрутить не смогли

LLM до добра не доведет :) Как смогли-то ? Delphi 12.2

Как оно у вас вообще собирается ? Там действительно разные типы с вроде одинаковым названием TMenuPanelBoundsEvent, но реально TMenuPanelBoundsEvent = uUserMenuController.TMenuPanelBoundsEvent; (aka reference to function(ASide: TPanelSide): TRectI; модуля uUserMenuController) пытаются засунуть в конструктор с ожидаемым параметром TMenuPanelBoundsEvent = reference to function(ASide: TPanelSide): TRectI; модуля uSortMenuController.. Вроде одинаково выглядит, а по факту нет, компилятор прав. Что ж там в экзешниках тогда пытаются втюхать ?

Уж почти 30 лет как "влюблен" в двухпанельники типа NC DN NDN, но как однажды попытался выделить кучу файлов мышкой и DN/NDN (не помню уже - кто из них) оно пару штук пропустило, то Windows Commander он же Total Commander стал моим главным выбором, потому что работал со стандартными функциями Windows и таких косяков не было

Если прикрутите forkpty для линукса и отвяжете проект от проприетарной среды сборки, круг пользователей сразу вырастет на порядок)

Крутой проект, удачи в развитии!
(Но по размеру в памяти Total Commander не побить. 5.9Мб в диспетчере задач. Не зря Гислер с Delphi 2 мучается).

5.9 мб? это было наверное когда ещё трава была и девки, нынче в 4 раза больше, но тоже терпимо. (по родному виндовому 14.5 мб.) Да, не плохо для такого функционала. Современные утилиты с десятой частью возможностями жрущие 300+ мб просто кишат косяками.

У меня поменьше, может, плагинов меньше установлено.

Отличный проект!

Я пользуюсь тоталом из-за интеграции с виндовским контекстным меню, да и в целом нативные окна удобнее чем самописные внутри текстовой консоли. Но если вам интересна именно классическая сетка знакомест, могу предложить одну идею, которую я недавно опробовал на текстовом редакторе: одновременное использование разных моноширинных шрифтов с одинаковой шириной символа. В настройках задается ширина знакоместа и несколько шрифтов для разных элементов (да, эта идея больше применима к IDE и редакторам кода, но возможно и в файловом менеджере можно куда-то пристроить). Автоматическим подбором выбираются размеры шрифтов, дающие заданную ширину знакоместа; высота выбирается как максимум от всех получившихся высот. То есть мы кроме bold/italic и цвета получаем еще и несколько гарнитур для выделения чего-либо, что должно отличаться от окружающего текста.

Системное контекстное меню есть. Правая кнопка и 1,5 секунды

Сейчас разбираюсь рендерингом шрифтов. Много интересного.
Главная проблема в этой идее - вертикаль.
Разные шрифты при центрировании - буквы будут прыгать по высоте, разная высота строчных букв, но это решается.
Подогнанный кегль будут всегда дробным, а это как раз я сейчас пытаюсь починить.
Правда есть шрифты Monaspace от GitHub (5 штук) с одинаковыми метриками, вот сними будет работать из коробки

Я пользуюсь Far Manager уже более 15 лет и одна из главных его фишек по сравнению с Total commander и ему подобными это полная интеграция с консолью, запусти консольную комманду, посмотреть ее результат, и т.п. А в данном проекте этого самого важного и нет, запускаешь консольное приложение и оно открывается в новом окне и тут же исчезает. Более того, за 2 минуты теста оно успело взбесить так чтобы захотелось его стереть побыстрее и не вспоминать. Во-первых, после комманды cd перестают работать стрелки, вернее они работают но почему то начинают листать историю комманд внизу вместо того чтобы ходить по файлам панели которые все так же на месте...это просто охренеть как не логично и бесит. Во-вторых, если нажать и держать стрелки или Page Up/Down то везде (NC, VC, FAR, NC) программа весело бежит по списку файлов, а тут она затыкается и стоит по 5 секунд на одном месте. Охренеть как логично. Ради чего Ну и добил ESC в качестве переключения на консоль. Ну есть же Ctrl+O, ну зачем городить отсебятину...ESC это ПРЕРВАТЬ или ВЫЙТИ из редактора/просмоторщика. и не надо ничего придумывать. Вообщем незнаю зачем это чудо сделано когда есть Far Manager. И для общего развития почитайте что означает "монохромный". Far никогда небыл монохромный и его цветовая гамма на порядок лучше.

  1. Команда, набранная в командной строке, выполняется во встроенной консоли (ConPTY), и её вывод остаётся под панелями, как в Far. Но Enter на .exe (bat, ps1, cmd) в самой панели работает по-другому. Он идёт через ассоциации в ShellOpenCurrent, то есть в ShellExecute. Консольная программа получает своё окно, и оно закрывается сразу после её завершения. Far запускает такую программу в своей консоли. Судя по описанию, нажимался Enter на файле. Можно, конечно, смотреть PE. Enter на исполняемом файле консольной подсистемы передавать во встроенную консоль, как команду из командной строки. Но надо подумать – а если фоновая консоль это WSL? Если уж надо жестко запускать файл в текущей консоли – Ctrl+Enter, а потом Enter. Пока писал пришло пару мыслей как решить эту проблемку...

  2. Стрелки после cd (и любой другой команды) – да, это неправильно. Ветка исполнения команды очищает командную строку, но не снимает с неё фокус. Ветки кода WSL его снимают. Командная строка остаётся в фокусе, и вверх/вниз уходят в перемотку истории. Спасибо, исправлю. Но надо учесть, что это не Far. В Far стрелки всегда водят курсор по панели, даже когда в командной строке набран текст, а история вызывается по Ctrl+E и Ctrl+X. В MTN2 после первого же набранного символа стрелки переходят к истории. Можно конечно снимать фокус с командной строки после cd и перехода в папку. А можно стрелки всегда отдавать панели, как в Far, а историю оставить на Ctrl+E/Ctrl+X, Alt+F8 и выпадающий список. Но меня вот бесит, когда находясь в командной строке при нажатии в NumPad «+» или «-» вызывается диалоги. В MTN2 есть Ctrl+Down – в командную строку и почти весь ввод идет в строку и Ctrl+Up – бегай по панелям сколько хочешь. И это в любой момент.

  3. Остановки при удержании клавиши – да, здесь есть проблемка в коде, спасибо. На каждую клавишу вызывается перекомпоновка экрана. То есть на каждый автоповтор синхронно и заново растеризуется вся сетка, а не только изменившиеся клетки. А это самая долгая часть кадра, особенно в большом окне при масштабе 125–150%. Если она дольше интервала автоповтора (около 33 мс), очередь сообщений не пустеет. Windows присылает WM_PAINT, только когда очередь пуста, поэтому экран не обновляется, пока клавиша зажата. Отсюда и «стоит на месте». В Far, NC и VC обработка нажатия обрабатывается гораздо проще и быстрее – чистая консоль все-таки. Ну а что Вы хотите? Все таки GUI... Подумаем... Скорее всего на клавишу только отмечать, что кадр устарел, а растеризовать один раз. Тогда десять повторов между кадрами дадут одну отрисовку. Кстати можете проверить сами – запустить MTN2.exe --fps, зажать стрелку в большой папке и посмотреть время отрисовки в заголовке окна.

  4. Esc при пустой командной строке показывает консоль – это привязка по умолчанию. В Far Esc только очищает командную строку, а консоль переключается по Ctrl+O. Я вот себе макрос на Esc вешал для показа консоли. Ctrl+O в MTN2 тоже работает. Привязку Esc можно снять в «Раскладке клавиш» или в keymap.json, но по умолчанию она сбивает с толку, особенно после Far. Один раз – очищаем командную строку, второй – возвращаемся в панели, третий раз – переходим в фоновую консоль. Естественно, если в командной строке ничего нет - начинаем с пункта 2, если фокус на панели - то сразу пункт 3. После Far сбивает, но рука уже над Esc - клацнуть еще раз по Esc – не сложно.

Это я только 2 минуты тестировал, а дальше еще хуже....поиск Alt+символ работает (ищет файл) только пока держишь ALT, а должен открывать окно поиска и потом можно набирать уже без Alt, Crtl+Enter не работает если хотябы один символ в коммандной строке набран и нафиг он тогда нужен если имя файла не передать как параметр??? консольные приложения даже набранные в коммандной строке работают супер криво (попробуйте запустить hiew32 и посмотрите что будет). И там все такое. И главное - ЗАЧЕМ? Far manager быстрее, удобнее и привычнее. Я не вижу ни одного не достатка FAR (надеюсь вы уже выяснили что он НЕ МОНОХРОМНЫЙ).

Вот теперь про Far привычнее для Вас - согласен на 100% и это не замена Far
Alt+символ - так и задумано, ничего он никому не должен

Конечно же никому не должен, он же ИИ сгенерированный. Человек который хотябы немного пользовался NC, Far, MC не написал бы такой херни ради того чтобы исправить МОНОХРОМНОСТЬ Far :-) И Crtl+Enter тоже так и был задуман ИИ, ему же им не пользоваться, а в промте который ему скормили таких деталей нет. Вы для кого это делали? ИИ этим не пользуется, вы тоже (иначе бы вы заметили эти баги в первые минуты, потому что не заметить проблему c удержанием стрелок невозможно при реальном использовании), но при этом предлагаете пользоваться другим переучивая под то что вам (или ИИ) показалось лучше, хотя никто из вас не пользовался ни FAR ни NC ни даже MC.

О! Наконец-то "срач"! (извините за жаргон)...
Кстати, в тексте написано "монохромный терминал", а не "монохромный Far".
Я вот начал пользоваться Far`ом в 1996 году с первой версии.
И если про ИИ, то что вы пристали? Предъявляйте претензии тогда ИИ или пишите в спортлото...

Я конечно понимаю что это будет сложно объяснить что имел ввиду ИИ, но все же что по вашему значит: " Но визуально он (FAR, мое примечание) всегда оставался консервативным — классический монохромный терминал по умолчанию."??? монохромный - одноцветный. Я, как человек, понимаю это как то что вы упрекаете Far (он), в том что он даже в последних версиях(всегда) выглядит как монохромный(одноцветный) терминал. Так вот мне теперь интересно: 1. Чем отличается мое обобщение слов дословной цитаты от "монохромный Far" ? 2. Какой из десятка цветов по умолчанию Far вы считаете единственным(монохромным) 3. Считаете ли вы NC/VC/MC монохромным терминалом? 4. И черт возми, почему эта поделка не монохромный терминал, если Far монохромный терминал и что вообще эта чушь значит? По мне так Far выглядит как классический NC и вообще НЕ МОЖЕТ напоминать монохромный терминал потому что у него больше чем один цвет, что является фактом.

Да, все правильно. Far - консервативный, терминал - монохромный. Консервативный Far запускается в монохромном терминале.
Согласен, что тем, что фраза в целом («классический монохромный терминал по умолчанию») вводит в заблуждение, если трактовать её буквально. Здесь Вы абсолютно правы. Буду четче формулировать...

Вы притворяетесь или действительно вы такой. Еще раз повторяю для непонятливых. МОНОХРОМНЫЙ ЭТО ОДНОЦВЕТНЫЙ. Вы не видите больше одного цвета в Far? Я думаю что понял откуда ноги растут ...вы перепутали монохромный и символьный терминалы, потому что никогда не видели ни того ни другого.

Так и пользователи видели в терминале только один цвет (ну и второй, чёрный, не считается), а потом в Far появился цвет. Здесь речь не идёт об аппаратной («железячной») терминологии. Это всё-таки статья про ПО.

Не требуйте от меня строгого академического стиля и терминологии. Эта статья всё-таки и про чувства, ностальгию, любовь…

Я вообще не понимаю что вы пишите. Вы вообще человек или на хабре как и на Youtube теперь ИИ боты пишут комментарии? Какие пользователи и где могли видеть один цвет в терминале в 1996 году под Виндой???? И что значит в Far появился цвет( уже оказывается не всегда). Я скачал самую первую версию и там ЕСТЬ ЦВЕТ...СИНИЙ, ГОЛУБОЙ, ЖЕЛТЫЙ, БИРЮЗОВЫЙ и т.п.

1996 год, если не ошибаюсь, это Win95 и NT3.5(4.0).
Когда пользователь открывал сессию командной строки (cmd.exe в NT или command.com в Windows 95) для ввода команд, операционная система по умолчанию выводила белый или серый текст на черном фоне. Из-за этого создавалось ощущение полной монохромности. ESC-последовательности тогда (насколько я помню) не работали.

Запустите в Win95 просто терминал - от выглядит монохромным. Far-консервативный, но согласен, что не монохромный.

Блин, специально для Вас уточню. ESC-последовательности - в Windows не работали...
Все, помню, четкость формулировок!

Это просто бред. По такой логике ЛЮБОЕ консольное или ДОС приложение - монохромный терминал, потому что ПЕРЕД ЗАПУСКОМ ПРИЛОЖЕНИЯ КОНСОЛЬ ОДНОЦВЕТНАЯ. БРЕД..Я понимаю, что сложно вспомнить 1996 особенно если вы еще не родились, но я его помню достаточно хорошо и цвет в терминале WINDOWS/DOS БЫЛ, ДАЖЕ В 1992 ГОДУ на IBM совместимых ДО ПОЯВЛЕНИЯ WINDOWS он был. NC явное доказательство тому что никакой монохромности небыло https://en.wikipedia.org/wiki/Norton_Commander. В Windows 95 теминал был в окне, но можно было переключится на полный экран, но это НИКАК НЕ ВЛИЯЛО на цвета.

Консервативный это из той же оперы...т.е.. Турбо Паскаль НЕ консервативный, NC НЕ консервативный, Поделка в стиле Турбо Паскаля НЕ консервативная, а Far консервативный. Новомодный GPU рендеринг, который жрет 100% видео карты и CPU на скролинге это НЕ признак НЕ консервативности. Любой интерфейс в стиле NC консервативный.

В данный момент меня интересует только одно - не была ли статья и программа троянски конем,т.к. из исходников явно ничего собрать не получается ни у кого кроме "автора". Утверждение что "Но проект далек от «вайбкодинга»" это наглая ложь. Он полностью сгенерирован ИИ и доказательств этому полно...например каждый файл тем (например uASCIITheme.pas) начинается с комментария Stage 27), это явный комментарий ИИ который утверждает, что до этого было ЕЩЕ 26 СТАДИЙ РЕАЛИЗАЦИЙ...В других файлах есть Stage 55, так что это ГОЛИМЫЙ ИИ. Теперь понятно почему там ничего не работает как должно. И статья ИИ и даже комментарии ИИ.

Небольшая ремарка насчет возраста: в 1996 году я уже был в аспирантуре, поэтому историю развития консолей и файловых менеджеров знаю не по статьям из Википедии. Вы настолько зациклились на слове «монохромный» и поиске следов ИИ, что сами попались на крючок троллинга, дойдя уже до «троянов».
Замеченные технические недочеты я исправил как посчитан нужным, как мне было удобно. В остальном же – MTN2 это бесплатный пет-проект, и у меня нет цели кого-то переманивать с Far Manager. Не нравится – просто не пользуйтесь, инструмент выбирает каждый сам.
Дальнейшую перепалку считаю бессмысленной и неконструктивной. Предлагаю на этом разойтись. Успехов!

Без дайвера ANSI.SYS в чистом MS-DOS (консоле) ESC-последовательности неработали: только черно-белый экран; что до NC, Turbo Pascal других програм - консольные програмы могут быть цветными (но только на CGA, EGA, VGA и цветном мониторе :-)

Вы еще черно- зеленые (монохромные) мониторы забыло :)

Alt+символ - так и задумано, ничего он никому не должен

А зачем так сделано, в чём удобство? Предлагаете одной рукой держать зажатый Alt, а второй натыкивать символы для поиска в фильтр?

Нажал Alt, начал набор, отпустил Alt, продолжил набор двумя руками. Нажал Esc один или два раза - сбросил фильтр. Так это должно работать.

Alt+символ нужен для быстрого поиска нужного файла. Там, как правило, достаточно 2-3 первых символа, чтобы курсор установился на нужный файл
Для всего остального есть Ctrl+I

Шикарно, спасибо!
Немного посидел, потыкал - чуть непривычно, но комфортно. Очень порадовал просмотр MD из коробки. Вполне достойная альтернатива.

Единственное, чего сходу не хватило - это горячая кнопка folder up/down (то, что в Far Ctrl-PgUp/PgDn). Вроде нет такой в списке.

Есть BackSpace, но Ctrl-PgUp/PgDn думаю лучше, так как это без отрыва от клавиатуры. Это быстро...

Drag'n'drop из/в работает?

Ага, и туда, и оттуда.

Лично я до сих пор использую Total Comander и с теплотой вспоминаю о Delphi когда в очередной раз приходится писать интерфейс на C#

По сведениям от Comodo Internet Security приложение пытается совершить какие-то странные действия, не характерные для файлового менеджера. Зачем меняются параметры стека TCP/IP и сетевых подключений? Зачем пытается поменять что-то в важной в плане безопасности ветке HKLM\SOFTWARE\Policies\Microsoft\Windows\TenantRectrictions\Payload? Зачем пытается изменить привязку приложений для файлов .rdp? Я ни в чём не обвиняю, т.к. все сырцы открыты, но это всё выглядит крайне подозрительно. Может это какая-то зависимость/либа или рантайм Delphi хулиганит?

Спасибо, что проверили и написали. Ситуация беспокоящая, отвечаю по существу.
Изменения параметров TCP/IP, обращения к ветке "TenantRestrictions" и правки ассоциаций – да, это не то, что ожидаешь от файлового менеджера. Ответить – «этого не может быть», так я не привык. Я знаю свой код, но не хочу, чтобы вы и другие пользователи верили мне на слово. Поэтому – перепроверил исходники, запустил под Process Monitor и сравнил трассировку с Вашим отчётом. Ниже – что нашлось.

Главное – сама программа не пишет в реестр и не меняет сетевые настройки. Исходники (https://github.com/Laex/MTN2) – вызовов "RegSetValue"/"RegCreateKey", "netsh", "InternetSetOption", правки прокси, TCP/IP или файловых ассоциаций в коде нет. Реестр MTN2 только читает ("OpenKeyReadOnly"): список дистрибутивов WSL и путь к Git for Windows для списка оболочек консоли. Строк "Tcpip", "TenantRestrictions", "OpenWithList" в проекте нет вообще.

Откуда тогда события в HIPS? Comodo пишет «Изменение ключа реестра», когда процесс открывает ключ с правами на запись. Это происходит внутри обычных системных вызовов, а не в коде MTN2:

  • "Msctf.dll" («Установка хука»): Text Services Framework (ввод текста, IME, раскладки). Его подгружает любое окно с вводом текста, в том числе Delphi/FireMonkey. Хук ставит сам TSF. Это мы знаем, сталкивались...

  • "Internet Settings\Connections", "Services\Tcpip", "Tcpip\Parameters", "...\TenantRestrictions\Payload" – поведение сетевого стека Windows при HTTPS-запросе. У MTN2 такой запрос один – проверка обновлений на github.com через WinHTTP из RTL Delphi (примерно через 5 секунд после запуска и по кнопке «Проверить»). Windows читает настройки прокси, TCP/IP и политику Tenant Restrictions (она есть в любой Windows, обычно пустая).

  • "FileExts.rdp\OpenWithList" – список «Открыть с помощью» ведёт оболочка Windows. Когда MTN2 показывает файл ".rdp" в панели или открывает его по Enter, он спрашивает у Windows ассоциацию, а оболочка внутри этого вызова открывает "FileExts<расширение>\OpenWithList" с правами чтения и записи. Само приложение значения не меняет.

Результаты Process Monitor. Я запустил MTN2 под Process Monitor (Sysinternals) с фильтром по "MTN2.exe", обычным пользователем, в папке с файлом ".rdp", с проверкой обновлений.
Итог:

  • Реальных записей в реестр ("RegSetValue", "RegDeleteKey", "RegDeleteValue", "RegRenameKey", создание новых ключей) от "MTN2.exe" две, и обе делает сама Windows от имени процесса – служба Background Activity Moderator ("HKLM...\bam\State\UserSettings", учёт запущенных программ) и хранилище уведомлений ("HKLM...\Notifications\Data"). Кода MTN2 в этом нет.

  • Все ключи из отчёта воспроизвелись, и все на чтение: "Internet Settings\Connections" (открыт с правом Read/Write, дальше только "RegQueryValue" настроек прокси), "Policies...\TenantRestrictions\Payload" (открывает "TenantRestrictionsPlugin.dll" из WinHTTP, права Query Value и Notify), "Services\Tcpip\Parameters", "Winsock", "Tcpip6" (имя хоста, DHCP, таблица Winsock). Это происходит ровно в момент проверки обновлений, через 5 секунд после запуска.

  • Для ".rdp" в панели видны только "RegOpenKey"/"RegQueryValue" ("HKCR.rdp", "FileExts.rdp", "UserChoice"). Запись "OpenWithList" с правом записи, но без изменения значений, в трассировке была для другого расширения (".md").

Comodo отмечает как «изменение» именно открытие ключа с правом записи, поэтому в HIPS оно выглядит как правка, хотя значения остались прежними.

Хммм... Возможен и посторонний фактор? Хуки и подгрузка DLL в чужие процессы – обычное дело для защитных и системных программ – сам HIPS, антивирусы, VPN, менеджеры буфера обмена и раскладок. Это не обвинение, а способ проверки – в Process Explorer (Sysinternals) откройте свойства процесса "MTN2.exe" – вкладка DLL и посмотрите, какие библиотеки, кроме системных и наших ("sk4d.dll", "wasmtime.dll", плагины из "plugins"), в нём загружены и кто их подгрузил. Если там есть что-то неожиданное, это стоит проверить отдельно. Например, в трассировке на моей машине в "MTN2.exe" подгружена сторонняя DLL твикера оболочки (StartAllBack) – такие программы подгружают свои модули в чужие процессы, и HIPS видит их действия как действия приложения.

Можно проверить самому. Запуск Process Monitor (Sysinternals) с фильтром "Process Name is MTN2.exe" и операциями "RegSetValue"/"RegCreateKey"/"RegDeleteValue". В Program Files программа работает с правами обычного пользователя и в эти ветки "HKLM" записать не может. Чтобы убрать сетевые события совсем, отключите проверку обновлений: «Справка – Обновления», снять «Проверять обновления при запуске».

Готовые файлы сборки делаются в CI на GitHub Actions из открытых исходников, а не собираются вручную на чьём-то компьютере. Собрать у себя можно так же – нужна RAD Studio 13, Windows x64, PowerShell, опционально Rust для плагина "mtn.ws". Порядок сборки и запуска тестов описан в "docs/BUILDING.md" – "./src/build.ps1 -Config Release -Platform Win64", затем ./src/tests/run-tests.ps1. Сравнить свою сборку с опубликованной можно по содержимому и поведению, а контрольные суммы zip GitHub показывает на странице релиза.

Если сомневаетесь, лучше всего проверить код самим. Он открыт, и сегодня для этого достаточно инструментов, в том числе ИИ-ассистентов, которые умеют просматривать репозиторий целиком (и на GitHub тоже есть такие средства). Можно, например, попросить найти в исходниках все обращения к реестру, сети и запуску процессов и сравнить с моим описанием выше.
Буду рад замечаниям и найденным проблемам, пишите в issues репозитория.

Отличная идея! Всегда пользуюсь двухпанельными ФМ, начиная с NC. Скачал и запустил MTN2 V0.3.12. Первое впечатление - это то, о чём мечтал! Моя благодарность! Надеюсь на развитие и сопровождение программы. Здоровья, Успехов, Удачи!

Как скопировать путь к файлу? фаровский Ctrl-F отдан другой функции. При нажатии Ctrl возникает подсказка SEnt - Path но что за клавиша SEnt не понимаю

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации