elfmz / far2l Goto Github PK
View Code? Open in Web Editor NEWLinux port of FAR v2
License: GNU General Public License v2.0
Linux port of FAR v2
License: GNU General Public License v2.0
Пытался собрать на SUSE Leap 42.1, все нужные библиотеки поставлены но при билде получаю ошибку не соотвествия версии glib2 просит минимум 2_26 , а у меня стоят 2.44
chodorenko@chodorenko-linux:/9/far2l.git/trunk/WinPort> make -f WinPort.mk/9/far2l.git/trunk/WinPort> rpm -qa | grep glib2
In file included from /usr/include/glib-2.0/glib/gtypes.h:34:0,
from /usr/include/glib-2.0/glib/galloca.h:32,
from /usr/include/glib-2.0/glib.h:30,
from KeyFileHelper.cpp:2:
/usr/include/glib-2.0/glib/gversionmacros.h:217:2: error: #error "GLIB_VERSION_MIN_REQUIRED must be >= GLIB_VERSION_2_26"
#error "GLIB_VERSION_MIN_REQUIRED must be >= GLIB_VERSION_2_26"
^
In file included from /usr/include/glib-2.0/glib/galloca.h:32:0,
from /usr/include/glib-2.0/glib.h:30,
from KeyFileHelper.cpp:2:
/usr/include/glib-2.0/glib/gtypes.h:446:2: error: #error unknown ENDIAN type
#error unknown ENDIAN type
^
WinPort.mk:272: ошибка выполнения рецепта для цели «Debug/KeyFileHelper.cpp.o.d»
make: *** [Debug/KeyFileHelper.cpp.o.d] Ошибка 1
chodorenko@chodorenko-linux:
glib2-devel-2.44.1-2.3.x86_64
glib2-devel-32bit-2.44.1-2.3.x86_64
glib2-tools-32bit-2.44.1-2.3.x86_64
glib2-lang-2.44.1-2.3.noarch
glib2-tools-2.44.1-2.3.x86_64
libpackagekit-glib2-18-1.0.7-3.5.x86_64
libpackagekit-glib2-devel-1.0.7-3.5.x86_64
Также наблюдаю проблемы с кастами
./Main.cpp: In member function ‘wxString FixedFontLookup::Query()’:
./Main.cpp:246:62: error: invalid cast from type ‘wxString’ to type ‘const wchar_t_’
fprintf(stderr, "FixedFontLookup: %ls\n", (const wchar_t *)result);
^
./Main.cpp: In function ‘void InitializeFont(wxFrame, wxFont&)’:
./Main.cpp:264:59: error: invalid cast from type ‘wxString’ to type ‘const wchar_t_’
printf("InitializeFont: used %ls\n", (const wchar_t )str);
^
./Main.cpp: In constructor ‘WinPortPanel::WinPortPanel(WinPortFrame_, const wxPoint&, const wxSize&)’:
./Main.cpp:304:73: error: invalid cast from type ‘wxString’ to type ‘const wchar_t’
fprintf(stderr, "Font: '%ls' %s\n", (const wchar_t *)_font.GetFaceName(), _font.IsFixedWidth() ? "monospaced" : "not monospaced");
^
This is a kind of a feature request.
Since in Linux Alt-Key is the default and almost a standard de facto for many functions in almost every desktop environment (alt+f1, alt+f7 and especially alt+f2) it would be nice to have option to reassign Alt in Far for example to super (win) or some other key to avoid conflicts with Window Managers and DEs.
Far console window always defaults to the 80x25 resolution.
Far(WinPort) should save last resolution or the resolution should be configurable.
Cleanup plugins by removing unnecessary libraries, which could (and should) be managed by system package manager:
Have I missed anything?
What fonts can be used with far2l
? The ones I am trying are awful. Also, how to change the font without removing ~/.far2l
?
Prepare binary packages for popular distros.
As of now I could imagine following issues regarding packaging:
Plugin paths are configurable via
struct LoadPluginsOptions
{
// DWORD TypeLoadPlugins; // see TYPELOADPLUGINSOPTIONS
int MainPluginDir; // TRUE - использовать стандартный путь к основным плагинам
int PluginsCacheOnly; // seting by '/co' switch, not saved in registry
int PluginsPersonal;
FARString strCustomPluginsPath; // путь для поиска плагинов, указанный в /p
FARString strPersonalPluginsPath;
int SilentLoadPlugin; // при загрузке плагина с кривым...
int OEMPluginsSupport;
int ScanSymlinks;
};
(or using any scripting language)
currently an attempt to edit/save any file owned by root results to "Error 5"
expected behavour for Far Manager is to ask for a password of user with administrative privilegies as other FMs do.
In trace string looks correct:
find mask: .* (for /home/igor/projects/test/far/far2l/Build/.*) - ..
OnKeyUp: 2e 2e 0 18367836
OnKeyDown: d d 0 18368369
OnKeyDown: d d 0 18368369
OnChar: d d 0 18368369 _last_keydown_ts=18368369 _last_keydown_enqueued=0
ConsoleInput::Enqueue: 13 13 DOWN
ConsoleInput::Enqueue: 13 13 UP
RegSetValue type=7 cbData=1096
RegSetValue type=1 cbData=64
RegSetValue type=3 cbData=120
RegSetValue type=4 cbData=4
CommandLine::ShowBackground: done
ExecClassifier('start .') - open error 2
setting console size: 140 x 47
ioctl(TIOCSCTTY): Operation not permitted
I suppose, null-termination is somewhere missing or the length calculated incorrectly. Or there is sometimes completely wrong pointer.
placeholder for general discussions
При вырезании префикса "upd:" в файле "farlng/src/lng.generator.cpp", строка 560, не переносится терминирующий ноль:
memmove(lpLNGString, lpLNGString+4, length-4);
Должно быть:
memmove(lpLNGString, lpLNGString+4, length-3);
Дефект проявляется, например, в английской локали в меню "Options", где пункт "Code pages" имеет вид "Code pages"ges".
how to reproduce:
Tested Ctrl-V, Ctrl-Shift-V, Shift-Ins.
gvfs-mount tool also shows this behavour (then asking for password)
how can it be implemented? should it be done withing far2l project or on the desktop shell's side?
If video, pdf or other kind of non-executable file (document) has executable permission on it (this is the case with some mounted file systems) and user presses enter on it, Far should not blindly try executing it, but instead should try to deduce what kind of file it is.
You could try looking at the 'file' program and try to use it with far.
Otherwise far is getting pretty unusable.
continuation of #14
There are many very convenient keyboard layouts like US Alternative International or Russian (with Ukrainian, Belarus), etc, which are using AltGr to enter 3rd level characters like umlauts.
However far intercepts combinations with AltGr not allowing to enter 3rd level characters.
For example, when pressing enter on some document, far suspends.
After using 'fg' in the shell, from which far2l was started, far 'wakes up'.
CreateFile: /home/igor/Downloads/165287006-0.pdf - dwDesiredAccess=0x1 flags=0x80000 path=/home/igor/Downloads/165287006-0.pdf r=8
ExplodeCmdLine('165287006-0.pdf') -> '165287006-0.pdf'
IsPossibleXDGOpeSubject('165287006-0.pdf') - not executable mode=0x81b4
CommandLine::ShowBackground: done
CommandLine::SaveBackground: done
farExecuteA:('xdg-open ./165287006-0.pdf', 0x2, (nil)): r=0
zsh: suspended (tty input) ./far2l
% fg
[1] + continued ./far2l
WinPortFSNotify('/home/igor/Downloads') - watching
This issue has been bothering me for... 20 years.
When you try to open network or some slow mount point (like webdav), Far takes ages to load files and the worst thing about this, it blocks input, so you can't navigate second panel.
I wonder, whether it is possible to fix. I'm afraid, it would be difficult to make this correctly in Far, but at least it worth investigating I suppose.
Функции localtime() и mktime() обратны друг другу, поэтому local_now и now в BiasFileTimeToFileTime() всегда равны. Проверка:
// что делает BiasFileTimeToFileTime()
time_t now = time(NULL);
struct tm local_tm = *localtime(&now);
struct tm xtm = local_tm;
xtm.tm_isdst = 0;
time_t local_now = mktime(&xtm);
printf("localtime(): %ld\n", local_now - now);
// и через gmtime()
local_tm = *gmtime(&now);
xtm = local_tm;
xtm.tm_isdst = 0;
local_now = mktime(&xtm);
printf("gmtime(): %ld\n", local_now - now);
С localtime() будет ноль, с gmtime() - "размер" часового пояса в секундах с противоположным знаком.
Дефект проявляется, например, при отображении на панели времени последнего изменения файла.
When trying to open or execute files, containing whitespaces, far says for example:
"2 2.sh: command not found"
sample archive (created on linux) included. listed ok, but unpacking fails.
the other sample archive (created on windows) lists with garbadge in file names, and also does not unpacks.
Наверное стоит предусмотреть при компиляции перевод всех ресурсов всех плагинов на UTF или например реализовать работу с плагинами так чтобы использовать не изменённые ресурсы а переконверчивать их налету
sample: 2g0.ru/alternatives.tar.4.gz
try to browse into alternatives.tar.4.gz/alternatives.tar.0/alternatives/builtins.7.gz
Не знаю с чем точно связано , но заметил что плагин FTP не коннектится к серверам и сваливается на ошибке что не может законектится http://screencloud.net/v/m9n7
PS есть предположение что это из за IPv6 которые есть на моей машине, но сайт который я открываю IPv4
something like "start ." on windows
can not guess
в файлике far2l.git/trunk/far2l/CMakeLists.txt отсутствует cmake_minimum_required
при инициализации cmake возникает ошибка
as for now, alt+f9 just minimizes the window.
maybe it should maximize the window (leaving taskbar on a screen, unlike alt+enter) instead ?
Numlock is deactivated.
Numpad '5' does not:
Instead the cursor jumps to the first entry in directory.
All other numpad keys (arrows, enter, gr-plus, gr-minus) are working fine.
Far shell is almost unusable without normal auto complete like in zsh or at least bash.
I miss possibility to auto complete:
For example try to rename file, so it contains Cyrillic characters.
Походу плагины считают что должно быть cp866
http://screencloud.net/v/kNTv
Scenario:
Expected behavior:
Observed behavior:
native sftp/scp support (without using sshfs or something like it) would be nice
https://github.com/michaellukashov/Far-NetBox/
building on linux mint 18 ru
installed all dependencies
building with make as described in readme
$ make
make[2]: *** Нет правила для сборки цели «/home/unxed/far2l/far2l/bootstrap/farlng», требуемой для «bootstrap/CMakeFiles/bootstrap». Останов.
CMakeFiles/Makefile2:122: ошибка выполнения рецепта для цели «bootstrap/CMakeFiles/bootstrap.dir/all»
make[1]: *** [bootstrap/CMakeFiles/bootstrap.dir/all] Ошибка 2
Makefile:83: ошибка выполнения рецепта для цели «all»
make: *** [all] Ошибка 2
Currently "/run/user/USERID" is selected by default.
It would be great to make this choise configurable. for example, to select "~" or "/" to be default choise if needed.
I noticed that there is no LICENSE
file that is present in standard Far3 repository. This is a license violation that can lead to termination of far2l
project o GitHub.
To avoid "license deadlock" and make it more useful for upstream, the original BSD code pieces could be kept separated from GPLv2 both in headers and in top level LICENSE file.
Понимаю что альфа , но наверное стоит рассмотреть возможность мультипоточной сборки
make -j N
Потому что потоки не синхронизированы и выдают ошибку так как остальные ресурсы ещё не готовы
А сборка в один поток занимает минут 5 что не очень интересно на многопроцессорной машине
Feature request.
Provide better linux shell integration:
cc1plus: error: code model 'medium' not supported in the 32 bit mode
OnKeyDown event is triggered twice, which causes cursor to jump over files and menu entries.
OnKeyDown: 0 13d
OnKeyDown: 0 13d
OnChar: 0 13d
OnKeyUp: 0 13d
OnKeyDown: 0 13d
OnKeyDown: 0 13d
OnChar: 0 13d
OnKeyUp: 0 13d
OnKeyDown: 0 13b
OnKeyDown: 0 13b
OnChar: 0 13b
OnKeyUp: 0 13b
OnKeyDown: 0 13b
OnKeyDown: 0 13b
OnChar: 0 13b
OnKeyUp: 0 13b
and so on.
При редактировании больших файлов вроде https://github.com/vurtun/nuklear/blob/master/nuklear.h , если сразу спозиционироваться в конец, можно ждать парсинга colorer вечно.
Предлагаю такое решение: lieff@b712007
Это быстро увеличивает объем парсинга до 10000 строк\итерацию. Время ожидания на nuklear.h сокращается до ~5 секунд. Если во время не завершенного процесса сдвинуть курсор, можно заметить залипание, но оно не большое.
Add an option to configure far's editor to create new text files in utf-8 charset, and another option - to assume utf-8 encoding by default then opening files (as it is done in far3).
Or also hardcode utf-8 as default encoding instead of 1251 or 866.
Really, who needs whose two on linux systems?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.