Project Icon

far2l

FAR Manager的跨平台开源分支

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

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依赖,用户体验有一些限制(在终端模拟器中运行时可完全工作,这些模拟器提供剪贴板访问并具有高级键盘协议)。

模式
(UI后端)
TTY
(纯far2l)
TTY|XTTY|XiGUI
工作环境:终端终端终端桌面环境
(X11
或Wayland
或macOS)
二进制文件:far2lfar2l
far2l_ttyx.broker
far2l
far2l_ttyx.broker
far2l
far2l_gui.so
依赖项最小+ libx11+ libx11, libxi+ wxWidgets, GTK
键盘:典型终端
仅基本
按键组合


KiTTY(putty分支),
kitty(*nix版),
iTerm2
Windows Terminal
far2l的VT:完全支持
典型终端
仅基本
按键组合


KiTTY(putty分支),
kitty(*nix版),
iTerm2
Windows Terminal
far2l的VT:完全支持
典型终端
x11下大多数
按键组合

Wayland下
仅基本按键组合


KiTTY(putty分支),
kitty(*nix版),
iTerm2
Windows Terminal
far2l的VT:完全支持
所有
按键组合
剪贴板
访问:
典型终端
通过命令行
工具如xclip

kitty(*nix版),
iTerm2
通过OSC52

Windows Terminal
通过OSC52
WSL下的
命令行工具


KiTTY(putty分支),
far2l的VT:
通过far2l扩展
典型终端
kitty(*nix版):
通过x11交互

iTerm2
通过OSC52

Windows Terminal
通过OSC52
WSL下的
命令行工具


KiTTY(putty分支),
far2l的VT:
通过far2l扩展
典型终端
kitty(*nix版):
通过x11交互

iTerm2
通过OSC52

Windows Terminal
通过OSC52
WSL下的
命令行工具


KiTTY(putty分支),
far2l的VT:
通过far2l扩展
通过
wxWidgets API

通过WSL下的
命令行工具
典型
使用场景:
服务器
嵌入式
在喜欢的终端中
运行far2l
但具有
更好的用户体验
在喜欢的终端中
运行far2l
但具有
最佳用户体验
桌面
是否必需:
_关于在TTY/TTYX中使用OSC 52的注意事项_:
要与系统剪贴板交互,你必须记得在FAR2L设置和终端设置中启用OSC 52
FAR2L设置中(选项->界面设置->使用OSC52设置剪贴板数据
该选项仅在far2l以TTY/TTYX模式运行且其他剪贴板访问选项不可用时显示;
你可以运行far2l --tty --nodetect来强制不使用其他剪贴板选项),
以及在终端设置中必须允许OSC 52选项(出于安全考虑,某些终端默认禁用OSC 52;
许多终端中的OSC 52仅实现了复制模式,从终端粘贴则通过括号粘贴模式进行)。

安装、运行

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

apt-get install far2l

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

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

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

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 中更改)

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

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

有用的第三方扩展

社区软件包和二进制文件

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

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

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

测试

已知问题:

  • 仅英语、俄语、乌克兰语和白俄罗斯语(仅界面)的翻译是有效的,所有其他语言都需要深度校正。
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号