Giter Site home page Giter Site logo

elfmz / far2l Goto Github PK

View Code? Open in Web Editor NEW
1.7K 1.7K 162.0 66.85 MB

Linux port of FAR v2

License: GNU General Public License v2.0

CSS 0.17% Makefile 0.03% C++ 44.53% C 45.29% CMake 0.67% Perl 0.08% M4 7.77% Shell 0.28% PHP 0.01% Ruby 0.01% Python 0.94% Objective-C++ 0.04% Raku 0.04% BitBake 0.01% VBScript 0.01% Go 0.12% JavaScript 0.03% Dockerfile 0.01%
filemanager linux macos osx terminal

far2l's People

Contributors

akozlins avatar akruphi avatar alexax66 avatar alexmyczko avatar alter-1 avatar anta999 avatar anteo avatar atolismesh avatar cycleg avatar dazzar56 avatar elfmz avatar invy avatar ivanshatsky avatar klirichek avatar lieff avatar m32 avatar michaellukashov avatar rampitec avatar randolf avatar russiandesman avatar shmuz avatar singalen avatar spnethw avatar svost avatar sxored avatar techtonik avatar unxed avatar vitalyster avatar yurikoles avatar zelenoviy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

far2l's Issues

Плагин FTP не конектится к серверам

Не знаю с чем точно связано , но заметил что плагин FTP не коннектится к серверам и сваливается на ошибке что не может законектится http://screencloud.net/v/m9n7
PS есть предположение что это из за IPv6 которые есть на моей машине, но сайт который я открываю IPv4

Better linux shell integration.

Feature request.

Provide better linux shell integration:

  • use .profile and shell rc files to configure shell used in far
  • use $PS1 as a command prompt string
  • cd command should also change directory displayed on the current panel (cd .., cd ~, cd)

Store and load console resolution

Far console window always defaults to the 80x25 resolution.

Far(WinPort) should save last resolution or the resolution should be configurable.

Recommended fonts

What fonts can be used with far2l? The ones I am trying are awful. Also, how to change the font without removing ~/.far2l?

Мультипоточная сборка

Понимаю что альфа , но наверное стоит рассмотреть возможность мультипоточной сборки
make -j N
Потому что потоки не синхронизированы и выдают ошибку так как остальные ресурсы ещё не готовы

А сборка в один поток занимает минут 5 что не очень интересно на многопроцессорной машине

OnKeyDown event triggered twice

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.

GLIB_VERSION_MIN_REQUIRED must be >= GLIB_VERSION_2_26

Пытался собрать на SUSE Leap 42.1, все нужные библиотеки поставлены но при билде получаю ошибку не соотвествия версии glib2 просит минимум 2_26 , а у меня стоят 2.44

chodorenko@chodorenko-linux:/9/far2l.git/trunk/WinPort> make -f WinPort.mk
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:
/9/far2l.git/trunk/WinPort> rpm -qa | grep glib2
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");
^

Asynchronous file list loading into panels

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.

Licensing clarity

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.

Don't execute everything, what has execute flag on it.

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.

Refactoring: remove unnecessary libraries from plugins

Cleanup plugins by removing unnecessary libraries, which could (and should) be managed by system package manager:

  1. multiarc: libpcre (use c++ regex)
  2. colorer: zlib
  3. netbox: putty (replace with openssh, because it would be great if far could pickup ssh keys from ~/.ssh)

Have I missed anything?

Far2l packaging

Prepare binary packages for popular distros.

As of now I could imagine following issues regarding packaging:

  1. plugin location and changes to far so it could find plugins (evtl. configurable)
    • default plugins ( /use/lib/far2l/ )
    • custom plugins ( ~/.local/lib/far2l )
  2. languages and help location and paths
  • /usr/share/far2l

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;
};

slow colorer background parsing

При редактировании больших файлов вроде https://github.com/vurtun/nuklear/blob/master/nuklear.h , если сразу спозиционироваться в конец, можно ждать парсинга colorer вечно.
Предлагаю такое решение: lieff@b712007
Это быстро увеличивает объем парсинга до 10000 строк\итерацию. Время ожидания на nuklear.h сокращается до ~5 секунд. Если во время не завершенного процесса сдвинуть курсор, можно заметить залипание, но оно не большое.

far suspends, when oppening file using xdg-open

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

Unexpected characters appear, when "not found" message is shown in the console.

image

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.

Shell integration: advanced autocomplete

Far shell is almost unusable without normal auto complete like in zsh or at least bash.
I miss possibility to auto complete:

  • parameters (I.e. mount -t v TAB (or some other key, I think there was an extension long ago, which used '`' character) should autocomplete available filesystem starting with 'v')
  • repository objects (commits, tags, branches)
  • etc

.LNG generator: неправильная обработка изменнных строк в шаблоне

При вырезании префикса "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".

Плагин темпорари русский язык

Наверное стоит предусмотреть при компиляции перевод всех ресурсов всех плагинов на UTF или например реализовать работу с плагинами так чтобы использовать не изменённые ресурсы а переконверчивать их налету

build probelms

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

Numpad '5' doesn't work

Numlock is deactivated.

Numpad '5' does not:

  • enter/leaves viewer, when the cursor is above file and
  • doesn't show directory size, when pressed with the cursor above the directory.

Instead the cursor jumps to the first entry in directory.

All other numpad keys (arrows, enter, gr-plus, gr-minus) are working fine.

BiasFileTimeToFileTime() не учитывает часовой пояс

Функции 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() - "размер" часового пояса в секундах с противоположным знаком.

Дефект проявляется, например, при отображении на панели времени последнего изменения файла.

alt+f9 works incorrectly

as for now, alt+f9 just minimizes the window.
maybe it should maximize the window (leaving taskbar on a screen, unlike alt+enter) instead ?

Add option to reassign Alt-Key

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.