Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

176 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

File Manager

一个认真对待文件操作的 Linux 文件管理器

用 Rust 编写,围绕多栏浏览、后台任务、索引搜索与内容预览构建。

主要在 Wayland 环境下开发和测试。

Releases · AUR · Issues · Pull Requests · License

功能亮点

  • 多栏浏览,也保留熟悉的列表视图。 沿目录层级逐栏展开,或切换到更适合扫描和排序的列表视图。标签页与分屏面板可以同时处理多个位置。
  • 搜索范围由你决定。 可以递归搜索当前目录、Home 或所有已索引位置,也可以在设置中加入自定义索引目录。后台服务不可用时,当前目录搜索仍会回退到本地扫描。
  • 先看一眼,不必每次都打开应用。 可预览文本、Markdown、目录树、压缩包、PDF、Office 文档、图片(含 AVIF)、音频和视频。部分格式需要安装可选依赖。
  • 融入 Linux 桌面,而不是另起一套。 支持 GTK 书签、UDisks2 存储设备、SMB / WebDAV / SFTP 网络位置、桌面主题、默认应用与终端调用。
  • 常用细节可以自己定。 隐藏文件、启动位置、会话恢复、语言、终端、GPU 偏好、文件校验和快捷键都可以在设置中调整。属性窗口支持目录统计和权限修改。

此外还支持回收站、批量重命名、压缩与解压、拖放,以及多目标文件属性等日常操作。

安装

Arch Linux(AUR)

推荐直接安装预编译包 [file-manager-bin](https://aur.archlinux.org/packages/file-manager-bin)

paru -S file-manager-bin

其他发行版可以先查看 Releases。如果预编译包无法运行,请按下文从源码构建。

启用索引搜索

发行包会安装 file-manager-search.service。启用后,搜索服务会在后台维护 Home 和自定义位置的索引:

systemctl --user enable --now file-manager-search.service

查看状态和日志:

systemctl --user status file-manager-search.service
journalctl --user -u file-manager-search.service -f

使用

安装后的命令名是 file-manager

file-manager
命令 行为
file-manager 按设置中的 Home、自定义目录或上次会话策略启动
file-manager . 打开当前目录
file-manager ~/Downloads ~/Documents 按顺序在同一窗格中打开多个标签
file-manager report.pdf notes.txt 打开文件所在目录并选中对应文件

应用已经运行时,再次执行命令会复用现有实例:不带路径时聚焦主窗口,带路径时复用已有标签并补充缺失目录,不会清空其他标签或分栏。

路径可以是绝对路径,也可以相对当前终端目录。当前 CLI 只接受本地文件系统路径,不接受 URI;如果任一路径无效,整次启动都会被拒绝。

查看帮助和版本:

file-manager --help
file-manager --version

从源码构建

下面以 Arch Linux 为例。先安装 Rust 工具链、构建依赖和核心运行命令:

sudo pacman -S --needed base-devel git rust cargo pkgconf \
  acl alsa-lib dav1d fontconfig glib2 libnotify libxkbcommon wayland wl-clipboard xdg-utils

克隆仓库并运行:

git clone https://github.com/nsjsv/File_Manager.git
cd File_Manager
cargo run --locked -p app-ui

构建 release 版 App 和搜索 daemon:

cargo build --release --locked -p app-ui -p file-search
./target/release/app-ui

源码构建的 App 二进制名为 app-ui,搜索 daemon 为 file-searchd。这些命令不会安装 systemd user unit 或品牌 D-Bus service;如果系统中没有兼容的搜索服务,索引搜索不可用,但当前目录搜索仍可回退到本地扫描。

可选预览、压缩包与桌面集成依赖

sudo pacman -S --needed 7zip ffmpeg ffmpegthumbnailer libreoffice-fresh poppler \
  gvfs gvfs-afc gvfs-gphoto2 gvfs-mtp gvfs-smb libsecret udisks2
能力 依赖
视频预览与元数据 ffmpeg;视频缩略图可使用 ffmpegthumbnailer
PDF 预览 Poppler(pdfinfopdftoppm
Office 文档预览 LibreOffice 与 Poppler
.7z 创建,以及 .7z / .rar 预览和解压 7z7zz7za(Arch 包名为 7zip
SFTP、WebDAV gvfs
SMB gvfs-smb
Android / MTP 设备 gvfs-mtp
数码相机 gvfs-gphoto2
Apple / AFC 设备 gvfs-afc
保存网络密码 libsecret 提供的 secret-tool
存储设备发现、挂载与安全移除 udisks2

缺少可选依赖时,只会影响对应能力。AVIF 由内置图片解码器支持,构建和运行时使用 dav1d

平台说明

目前主要支持 Linux / Wayland。其他发行版如果无法使用预编译包,建议从源码构建。

Windows、macOS 和 X11 不保证可用。

D-Bus 与其他文件管理器共存

运行中的应用会以 DoNotQueue 尝试提供标准 org.freedesktop.FileManager1 接口。如果 Nautilus、Dolphin、Thunar 等文件管理器已经占用标准名称,本应用不会替换它,也不会排队抢占;品牌单实例端点和普通 GUI 仍可正常使用。

发行包不会安装另一个声明标准名称的 D-Bus service 文件。

参与项目

如果某个操作不符合你的习惯,或在特定发行版、桌面环境中无法工作,欢迎提交 Issue。提供复现步骤、预期结果、实际结果和相关日志,会让问题更容易定位。

代码改动可以通过 Pull Request 提交。

AI 辅助提交说明

如果 PR 中的代码主要由 AI 生成,或经过 AI 大量辅助修改,请在标题中加上 [AI]

[AI] 修复文件搜索刷新问题

只用 AI 做少量解释、资料查询或辅助排查时,不需要添加该标识。

许可证

本项目采用 GPL-3.0-or-later 许可证。

致谢

感谢 LinuxDo 社区的交流与反馈。

About

File_Manager——Rust实现的原生linux文件管理器

Resources

Stars

7 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages