far2l

far2l

FAR Manager的跨平台开源分支

far2l是FAR Manager v2的跨平台fork,支持Linux、macOS和BSD系统。它提供文件管理和终端模拟功能,可通过GUI或TTY方式运行。far2l内置多个插件如NetRocks和colorer,增强了基本功能。项目采用GNU/GPLv2开源协议,允许自由修改和再分发。作为一款跨平台文件管理器,far2l旨在提供灵活高效的用户体验。

far2l文件管理器跨平台开源软件命令行工具Github开源项目

Cirrus构建状态 覆盖率状态 Coverity扫描 语言评级: C/C++ 软件包

far2l 标签

FAR管理器v2的Linux分支(http://farmanager.com/) 也可在OSX/MacOS和BSD上运行(但后者未经常规测试) 测试版。 使用风险自负!

目前可用的插件:NetRocks(SFTP/SCP/FTP/FTPS/SMB/NFS/WebDAV)、colorer、multiarc、tmppanel、align、autowrap、drawline、editcase、SimpleIndent、Calculator、Python(可选脚本支持)

FreeBSD/MacOS(Cirrus CI):Cirrus

许可证:GNU/GPLv2

使用了以下项目的代码

  • FAR for Windows及其部分插件
  • WINE
  • ANSICON
  • Portable UnRAR
  • 7z ANSI-C解码器
  • utf-cpp(作者:ww898)

UI后端

FAR2L有基本UI后端(详见内置帮助中的UI后端部分):

  • GUIWX):使用wxWidgets,在图形模式下工作,理想用户体验,需要大量X11依赖;

  • TTY|Xi:在终端模式下工作,需要一对X11库作为依赖(用于访问剪贴板和获取所有键盘修饰键的状态),几乎完美的用户体验;

  • TTY|X:在终端模式下工作,使用X11访问剪贴板,所有键盘操作通过终端进行;

  • TTY:纯终端模式,无X11依赖,用户体验有一些限制(在终端模拟器中运行时可完全工作,这些模拟器提供剪贴板访问并具有高级键盘协议)。

模式<br>(UI后端)TTY<br>(纯far2l)TTY|XTTY|XiGUI
工作环境:终端终端终端桌面环境<br><sub>(X11<br>或Wayland<br>或macOS)</sub>
二进制文件:far2lfar2l<br>far2l_ttyx.brokerfar2l<br>far2l_ttyx.brokerfar2l<br>far2l_gui.so
依赖项最小+ libx11+ libx11, libxi+ wxWidgets, GTK
键盘:<sub>典型终端<br>仅基本<br>按键组合<br><br>KiTTY(putty分支),<br>kitty(*nix版),<br>iTerm2<br>Windows Terminal<br>far2l的VT:完全支持</sub><sub>典型终端<br>仅基本<br>按键组合<br><br>KiTTY(putty分支),<br>kitty(*nix版),<br>iTerm2<br>Windows Terminal<br>far2l的VT:完全支持</sub><sub>典型终端<br>x11下大多数<br>按键组合<br>Wayland下<br>仅基本按键组合<br><br>KiTTY(putty分支),<br>kitty(*nix版),<br>iTerm2<br>Windows Terminal<br>far2l的VT:完全支持</sub>所有<br>按键组合
剪贴板<br>访问:<sub>典型终端<br>通过命令行<br>工具如xclip<br><br>kitty(*nix版),<br>iTerm2<br>通过OSC52<br><br>Windows Terminal<br>通过OSC52<br>WSL下的<br>命令行工具<br><br>KiTTY(putty分支),<br>far2l的VT:<br>通过far2l扩展</sub><sub>典型终端<br>kitty(*nix版):<br>通过x11交互<br><br>iTerm2<br>通过OSC52<br><br>Windows Terminal<br>通过OSC52<br>WSL下的<br>命令行工具<br><br>KiTTY(putty分支),<br>far2l的VT:<br>通过far2l扩展</sub><sub>典型终端<br>kitty(*nix版):<br>通过x11交互<br><br>iTerm2<br>通过OSC52<br><br>Windows Terminal<br>通过OSC52<br>WSL下的<br>命令行工具<br><br>KiTTY(putty分支),<br>far2l的VT:<br>通过far2l扩展</sub>通过<br>wxWidgets API<br><br><sub>通过WSL下的<br>命令行工具</sub>
典型<br>使用场景:服务器<br>嵌入式<sub>在喜欢的终端中<br>运行far2l<br>但具有<br>更好的用户体验</sub><sub>在喜欢的终端中<br>运行far2l<br>但具有<br>最佳用户体验</sub>桌面
是否必需:
<sub>_关于在TTY/TTYX中使用OSC 52的注意事项_:
要与系统剪贴板交互,你必须记得在FAR2L设置和终端设置中启用OSC 52
FAR2L设置中(选项->界面设置->使用OSC52设置剪贴板数据
该选项仅在far2l以TTY/TTYX模式运行且其他剪贴板访问选项不可用时显示;
你可以运行far2l --tty --nodetect来强制不使用其他剪贴板选项),
以及在终端设置中必须允许OSC 52选项(出于安全考虑,某些终端默认禁用OSC 52;
许多终端中的OSC 52仅实现了复制模式,从终端粘贴则通过括号粘贴模式进行)。</sub>

