Far + Linux ?

Хотите говорить о Far и не знаете, куда обратиться?
elfmz
Posts: 13
Joined: Mon 08 Aug, 2016 10:59

Far + Linux ?

Post by elfmz » Mon 08 Aug, 2016 11:11

Latest post of the previous page:

Здрасте.. Я тут на днях немного портировал far под линух. Немного - потому что он глючный пока, стыдно пока выкладывать. Но если найдется ктото кто хочет поучавстсовать - выложу.
Немного инфы как я ЭТО сделал: во первых написал прослойку эмуляции части виндовых АПИ, в особенности консоли. Консоль рисуется на окошке, созданном wxwidgets (от нативной линуховой консоли я сразу отказался - от нее все беды mc). Прослойка так же включает в себя некоторые функции работы с реестром и кодировками (последнее целиком выдрал из wine).
Ну и подсадив фар на эту прослойку + каленым железом вырезал все очень виндоспецифичное (типа работа с виндовой сетью, списки процессов etc) в результате получил чтото запускающееся.
Да. Форкнулся из того что называется before_3.0_split: https://sourceforge.net/p/farmanager/co ... 3.0_split/ потому что в более свежих исходников каленым железом вырезать пришлось бы еще больше и не факт что результат после этого получится бы лучше.
Самая большая проблема изза которой я тут ща пишу - фтп плагин. Как выяснилось фарфтп (старый фтп) юзает wininet API для фтп, т.е. для портирования годен менее чем сам фар. Нетбокс получше, но там тоже юзаются всякие WSAEventSelect, а писать прослойку еще и для виндовых асинхронных сокетов мне уже не хватит терпения.

User avatar
DrKnS
Posts: 4563
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 113 times
Contact:

Far + Linux ?

Post by DrKnS » Mon 08 Aug, 2016 19:04

elfmz wrote: Консоль рисуется на окошке, созданном wxwidgets (от нативной линуховой консоли я сразу отказался - от нее все беды mc).
Форкнулся из того что называется before_3.0_split
Вы извините, конечно, но процитированное превращает вашу работу в мартышкин труд:

- терминал в юниксообразных, разумеется, уё-ищен, но без его ещё хуже. А графических менеджеров там и так уже как у дурачка фантиков.

- код пятилетней давности пилить бессмысленно. Даже если вы из него что-то слепите, смержить обратно не получится, т. к. Far 2 и Far 3 отличаются друг от друга, как павлин от павиана. Из актуального, кстати, вырезать пришлось бы меньше.

- само по себе вырезание тоже бессмысленно. Надо методично переписывать, заменя платформоспецифичный код где можно, и вынося в отдельные модули, где нельзя. А довырезаться можно и до int main() { printf("look ma, no winapi!"); }, чо.

elfmz
Posts: 13
Joined: Mon 08 Aug, 2016 10:59

Far + Linux ?

Post by elfmz » Mon 08 Aug, 2016 19:19

DrKnS wrote:- терминал в юниксообразных, разумеется, уё-ищен, но без его ещё хуже. А графических менеджеров там и так уже как у дурачка фантиков.
Встроенный эмулятор терминала уже есть, правда подглючивает еще слегонца. В этом плане он как wmc, только ctrl+вверх работает (уже работает, да:) )
DrKnS wrote:т. к. Far 2 и Far 3 отличаются друг от друга, как павлин от павиана.
Не такая уж большая разница между ними с точки зрения генной инженерии, если хочется переделать их в свинью:)
DrKnS wrote:Из актуального, кстати, вырезать пришлось бы меньше.
После краткого знакомства с кодом я пришел к другому мнению. Впрочем на абсолютную истину не претендую.
DrKnS wrote:само по себе вырезание тоже бессмысленно. Надо методично переписывать, заменя платформоспецифичный код где можно, и вынося в отдельные модули, где нельзя.
Я не задавался целью сделать кросплатформенный фар. Потому потроха типа работы с нтфс-файлстримами резались нещадно, даже без оставляния коментов.
DrKnS wrote:А довырезаться можно и до int main() { printf("look ma, no winapi!"); }, чо.
Я режу аккуратно, argc/argv оставлю ;)

elfmz
Posts: 13
Joined: Mon 08 Aug, 2016 10:59

Far + Linux ?

Post by elfmz » Mon 08 Aug, 2016 19:21

" как wmc"
как WCL (который WAL) хотел сказать, (надо же.. редактирования постов нету. )

User avatar
DrKnS
Posts: 4563
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 113 times
Contact:

Far + Linux ?

Post by DrKnS » Mon 08 Aug, 2016 19:45

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

В целом, хозяин - барин, да, время ваше и вам виднее, на что его тратить.

elfmz
Posts: 13
Joined: Mon 08 Aug, 2016 10:59

Far + Linux ?

Post by elfmz » Mon 08 Aug, 2016 20:03

