Страница 6 из 6

Re: dn2l - Dos Navigator для Linux

Добавлено: 11.02.2022 14:20:59
Awkward
Извините, но вам не кажется, что мы немного отошли от темы?

Re: dn2l - Dos Navigator для Linux

Добавлено: 11.02.2022 14:36:27
Shleps
Alex2013 писал(а):Working in Virtual Reality

Это не работа, это игрушки технофрика.

обосную:
Что нового получил персонаж ролика от очков, чего он не может сделать на 4 мониторах? НИЧЕГО.
что он сделает быстрее в очках? только навигацию между большим числом приложений.

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

в случае интеграции с АСУ тактического звена
- снижение вероятности огня по своим
- ускорение навигации и получения целеуказания в десятки раз
- ускорение запросов огневой поддержки и передачи целеуказания в десятки раз

Ощущается разница между реальным делом и показухой?

Добавлено спустя 4 минуты 28 секунд:
Awkward писал(а):Извините, но вам не кажется, что мы немного отошли от темы?

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

Re: dn2l - Dos Navigator для Linux

Добавлено: 11.02.2022 15:05:06
unxed
Статус апдейт: переписываемся с автором Unicode Turbo Vision для Free Pascal. Возможно, помогу с тестированием и с адаптацией IDE текстового режима под Unicode (потому что бесит, что там не набрать строчку на русском, да).

PS: Тема файловых менеджеров в графике мне в данный момент не интересна, однако ограниченная поддержка графики в текстовых файловых менеджерах (например, для предпросмотра изображений) — интересна.

А данный топик всё же про портирование DN на Linux, либо воссоздание в виде юникодной версии, работающей на Linux, с максимальным сохранением иерархии классов, API и UX.

Re: dn2l - Dos Navigator для Linux

Добавлено: 11.02.2022 16:25:53
Alex2013
Awkward писал(а):Извините, но вам не кажется, что мы немного отошли от темы?


Shleps писал(а):есть такое, может мы с Алексом в личку с этим спором пойдем? или в другую ветку? профильную?
и сообщения перенести.

Согласен ! Сам хотел предложить....
Тем более, что профильная тема, давно уже на форуме есть...
(Отвечать на тему ВР и окрестностей буду там )
:arrow: Виртуальная и дополненная реальность. Ждем Бума?

(Сообщения пусть будут небольшой оффтоп на этом форуме в порядке вещей... главное не увлекаться более чем на пару-тройку страниц )

Зы
Чуть ближе к теме: как только появятся стабильные сборки под FPC и FreeVision попробую сделать свою версию "подвала" для нового ДН (Может и не получится но попробовать определенно стоит ) :idea:
Зы Зы
Будет ли версия под Винду и/или Андроид ?

Re: dn2l - Dos Navigator для Linux

Добавлено: 12.02.2022 17:55:11
unxed
Free Vision с поддержкой Unicode вмержили в основную ветку фрипаскаля!

Подробности тут: viewtopic.php?p=163736#p163736

Добавлено спустя 54 секунды:
Alex2013 писал(а):Будет ли версия под Винду и/или Андроид ?

Если кто-нибудь сделает  — будет :) Прямо сейчас я не готов заглядывать так далеко, однако постараюсь писать так, чтоб портирование не было особенно сложным. Учитывая, что винда умеет в UTF-8 нынче.

Re: dn2l - Dos Navigator для Linux

Добавлено: 13.02.2022 04:38:19
Vadim
Alex2013 писал(а):Будет ли версия под Винду ... ?

Господи, спаси нас от этих казней египетских! :D

Re: dn2l - Dos Navigator для Linux

Добавлено: 13.02.2022 22:59:42
Alex2013
Vadim писал(а):Господи, спаси нас от этих казней египетских!

Ну с точки зрения программирования в лазарус и FPC сделать порт под Винду при наличии рабочей версии под Линукс не так-уж (ИМХО) сложно.
Изображение

Re: dn2l - Dos Navigator для Linux

Добавлено: 17.02.2022 16:37:59
unxed
Как собрать тестовую приложеньку юникодного Free Vision на свежей убунте:
https://github.com/elfmz/far2l/issues/1 ... 1042898940

Re: dn2l - Dos Navigator для Linux

Добавлено: 05.02.2025 04:28:41
sunjob
день добрый
поробовал собрать код под линух с гитхаба - ни чего не получилось, что-то было поломано или как там, у кого собирается без проблем?