安装、运行

Debian/Ubuntu 23.10+二进制文件(仅支持TTY X/Xi后端)

apt-get install far2l

仅在使用Wayland的Ubuntu Desktop 23.10下运行时使用 far2l --nodetect=xi --ee

<sub>Debiansid-unstable / 13 trixie-testing / 12 bookworm-backports中有far2;Ubuntu23.10开始提供。 有关官方仓库中版本的详细信息,请参阅 https://packages.debian.org/search?keywords=far2lhttps://packages.ubuntu.com/search?keywords=far2l </sub>

<sub>注意:目前Debian/Ubuntu官方仓库中的far2l仅为TTY|Xi版本,依赖于一对X11库。 这对某些服务器可能不太方便。 对于没有X且仅有终端/ssh访问的服务器,纯far2l-TTY版本更为合适 (二进制文件或便携版请参见社区包和二进制文件)。</sub>

OSX/MacOS二进制文件

你可以通过Homebrew Cask安装x86_64平台的预构建包,使用以下命令:

brew install --cask far2l

你也可以从发布页面手动下载并安装x86_64平台的预构建包:https://github.com/elfmz/far2l/releases

Docker

你可以使用容器来尝试far2l,无需安装任何东西。

docker build . -l far2l docker run -it far2l

另请参阅社区包和二进制文件

构建、贡献、开发

所需依赖

  • libwxgtk3.0-gtk3-dev(或较新发行版中的libwxgtk3.2-dev,或较旧发行版中的libwxgtk3.0-dev可选 - 需要用于GUI后端,使用-DUSEWX=no时不需要)
  • libx11-dev可选 - 需要用于X11扩展,为TTY后端提供更好的用户体验,适用于X11可用的环境)
  • libxi-dev可选 - 需要用于X11/Xi扩展,为TTY后端提供最佳用户体验,适用于X11 Xi扩展可用的环境)
  • libxerces-c-dev可选 - 需要用于Colorer插件,使用-DCOLORER=no时不需要)
  • libuchardet-dev可选 - 需要用于自动字符集检测,使用-DUSEUCD=no时不需要)
  • libssh-dev可选 - 需要用于NetRocks/SFTP
  • libssl-dev可选 - 需要用于NetRocks/FTPS
  • libsmbclient-dev可选 - 需要用于NetRocks/SMB
  • libnfs-dev可选 - 需要用于NetRocks/NFS
  • libneon27-dev(或更高版本,可选 - 需要用于NetRocks/WebDAV
  • libarchive-dev可选 - 需要用于multiarc中更好的归档支持)
  • libunrar-dev可选 - 需要用于multiarc中的RAR归档支持,请参阅UNRAR命令行选项)
  • libpcre3-dev(或较旧发行版中的libpcre2-dev可选 - 需要用于multiarc中高级自定义归档格式支持)
  • cmake(>= 3.2.2)
  • pkg-config
  • g++
  • git(需要用于下载源代码)

或者在Debian/Ubuntu上简单地执行:

apt-get install libwxgtk3.0-gtk3-dev libx11-dev libxi-dev libpcre3-dev libxerces-c-dev libuchardet-dev libssh-dev libssl-dev libsmbclient-dev libnfs-dev libneon27-dev libarchive-dev cmake pkg-config g++ git

从sid简单移植应该很容易(从官方源deb包构建你自己的二进制deb):

