Versión de la consola
La primera pregunta que todos hicieron aquí , en la red abierta y en la historia : ¿por qué no en la consola? Originalmente far2l solo funcionaba en modo gráfico, a través de wxWidgets. Esta resultó ser la forma más fácil de obtener rápidamente un puerto de trabajo con todas las comodidades del usuario: un portapapeles X y todos los atajos de teclado, y con soporte para eventos no solo KeyDown, sino también KeyUp.
Esta limitación es ahora cosa del pasado: far2l se siente genial en la consola . Además, allí aparecieron las llamadas extensiones de terminal far2l., por lo que si ejecuta la consola far2l dentro de la gráfica (por ejemplo, yendo a algún lugar a través de ssh), se "conectan" entre sí, y la far2l interna también verá el portapapeles (con el permiso del usuario, por supuesto) y todas las teclas de acceso rápido posibles. Además, incluso se realizó un ensamblaje de masilla especial , lo que le permite disfrutar de todas estas características de Windows.
Mira, esto es far2l en GNOME Terminal
Pero en masilla
Letras rusas en .zip "desde Windows"
Lo crea o no, Windows, hasta al menos siete, creó archivos .zip, grabando nombres de archivos en codificación OEM (DOS) allí. La compatibilidad da miedo. Como resultado, StackOverflow está lleno de preguntas "cómo puedo desempaquetar correctamente un zip con krakozyabrami".
En far2l lo arreglamos. En el proceso, nació una utilidad de demostración , que muestra cómo trabajar correctamente con codificaciones en .zips para que no haya "krakozyabrs" (útiles para los autores de archivadores), así como un parche para p7zip que usa un algoritmo similar. El p7zip-with-patch incluso está empaquetado en un .deb (ubuntu 20.04+, amd64), cuya instalación corrige el soporte zip, por ejemplo, en Engrampa usado en MATE.
Poner en orden las dependencias
Inicialmente, el puerto llevaba un montón de código de biblioteca, por lo que están presentes en el mundo Linux en paquetes de sistema: pcre, minizip, detector de juego de caracteres universal. Ahora todo esto ha sido reemplazado por el uso competente de las dependencias: las bibliotecas del sistema se utilizan siempre que sea posible (excepción: 7z y unrar, las últimas bibliotecas se compilan estáticamente allí para admitir las últimas características de los formatos).
Apoyo humano .tar.gz
El complemento multiarc que usa far2l para acceder a los archivos nos llegó desde el mundo de Windows y no sabíamos cómo percibir .tar.gz como un solo archivo. Vio .gz y dentro de él .tar. Por lo tanto, para obtener una lista de archivos, tuvo que realizar una descompresión completa. Qué experiencia. Durante el último mes, multiarc se ha mejorado significativamente y este problema ha desaparecido.
Hermosa ventana de consola
Había un problema en la versión gráfica de far2l: los símbolos de dibujo de borde se mostraban con una molesta línea de puntos.
Nos tomó mucho tiempo encontrar la causa o encontrar la configuración de renderizado que soluciona este error interminable, hasta que busqué en el código fuente de los terminales GNOME y KDE. Y resulta que, hace mucho tiempo, los símbolos para los marcos de dibujo no se renderizan a partir de la fuente, sino manualmente, para que las líneas sean claras y hermosas.
Como resultado, hicimos lo mismo en far2l, solo que un poco mejor: agregando anti-aliasing. De lo contrario, en los terminales KDE y GNOME, las líneas más contrastantes distraen demasiado al lado del texto suavizado.
En el proceso, tuve que entender los matices psico-visuales del anti-aliasing, captura de "píxeles demasiado brillantes" inexistentes que los ojos veían obstinadamente. Detalles .
Paquetes de distribución
Todavía no hemos entrado en los repositorios de muchas distribuciones (¡ y algunas ya lo han hecho !). Pero durante mucho tiempo ha habido paquetes en todos los formatos principales . ¡Incluso hay un script de compilación para Amazon Linux! Y, por supuesto, hay un ppa para * buntu , la forma más conveniente de "encender las luces" para la mayoría de los usuarios.
Colorante fresco
far2l se bifurcó desde la rama Far 2, por lo que algunos complementos requerían actualizaciones urgentes. Recientemente, se realizó una actualización de este tipo: actualizamos el código de descompresión de 7z y unrar, así como el esquema de color de la sintaxis de Colorer. El resto de los complementos portados no contienen piezas que se actualizan periódicamente, pero los viejos "colores" y los nuevos archivos que no se abren eran un problema real. ¡Eso es, se ha ido!
Rocas de caja neta
Esta era la segunda pregunta que solía hacerse en kamenty: "¿y netboooooooooooooooooooo?". ¡No, no habrá netbox! Hay masilla adentro, y arrastrar su versión linux a far2l parecía una idea extraña. Y el código de netbox en sí no era muy adecuado para la portabilidad.
Por lo tanto, el autor del puerto, excelente elfmz, creó su propia versión del complemento de red: NetRocks. Hay todo lo que pueda necesitar: ftp [s], scp, sftp, nfs, webdav e incluso samba. Todo funciona en bibliotecas nativas de Linux. En sftp, incluso puede ejecutar comandos remotos e ir a la consola remota.
NetRocks también tiene un complemento de archivo de pseudored que le permite trabajar con el sistema de archivos local. ¿Para qué? Porque NetRocks es bueno para operaciones en segundo plano. Y la copia habitual de archivos Far no puede.
¿Qué pasa con los complementos?
Además de NetRocks, el kit incluye:
colorer (resaltado de sintaxis, ¡fresco!)
Multiarc (¡trabajando con archivos, archivadores nuevos y modificados!)
Tmppanel (panel temporal)
alinear bloque (bloques de formato para el editor)
autowrap (ajuste automático en el editor)
dibujar línea (dibujo líneas en el editor)
editcase (convertir mayúsculas y minúsculas en el editor)
SimpleIndent (trabajar con sangría en el editor)
comparar (versión avanzada de "comparar carpetas")
editor autocompletar (autocompletar en el editor)
filecase (convertir el caso de nombres de archivos)
búsqueda incremental ("búsqueda rápida" en editor)
dentro (muestra lo que hay dentro de ELF y algunos otros formatos)
¡e incluso un complemento para escribir otros complementos en Python!
Hay un par de terceros, far2-gvfs y far2l-fuse , pero después de la aparición de NetRocks, han perdido un poco su relevancia.
En general, está disponible un conjunto básico para trabajar cómodamente con archivos y archivos locales y remotos, así como escribir código directamente en el editor far2l :)
¿Qué tal la estabilidad? ¿Cuándo es el lanzamiento ya?
Con estabilidad, todo está bien: durante 4 años de uso en el trabajo (webdev + cualquier oficina) no he "capturado" una sola pérdida de datos con far2l. El autor del puerto está listo para cambiar gradualmente el estado de alfa a beta, si los errores críticos no aparecen en uno o dos meses. Entonces uno podría pensar en enviar paquetes a un repositorio de distribución, por ejemplo.
Bono # 1. ¿Realmente hay vino debajo del capó?
En parte :) Algunas piezas de la traducción de WinApi a la API nativa de Linux se extrajeron de Wine (conversión de codificación, por ejemplo; por cierto, recientemente intentaron reescribir esta pieza en iconv, pero resultó que el código de Wine hace lo mismo 4 veces más rápido ). Con el tiempo, las llamadas a estas funciones, dispersas por todo el código far2l, pueden reemplazarse gradualmente por llamadas directas a funciones nativas. Mientras tanto, este diseño también funciona muy rápido (lo más lento en lo que intentaron ejecutar: raspberry pi , el vuelo es normal) y bastante confiable.
Bono # 2. ¡Dejen de sufrir tonterías, enseñen la consola, tontos!
Durante mi trabajo en far2l (un probador, y a veces envío parches simples) aprendí más sobre la consola Linux que en toda mi vida anterior :) Y también estoy dominando gradualmente C, en el que no he tenido que codificar desde el instituto, no había ninguna razón (al mismo tiempo , por cierto, cambió a "usted" con git). ¡Así que espere pronto un artículo sobre "cómo se enseña el macaco web en código abierto"!
Bono # 3. ¿Hay fondos de pantalla aburridos?
Hace unos años, preferiría reírme de esta pregunta. Pero sí, si miras de azul todo el día, de alguna manera se vuelve incómodo (y puedes sentir directamente cómo crecen una barba y un suéter con ciervos). Por lo tanto, al final me hice un colorante en el espíritu de Monokai, y lo puse para todos , por supuesto. Tenemos código abierto, después de todo.
Bono # 4. ¿Despegará en una amapola?
Quitarse. La mitad de las entradas se escriben en el bugtracker desde amapolas. Y sí, también funciona en BSD.