what’s new for 2021
Previous post about the port of Far Manager under Linux, far2l, turned out to be incredibly popular, so I thought it would be nice to write something like a digest of the most interesting development news once a year. Let’s start.
Clipboard in the console version
Now far2l, like mc, can use the X11 clipboard even in the console version (in the graphical version he was able from the very beginning). For this, a separate module for interacting with X is assembled, which is loaded only if the libx11 library is installed on the system. You can even go to remote servers via ssh -X, the clipboard will work there too (again, if libx11 is installed on the server).
And more about the console mode. Don’t forget about the command line parameter –ee, which allows you to get rid of the need to press ESC twice.
By the way, about the keyboard in the console. Almost all hotkeys in third-party terminals are supported – at least, I only know about problems with Ctrl + number combinations, above them work in progress…
Human error messages
For a long time, all far2l error messages showed numerical error codes that came from the Windows world and did not carry any useful information. Now this has been fixed, all error messages have become semantic, and the error codes are native to the platform.
Colors in the log of the built-in terminal
Support for ANSI escape sequences has been added to the built-in viewer to control the display color, so the view of the built-in terminal logs is now in color. Convenient when parsing compiler logs, for example.
In general, the viewer has been greatly improved. For example, he has a so-called “processed mode” (toggled by F5), which allows you to get information about a file (say, to see the textual representation of a PDF or technical data about an image).
Even more archive formats
The multiarc plugin, through which the work with archives is done in far2l, has support for the custom pseudo-format, which allows you to set the archive signature, command lines of the archiver and the format of its output in the text config. This makes it easy to add support for any format imaginable. For example, in this way now supported disk image formats of most virtual machines, and even such exotic in the Linux world as the WIM format.
Built-in “registry” replaced with regular .ini files
Historically, far2l’s settings have been based on a structure similar to the Windows Registry, but working on text files. This solution was chosen for the convenience of porting, but it is difficult to call it a convenient way of working with configuration files. Now this rudiment has disappeared, and all settings are in ~ / .config / far2l in human readable .ini files
By the way, they also put things in order in the settings folder – all temporary working files were moved from there to ~ / .cache / far2l (/ tmp is not very suitable for them, since there may be critical user data).
The move from UCD to Uchardet has completed tidying up the libraries and dependencies. Now only libcolorer is statically built (because there are no distributions in the reps), 7z / unrar (so that they are always fresh) and utf-cpp (since we have our own, slightly adapted version). All other libraries are used from the distribution.
By the way, when switching to Uchardet, at the same time, we fixed the launch of autodetection of the text encoding through the item in the editor and viewer menus.
Debian License Compatibility
After removing the UTF format conversion library from clang from far2l and adding GPL exceptions for OpenSSL to the license of the NetRocks plugin, the project became fully compatible with the Debian licensing requirements. work on the package…
More precisely, we think we will be compatible. There are no lawyers in the team yet 🙂
Support for outdated archives
The command lines for calling unpackers of various exotics like ARJ and ACE have been replaced with calling utilities that are present in the current versions of distributions. Now all formats declared as supported are at least unpacked. For some, you will need to install third-party utilities, but support for the .ha format has been made built-in – people who remember fido will appreciate it 🙂
CI for Mac and FreeBSD
Previously, automated building was performed only for the Linux platform, now continious integration scripts are available for both BSD and Mac. Errors occurring only on these platforms will be caught faster.
Eliminated a bunch of compiler warnings and “dead” code. most of the rest are from the colorer, which is taken unchanged from the upstream. Rewritten file copy code – improved support for symbolic links, improved performance. Added support for Copy-on-Write and sparse files. Many small improvements productivity, including network: support for compressing SSH traffic in NetRocks and more optimal displaying the interface in terminals.
Graphical backend in a separate module
Now the graphical backend that draws the headlight window via wx widgets is collected into a separate module that automatically checks for the presence of the necessary libraries in the system, and if they are not there, far2l is launched in console mode. Convenient: you can compile this module into a separate package, depending on wx, and collect the rest of far2l into another package without this dependency. Simplifies installation on servers without graphics.
Do we even need a wx version if everything or almost everything is working in the console now? There is an opinion that we need it – if we want a full-fledged experience of working with Far as-in-Windows, without discounts and compromises. We discuss it here…
PS: Everyone knows that there is patched puttywhere in far2l the clipboard and all keyboard shortcuts work?