# 你可以在http://packages.debian.org/sid/far2l找到最新的dsc链接 dget http://deb.debian.org/debian/pool/main/f/far2l/far2l_2.5.0~beta+git20230223+ds-2.dsc dpkg-source -x *.dsc cd far2l-*/ debuild # cd .. 并安装你自己构建的far2l*.deb

在较旧的发行版中:使用libpcre2-dev和libwxgtk3.0-dev代替libpcre3-dev和libwxgtk3.0-gtk3-dev

克隆和构建

  • 克隆当前master分支
git clone https://github.com/elfmz/far2l cd far2l
  • 检出某个稳定的发布标签(master分支被认为是不稳定的):git checkout v_2.#.#
  • 准备构建目录:
mkdir -p _build cd _build
  • 构建: 使用make:
cmake -DUSEWX=yes -DCMAKE_BUILD_TYPE=Release .. cmake --build . -j$(nproc --all)

或使用ninja(需要安装ninja-build包)

cmake -DUSEWX=yes -DCMAKE_BUILD_TYPE=Release -G Ninja .. cmake --build .
  • 如果上述命令没有出错,你也可以安装far2l,sudo cmake --install .

  • 也可以通过运行cmake --build . --target package命令在_build目录中创建far2l_2.X.X_ARCH.deb或...tar.gz包。

额外的构建配置选项:

要构建不带WX后端的版本(仅控制台版本):将-DUSEWX=yes改为-DUSEWX=no,在这种情况下也不需要安装libwxgtk*-dev包

要强制禁用TTY|X和TTY|Xi后端:添加参数-DTTYX=no;要仅禁用TTY|Xi - 添加参数-DTTYXI=no

要消除libuchardet依赖以减少far2l依赖,但代价是失去自动字符集检测功能:添加-DUSEUCD=no

要构建带Python插件的版本:添加参数-DPYTHON=yes

要控制multiarc中如何处理RAR归档: -DUNRAR=bundled(默认)使用multiarc/src/formats/rar/unrar中的捆绑源代码 -DUNRAR=lib使用libunrar和unrar工具,构建还需要安装libunrar-dev -DUNRAR=NO不使用特殊的unrar代码,RAR归档将由libarchive处理,除非它也被禁用

还有用于切换其他插件构建的选项:ALIGN AUTOWRAP CALC COLORER COMPARE DRAWLINE EDITCASE EDITORCOMP FARFTP FILECASE INCSRCH INSIDE MULTIARC NETROCKS SIMPLEINDENT TMPPANEL

OSX/MacOS 构建

要进行自定义/最新构建,请使用 brew 或 MacPorts。

  • 支持的编译器:AppleClang 8.0.0.x 或更新版本。检查您的版本,如有必要请安装/更新 Xcode。
clang++ -v
  • 如果您想使用 Homebrew 构建 - 请先访问 https://brew.sh/ 获取安装说明。请注意,在 MacOS Big Sur 下使用 Homebrew 构建可能会遇到问题。
  • 如果您想使用 MacPorts 构建 - 请先访问 https://www.macports.org/install.php 获取安装说明。
通过非官方 brew tap 一键安装最新 far2l git master 版本
  • 带 GUI/TTY 后端:
brew install --HEAD yurikoles/yurikoles/far2l
  • 仅带 TTY 后端:
brew install --HEAD yurikoles/yurikoles/far2l --without-wxwidgets
  • 另外,您可以通过在上述两个命令中添加 --with-python@3.10 来启用 Python 支持。
从源代码完整构建 OSX/MacOS 版本(较困难):

一些问题可能由冲突的依赖项引起,比如安装了两个版本的 wxWidgets,因此在安装依赖项时要避免这种情况。

  • 克隆:
git clone https://github.com/elfmz/far2l cd far2l
  • 使用 MacPorts 安装所需依赖:
sudo port install cmake pkgconfig wxWidgets-3.2 libssh openssl xercesc3 libfmt uchardet neon export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig
  • 或者如果您更喜欢使用 brew 包,那么:
brew bundle -v export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(brew --prefix)/opt/openssl/lib/pkgconfig:$(brew --prefix)/opt/libarchive/lib/pkgconfig"
  • 安装依赖后 - 您可以构建 far2l: 使用 make:
mkdir _build cd _build cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DUSEWX=yes -DCMAKE_BUILD_TYPE=Release .. cmake --build . -j$(sysctl -n hw.logicalcpu)

或使用 ninja:

mkdir _build cd _build cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DUSEWX=yes -DCMAKE_BUILD_TYPE=Release -G Ninja .. cmake --build .
  • 然后您可以通过运行 cpack 命令创建 .dmg 包。 请注意,这一步有时会失败,可能需要多次尝试才能成功。 建议在 cpack 进行时不要在机器上做任何操作。 成功创建 .dmg 后,您可以通过运行 open ...path/to/created/far2l-*.dmg 来安装它。
macOS 解决方案:如果 far2l 在 macOS 中经常请求文件夹权限

执行以下命令后

sudo codesign --force --deep --sign - /Applications/far2l.app

只需确认一次权限即可。

详情请参阅 issue

在 Gentoo(及其衍生版)上构建

最低要求:

emerge -avn dev-libs/xerces-c app-i18n/uchardet dev-util/cmake

如果您想构建支持 wxGTK 的 far2l,还需安装:

emerge -avn x11-libs/wxGTK

此外,对于 NetRocks,您还需要:

emerge -avn net-libs/neon net-libs/libssh net-fs/libnfs net-fs/samba

安装后,按照上面的克隆和构建部分进行操作。

NixOS 上安装和构建

要系统范围内安装,请将 far2l 包添加到您的 configuration.nixenvironment.systemPackages 列表中。要按需运行应用程序而不影响系统状态,请执行 nix-shell -p far2l --command far2l。这些使用的是您当前 channel 中的包版本。

Far2l 对 nix 的适配是 GitHub 上的一个小文件,它指定从 Far2l 仓库获取哪个 Git 修订版,用哪些依赖项构建,以及如何修补其对其他软件的引用,使其能够以独立方式运行,不受系统中其他可用版本的影响。

您可以构建并运行任何修订版的 far2l 包:

  • 直接从 GitHub(NixOS/nixpkgs 仓库,或您自己的 fork 和分支):
nix-shell -I nixpkgs=https://github.com/<fork>/nixpkgs/archive/<revision-or-branch>.tar.gz -p far2l --command far2l
  • 从本地克隆的仓库工作目录:
nix-shell -I nixpkgs=/path/to/nixpkgs -p far2l --command far2l

要将包更新到新的 Far2l 修订版,请编辑 fetchFromGitHub 设置属性 rev(修订版哈希)和 sha256(修订版内容哈希)。重要! 如果您保留旧的内容哈希,可能会使用该哈希的旧缓存内容,而不会尝试下载新的修订版。如果您不希望构建过程中断,最简单的方法是创建一个 fork,推送更改,然后直接从 GitHub 构建。

IDE 设置

您可以将项目导入到您喜欢的 IDE 中,如 QtCreator、CodeLite 或任何其他支持 cmake 或 cmake 能够为其生成项目的 IDE。

  • QtCreator: 选择"打开项目",并将 QtCreator 指向 far2l 根目录中的 CMakeLists.txt
  • CLion: 与 QtCreator 相同。
  • CodeLite: 使用此指南设置项目: https://wiki.codelite.org/pmwiki.php/Main/TheCMakePlugin (为避免污染源代码树,不要在 far2l 目录内创建工作空间)
  • Visual Studio Code (需要 CMake Tools 扩展): 打开 far2l 根目录(默认在子目录 _build 中构建;您可以在 .vscode/settings.json 中更改)

<a name="terminals"></a>

支持扩展 far2l 键盘快捷键和剪贴板访问的终端和 SSH 客户端

注意:要完全传输扩展键盘快捷键和剪贴板到/从远程 far2l, 最佳方式之一是在本地 far2l-GUI 内部发起连接 (详见内置帮助的 UI 后端部分)。

有用的第三方扩展

<a name="community_bins"></a>

社区软件包和二进制文件

这些由爱好者维护,可能与主分支不完全一致:有时包含额外插件,有时有调整等。

更多信息请参见 https://github.com/elfmz/far2l/issues/647

关于移植和 FAR 插件 API 变更的说明

测试

已知问题:

  • 仅英语、俄语、乌克兰语和白俄罗斯语(仅界面)的翻译是有效的,所有其他语言都需要深度校正。

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

热门AI工具AI办公办公工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

模型训练热门AI工具内容创作智能问答AI开发讯飞星火大模型多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

热门AI工具生产力协作转型TraeAI IDE
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

AI助手热门AI工具AI创作AI辅助写作讯飞绘文内容运营个性化文章多平台分发
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多