dn2l - Dos Navigator для Linux

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Re: dn2l - Dos Navigator для Linux

Сообщение Awkward » 11.02.2022 15:20:59

Извините, но вам не кажется, что мы немного отошли от темы?
Awkward
новенький
 
Сообщения: 48
Зарегистрирован: 19.01.2017 00:06:47

Re: dn2l - Dos Navigator для Linux

Сообщение Shleps » 11.02.2022 15:31:59

Alex2013 писал(а):Working in Virtual Reality

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

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

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

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

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

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

есть такое, может мы с Алексом в личку с этим спором пойдем? или в другую ветку? профильную?
и сообщения перенести.
Аватара пользователя
Shleps
постоялец
 
Сообщения: 194
Зарегистрирован: 14.06.2006 20:25:14

Re: dn2l - Dos Navigator для Linux

Сообщение unxed » 11.02.2022 16:05:06

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

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

А данный топик всё же про портирование DN на Linux, либо воссоздание в виде юникодной версии, работающей на Linux, с максимальным сохранением иерархии классов, API и UX.
unxed
новенький
 
Сообщения: 29
Зарегистрирован: 25.10.2020 23:38:56

Re: dn2l - Dos Navigator для Linux

Сообщение Alex2013 » 11.02.2022 17:25:53

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


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

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

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

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

Re: dn2l - Dos Navigator для Linux

Сообщение unxed » 12.02.2022 18:54:17

Free Vision с поддержкой Unicode вмержили в основную ветку фрипаскаля!

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

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

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

Re: dn2l - Dos Navigator для Linux

Сообщение Vadim » 13.02.2022 05:38:19

Alex2013 писал(а):Будет ли версия под Винду ... ?

Господи, спаси нас от этих казней египетских! :D
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: dn2l - Dos Navigator для Linux

Сообщение Alex2013 » 13.02.2022 23:59:42

Vadim писал(а):Господи, спаси нас от этих казней египетских!

Ну с точки зрения программирования в лазарус и FPC сделать порт под Винду при наличии рабочей версии под Линукс не так-уж (ИМХО) сложно.
Изображение
Последний раз редактировалось Alex2013 05.02.2025 12:04:29, всего редактировалось 1 раз.
Alex2013
долгожитель
 
Сообщения: 3093
Зарегистрирован: 03.04.2013 11:59:44

Re: dn2l - Dos Navigator для Linux

Сообщение unxed » 17.02.2022 17:37:59

Как собрать тестовую приложеньку юникодного Free Vision на свежей убунте:
https://github.com/elfmz/far2l/issues/1 ... 1042898940
unxed
новенький
 
Сообщения: 29
Зарегистрирован: 25.10.2020 23:38:56

Re: dn2l - Dos Navigator для Linux

Сообщение sunjob » 05.02.2025 05:28:41

день добрый
поробовал собрать код под линух с гитхаба - ни чего не получилось, что-то было поломано или как там, у кого собирается без проблем?
Аватара пользователя
sunjob
постоялец
 
Сообщения: 171
Зарегистрирован: 12.01.2011 15:19:54

Re: dn2l - Dos Navigator для Linux

Сообщение Alexander » 05.02.2025 14:37:02

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.
Аватара пользователя
Alexander
энтузиаст
 
Сообщения: 799
Зарегистрирован: 18.12.2005 19:10:00
Откуда: оттуда

Re: dn2l - Dos Navigator для Linux

Сообщение sunjob » 05.02.2025 20:49:28

мда... от навигатора там осталось только ... слово :о)
Аватара пользователя
sunjob
постоялец
 
Сообщения: 171
Зарегистрирован: 12.01.2011 15:19:54

Пред.

Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

Рейтинг@Mail.ru