Re: dn2l - Dos Navigator для Linux

Добавлено: 05.02.2025 13:37:02
Alexander
dn2l и без проблем ? Он далёк от готовности. Но я озадачил ИИ и он мне сделал минималистичный коммандер. Функций мало, но зато как собирается легко. :)

Код: Выделить всё

program ac;

{$MODE OBJFPC}
{$H+}

{
    Commander.
    For GNU/Linux 64 bit version.
    Version: 2.
    Written on FreePascal (https://freepascal.org/).
    Copyright (C) 2025  Artyomov Alexander
    Used: https://chatgpt.com
    http://self-made-free.ru/
    aralni@mail.ru

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as
    published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>.
}

uses
  Crt, SysUtils, BaseUnix, Unix;

type
  TPanel = record
    Path: string;
    Files: array of string;
    Selected: integer;
    Offset: integer;
  end;

const
  PanelHeight = 17;

var
  LeftPanel, RightPanel: TPanel;
  ActivePanel: ^TPanel;

procedure LoadPanel(var Panel: TPanel);
var
  SR: TSearchRec;
begin
  SetLength(Panel.Files, 0);
  if FindFirst(Panel.Path + '/*', faAnyFile, SR) = 0 then
  begin
    repeat
      SetLength(Panel.Files, Length(Panel.Files) + 1);
      Panel.Files[High(Panel.Files)] := Panel.Path + '/' + SR.Name;
    until FindNext(SR) <> 0;
    FindClose(SR);
  end;
  if Length(Panel.Files) = 0 then
    Panel.Selected := -1
  else
    Panel.Selected := 0;
  Panel.Offset := 0;
end;

procedure DrawPanel(const Panel: TPanel; X: integer; Active: boolean);
var
  I, DisplayIndex: integer;
begin
  for I := 0 to PanelHeight - 1 do
  begin
    DisplayIndex := Panel.Offset + I;
    GotoXY(X, I + 2);
    if (DisplayIndex < Length(Panel.Files)) then
    begin
      if DisplayIndex = Panel.Selected then
        TextBackground(Blue)
      else if Active then
        TextBackground(Black)
      else
        TextBackground(Red);
      Write(Copy(ExtractFileName(Panel.Files[DisplayIndex]), 1, 38):38);
    end
    else
      Write(' ':38);
    TextBackground(Black);
  end;
end;

procedure RefreshScreen;
begin
  ClrScr;
  GotoXY(2, 1);
  Write('[q] Exit  [v] View/Run/Cd  [c] Cp  [m] Mv  [d] Rm  [t] Tab  [j] Down  [k] Up');
  DrawPanel(LeftPanel, 2, ActivePanel = @LeftPanel);
  DrawPanel(RightPanel, 42, ActivePanel = @RightPanel);
end;

procedure ViewFile;
var
  FilePath: string;
begin
  if (ActivePanel^.Selected >= 0) and (ActivePanel^.Selected < Length(ActivePanel^.Files)) then
  begin
    FilePath := ActivePanel^.Files[ActivePanel^.Selected];
    if DirectoryExists(FilePath) then
    begin
      ActivePanel^.Path := FilePath;
      LoadPanel(ActivePanel^);
    end
    else if fpAccess(FilePath, X_OK) = 0 then
      fpSystem('"' + FilePath + '"')
    else
      fpSystem('xdg-open "' + FilePath + '"');
  end;
end;

procedure CopyFile;
var
  Dest: string;
begin
  if (ActivePanel^.Selected >= 0) then
  begin
    Dest := RightPanel.Path + '/' + ExtractFileName(ActivePanel^.Files[ActivePanel^.Selected]);
    if fpSystem('cp "' + ActivePanel^.Files[ActivePanel^.Selected] + '" "' + Dest + '"') <> 0 then
      WriteLn('Ошибка копирования.');
    LoadPanel(LeftPanel);
    LoadPanel(RightPanel);
  end;
end;

procedure MoveFile;
var
  Dest: string;
begin
  if (ActivePanel^.Selected >= 0) then
  begin
    Dest := RightPanel.Path + '/' + ExtractFileName(ActivePanel^.Files[ActivePanel^.Selected]);
    if fpSystem('mv "' + ActivePanel^.Files[ActivePanel^.Selected] + '" "' + Dest + '"') <> 0 then
      WriteLn('Ошибка перемещения.');
    LoadPanel(LeftPanel);
    LoadPanel(RightPanel);
  end;
end;

procedure DeleteFile;
begin
  if (ActivePanel^.Selected >= 0) then
  begin
    if fpSystem('rm "' + ActivePanel^.Files[ActivePanel^.Selected] + '"') <> 0 then
      WriteLn('Ошибка удаления.');
    LoadPanel(LeftPanel);
    LoadPanel(RightPanel);
  end;
end;

procedure HandleInput;
var
  Key: char;
begin
  Key := ReadKey;
  case Key of
    'q': Halt;
    'j': if ActivePanel^.Selected < High(ActivePanel^.Files) then
         begin
           Inc(ActivePanel^.Selected);
           if ActivePanel^.Selected - ActivePanel^.Offset >= PanelHeight then
             Inc(ActivePanel^.Offset);
         end;
    'k': if ActivePanel^.Selected > 0 then
         begin
           Dec(ActivePanel^.Selected);
           if ActivePanel^.Selected < ActivePanel^.Offset then
             Dec(ActivePanel^.Offset);
         end;
    'v': ViewFile;
    'c': CopyFile;
    'm': MoveFile;
    'd': DeleteFile;
    't': if ActivePanel = @LeftPanel then ActivePanel := @RightPanel else ActivePanel := @LeftPanel;
  end;
end;

begin
  LeftPanel.Path := GetCurrentDir;
  RightPanel.Path := GetCurrentDir;
  ActivePanel := @LeftPanel;
  LoadPanel(LeftPanel);
  LoadPanel(RightPanel);
  repeat
    RefreshScreen;
    HandleInput;
  until False;
end.

Re: dn2l - Dos Navigator для Linux

Добавлено: 05.02.2025 19:49:28
sunjob
мда... от навигатора там осталось только ... слово :о)

Re: dn2l - Dos Navigator для Linux

Добавлено: 22.05.2025 21:47:11
unxed
alexs писал(а):Насколько я помню - FV тоже не умеет UTF8 правильно отображать.
Вот инструкция, как собрать FV и его тестовую аппу, в Ubuntu или Mint, не из исходников, которые в репозитории, а из мастера git, где уже есть поддержка Unicode (тестовая аппа соберётся как раз юникодная, соответственно).

Учитывая, что в оригинальном DN Юникода нет вообще (а ещё проблема с лицензионной чистотой исходников, т.к. там модифицированная версия паскалевой Turbo Vision, которая никогда под открытыми лицензиями не публиковалась), на данный момент наиболее логичной тактикой выглядит воспроизвести DN с нуля уже сразу с Юникодом, но сохранив иерархию классов, API и UX настолько близкими к оригинальным, насколько возможно, чтобы и старым пользователям и старым разработчикам удобно было.
Alexander писал(а):я озадачил ИИ
Как раз с описанным мною выше подходом ИИ очень может помочь, потому что он как раз хорош в изучении большого объема имеющегося кода. Скормить исходники оригинального DN (я бы даже последний досовский давал, чтобы идти от общей точки с другими форками) и попросить накидать каркас иерархии классов. Пробовать это советую здесь:
https://aistudio.google.com/prompts/new_chat
Сетку использовать Gemini 2.5 Pro. По ссылке это бесплатно. Исходники досовского DN в доступное там контекстное окно из миллиона токенов вполне пролезают.

Это я уже начинал, форкайте себе промпт и продолжайте, если интересно
https://aistudio.google.com/app/prompts ... sp=sharing

Выложил первые результаты эксперимента на github:
https://github.com/unxed/dn3l

Re: dn2l - Dos Navigator для Linux

Добавлено: 24.05.2025 10:43:06
Снег Север
Как говорят мудрецы, нельзя в одну реку войти дважды. ДН был очень хорош во времена ДОС, а сегодня он - полнейший анахронизм.

Re: dn2l - Dos Navigator для Linux

Добавлено: 25.05.2025 23:08:05
unxed
Alex2013 писал(а):ИМХО сейчас наверное проще взять FreeVision и сделать простой ДН-подобный файловий менеджер с нуля, чем мучить "легаси исходники".
Да, в итоге это выглядит более реалистичной историей по целой куче причин. Вот, пробую
https://github.com/unxed/dn3l

Добавлено спустя 16 секунд:
Снег Север писал(а):Как говорят мудрецы, нельзя в одну реку войти дважды. ДН был очень хорош во времена ДОС, а сегодня он - полнейший анахронизм.
Я для фана