Суть не в нём, а в том, чтобы работать вообще везде, включая десктоп с отвалившейся графикой, рекавери, ssh на сервер на другой стороне планеты или на чайник на кухне.
В этом и счастье и беда линукса - ради трех с половиной админов с кастрированными клавами - все остальные миллионы должны два раза тыкать esc. Или вот клипборд.. Вот хочу я чтоб в mc можно было выделить и скопировать в системный клипборд кусок текста из редакатора mc чтобы потом вкопипастить в IDE. А вот фиг, mc не работает с иксовым клипбордом. А почему? А потому что мысль у разработчиков была такая - а вдруг мы работаем без иксов? Значит _все_ юзера mc должны страдать, даже те у которых есть иксы. Вот поэтому у линукса 1..2% на десктопах.
Но в целом в моем порте нету ничего запрещающего переделать его на консоль. Все виндовые WriteConsole уходят в буфер прослойки, где так и хранятся - в виде буковок и аттрибутов и откуда рисуются на окошко. Просто лично мне оно не нужно, а те три с половиной админа которым нужно - обойдутся mc, как обходились до сих пор.

elfmz
Posts: 13
Joined: Mon 08 Aug, 2016 10:59

Far + Linux ?

Post by elfmz » Wed 10 Aug, 2016 22:05

Вощем, дофиксил некоторые неприятные баги в эмуляторе терминала, портировал колорер иии.. посадил репку: https://github.com/elfmz/far2l

User avatar
techie
Posts: 753
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 26 times
Been thanked: 2 times

Far + Linux ?

Post by techie » Thu 11 Aug, 2016 10:38

@elfmz выкладывай конечно на гитхаб. Это же круто. Если это будет ещё и виде отдельных патчей типа Mercurial Queue, то можно настроить CI и потизоньку двигать их наверх к последней версии Far. Отказ от линуксовой консоли - сугубо правильное решение. Она - это просто пипец, правда и лет ей уже наверно под сотню. =)

User avatar
techie
Posts: 753
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 26 times
Been thanked: 2 times

Far + Linux ?

Post by techie » Thu 11 Aug, 2016 11:31

Last edited by techie on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятан офтопик

User avatar
HaRT
Moderator
Posts: 8024
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 99 times

Far + Linux ?

Post by HaRT » Thu 11 Aug, 2016 11:37

Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
techie
Posts: 753
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 26 times
Been thanked: 2 times

Far + Linux ?

Post by techie » Thu 11 Aug, 2016 13:37

@HaRT - да, но что такое controlling terminal я тогда не осилил.

Анти-офтоп: @elfmz - как сбилдить-то без CodeLight? https://travis-ci.org/techtonik/far2l/jobs/151462271

elfmz
Posts: 13
Joined: Mon 08 Aug, 2016 10:59

Far + Linux ?

Post by elfmz » Thu 11 Aug, 2016 13:59

не надо configure, просто make.
и должен быть поставлен wxWidgets. Причем почемуто с libwxgtk3.0-dev wx3.0-headers поставленных с репозитория у меня билдится не желало, пришлось скачать и сбилдить предварительно wxWidgets из исходников.
И да, настоятельно советую тестить из юзера с именем user. Только заметил что захардкодил путь к профилю этому, как домой приду - поправлю.
ЗЫ Там в каталоге Build лежат готовые бинарники, собранные под Ubuntu/64

User avatar
techie
Posts: 753
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 26 times
Been thanked: 2 times

Far + Linux ?

Post by techie » Thu 11 Aug, 2016 18:25

elfmz wrote:И да, настоятельно советую тестить из юзера с именем user. Только заметил что захардкодил путь к профилю этому, как домой приду - поправлю.
Да, точняк - https://travis-ci.org/techtonik/far2l/builds/151571318
А как путь-то подправить - https://github.com/elfmz/far2l/search?u ... 2Fprojects - относительный пойдёт или надо вычислять корни?

User avatar
DrKnS
Posts: 4563
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 113 times
Contact:

Far + Linux ?

Post by DrKnS » Thu 11 Aug, 2016 19:11

techie wrote: линуксовый терминал - это ппц
А кто спорит? Я своё мнение о тамошних терминалах выше уже высказал. Однако, наличие на любом чайнике - это наличие на любом чайнике. Особенно если вспомнить, что всякие vnc ничуть не менее убоги.

User avatar
techie
Posts: 753
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 26 times
Been thanked: 2 times

Far + Linux ?

Post by techie » Thu 11 Aug, 2016 19:26

vnc немного из другой оперы. Достоинство терминала только в том, что он может по двум проводам работать. Но их, как правило, не хватает для нормального GUI.

АОТ, я поправил пути для colorer и не могу сбилдить всё равно - https://travis-ci.org/techtonik/far2l/builds/151591603

elfmz
Posts: 13
Joined: Mon 08 Aug, 2016 10:59

Far + Linux ?

Post by elfmz » Thu 11 Aug, 2016 19:55

techie wrote:я поправил пути для colorer и не могу сбилдить всё равно - https://travis-ci.org/techtonik/far2l/builds/151591603
Выглядит как будто ваш компилятор не знает про __TIMESTAMP__, что странно. На всякий случай добавил пробел между строкой и __TIMESTAMP__ - может в этом дело.
Мэйкфайлы автогенеренные коделайтом, он не умеет генерить с относительными путями. Я там скрипт вкомитил который фиксит пути на относительные в `pwd`\*.mk: codelite_makefix.sh

User avatar
techie
Posts: 753
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 26 times
Been thanked: 2 times

Far + Linux ?

Post by techie » Fri 12 Aug, 2016 09:11

Всё равно не могу - https://travis-ci.org/techtonik/far2l/builds/151736679 - по-ходу надо gcc новее, а я никак не могу на трависе его настроить. Может clang лучше использовать?

Locked

Return to “Обсуждение Far Manager”