@realfxw: 谁说终端文件管理器只能靠全键盘死磕?今天在 GitHub 发现了一个非常惊艳的开源项目:tfm-tui —— 一款主打以鼠标交互为核心(Mouse-First)的现代终端文件管理器。 它不仅保留了终端轻量、高效的特性,还把现代 GUI 文…
摘要
介绍开源项目tfm-tui,一款以鼠标交互为核心的现代终端文件管理器,结合了终端的高效性和图形界面的直观操作。
查看缓存全文
缓存时间: 2026/09/19 19:10
谁说终端文件管理器只能靠全键盘死磕?今天在 GitHub 发现了一个非常惊艳的开源项目:tfm-tui —— 一款主打以鼠标交互为核心(Mouse-First)的现代终端文件管理器。
它不仅保留了终端轻量、高效的特性,还把现代 GUI 文件管理器的流畅体验直接搬进了终端:
现代化鼠标操作:支持鼠标框选(Rubber-band)、右键上下文菜单、行内快速重命名,甚至支持文件拖拽!在 Kitty 终端下还能实现跨应用直接拖拽文件。
双窗格与多标签:类似 Total Commander / Midnight Commander 的双窗格布局,两侧独立路径、搜索与标签页,按 Tab 切换焦点,F5 / F6 直接在窗格间复制或移动。
多媒体与平滑动画:借助 Kitty Graphics Protocol 实现真彩色图片与视频缩略图,边栏、预览和内置终端还带有平滑的边缘自动隐藏与滑入滑出动画。
网络位置与内置终端:集成 gvfs,直接在边栏连接 SFTP、SMB、WebDAV 或 FTP;随时右键在当前目录呼出内置终端。
TypeScript 插件系统:支持热重载、自定义快捷键、上下文菜单、事件拦截以及向状态栏/边栏渲染自定义 OpenTUI 组件。
项目基于 TypeScript + Bun 构建,目前支持 Linux 系统,正处于 Beta 阶段。
一键安装命令:
Bash curl -fsSL https://raw.githubusercontent.com/clarkarch/tfm-tui/main/install.sh… | bash
如果你平时在 Linux 终端中工作,又怀念现代 GUI 文件管理器的直观拖拽与多媒体预览,非常推荐去体验一下这个项目: https://github.com/clarkarch/tfm-tui…
Source: https://raw.githubusercontent.com/clarkarch/tfm-tui/main/install.sh #!/usr/bin/env bash # tfm installer: downloads a prebuilt binary for your arch. # usage: curl -fsSL https://raw.githubusercontent.com/clarkarch/tfm-tui/main/install.sh | bash # env: TFM_INSTALL_DIR (default ~/.local/bin), TFM_VERSION (default latest), # TFM_NO_VERIFY=1 to skip checksum verification (not recommended). set -euo pipefail REPO=“clarkarch/tfm-tui” DEST=“\{TFM\_INSTALL\_DIR:\-HOME/.local/bin}” VERSION=“\{TFM\_VERSION:\-latest\}" case "(uname -m)” in x86_64) ARCH=“x86_64-linux” ;; aarch64 | arm64) ARCH=“aarch64-linux” ;; *) echo “tfm install: unsupported arch: \(uname \-m\)" \>&2; exit 1 ;; esac mkdir \-p "DEST” TMP=“\(mktemp \-d\)" trap 'rm \-rf "TMP”’ EXIT if [ “VERSION" = "latest" \]; then BASE="https://github\.com/REPO/releases/latest/download” else BASE=“https://github.com/REPO/releases/download/VERSION” fi echo “tfm: downloading ARCH \(VERSION)...” curl -fsSL --retry 3 --proto ‘=https’ “BASE/tfm\-ARCH.gz” -o “TMP/tfm\.gz" \# checksum: fail closed when the release ships one, fail open \(with a loud \# warning\) only when the artifact has no published checksum at all\. \# NOTE: compare digests directly, never \`sha256sum \-c\`: the published sidecar \# embeds the release filename \(tfm\-\.gz\) while we save as tfm\.gz, so \-c \# looks for a file that isn't there and fails every install\. if curl \-fsSL \-\-retry 3 \-\-proto '=https' "BASE/tfm-ARCH\.gz\.sha256" \-o "TMP/tfm.gz.sha256” 2>/dev/null; then want=\(cut \-d' ' \-f1 < "TMP/tfm.gz.sha256“) got=\(sha256sum < "TMP/tfm.gz“ | cut -d’ ’ -f1) [ -n “want" \] && \[ "want” = “$got” ] \ || { echo “tfm install: CHECKSUM MISMATCH, refusing to install TMP/tfm\.gz" \>&2; exit 1; \} echo "tfm: checksum verified" elif \[ "{TFM_NO_VERIFY:-}” = “1” ]; then echo “tfm: WARNING: no checksum published, installing unverified (TFM_NO_VERIFY=1)” >&2 else echo “tfm install: no checksum published for tfm-ARCH\.gz — refusing to install\." \>&2 echo " Re\-run with TFM\_NO\_VERIFY=1 to override, or pin TFM\_VERSION to a release with checksums\." \>&2 exit 1 fi gunzip \-f "TMP/tfm.gz” chmod +x “TMP/tfm" \# never silently clobber: keep one backup of the previous binary if \[ \-e "DEST/tfm” ]; then mv -f “DEST/tfm" "DEST/tfm.bak” echo “tfm: previous binary backed up to DEST/tfm\.bak" fi mv "TMP/tfm” “DEST/tfm" ln \-sf "DEST/tfm” “$DEST/terminal-file-manager” echo “tfm: installed -> $DEST/tfm (run it via \“tfm\” or \“terminal-file-manager\”)“ # make sure ‘tfm’ resolves — but only with explicit user consent (asked on the # tty, since stdin belongs to the curl|bash pipe). No tty = just print instructions. # Note: we only ever touch the user’s own rc file — never /usr/local/bin. if ! command -v tfm >/dev/null 2>&1; then if ! { true /dev/null; then echo “tfm: note: DEST is not in your PATH — run: export PATH=\\"DEST:\PATH\\"" else printf "tfm: add %s to PATH automatically? \[Y/n\] " "DEST” DECLINE=“tfm: ok — later: export PATH=\”DEST:\\PATH\“” if ! IFS= read -r REPLY > “$RCFILE” echo “tfm: PATH entry added to $RCFILE — open a new shell or run: source RCFILE" fi fi fi fi \# tfm degrades gracefully without these, but each one disables something have\(\) \{ command \-v "1” >/dev/null 2>&1; } MISSING=“” add_missing() { MISSING=“${MISSING} - 1\\\\n"; \} have rsvg\-convert \|\| add\_missing "rsvg\-convert — theme\-tinted icons and SVG thumbnails" have magick \|\| add\_missing "magick — raster image thumbnails \(fallback\)" have ffmpeg \|\| add\_missing "ffmpeg — video thumbnails & previews" have gio \|\| add\_missing "gio — starred\-file metadata \(trash itself needs no gio\)" have xdg\-open \|\| add\_missing "xdg\-open — opens files in their default app \(required\)" have udisksctl \|\| add\_missing "udisksctl — mount/eject removable drives" if \! have wl\-paste && \! have wl\-copy && \! have xclip; then add\_missing "wl\-paste/wl\-copy or xclip — copy/paste between tfm and GUI apps" fi if \[ \-n "MISSING” ]; then RED=“”; RST=“” [ -t 1 ] && { RED='\\033\[31m'; RST=‘\033[0m’; } printf ‘%s\n’ “\{RED\}tfm: missing helpers — install these for full functionality:{RST}” printf ‘%s%b%s’ “RED" "MISSING” “$RST” fi
相似文章
@LuBtc888: 说真的,多终端管理tmux我现在基本不碰了。 http://herdr.dev 和 http://muxy.app 这俩工具一用,直接把tmux那套繁琐配置踢出局。 不用记复杂快捷键,不用折腾配置文件,开箱即用,懒人福音。 效率工具这东西…
介绍 Herdr 和 Muxy 两款终端多窗口管理工具,Herdr 是一款基于 Rust 的终端原生代理运行时,支持持久化、鼠标操作和代理状态管理,可替代 tmux。
@VincentLogic: 发现个字节开源的桌面 AI 神器! UI-TARS Desktop,31k stars 不是吹的,这玩意儿真能看懂你的屏幕,然后帮你自动操作电脑。 你告诉它"帮我把 VS Code 的自动保存打开,延迟改成 500 毫秒",它就自己: -…
字节跳动开源的桌面 AI 自动化工具 UI-TARS Desktop 支持本地运行与屏幕视觉理解,可通过自然语言指令自主操控电脑完成日常任务。
@GitTrend0x: 100% 本地桌面AI Agent 杀手级开源神器 https://github.com/bytedance/UI-TARS-desktop… 这就是 UI-TARS-desktop,字节跳动开源的 31k 星爆款多模态桌面自动化代理! …
UI-TARS-desktop is a highly popular open-source tool by ByteDance that enables 100% local multimodal desktop automation, allowing users to control apps and browsers via natural language without cloud data leaks.
@vintcessun: 午间看到一个解决下载目录乱象的工具,有点离谱——用Rust+Tauri写了个系统托盘文件整理器,内存占用才5MB,还刚补上Linux支持。核心是文件监控加规则引擎,按扩展名或正则自动分类,SQLite记操作历史可一键撤销。隐私方面零上报,…
介绍了一个开源的桌面文件整理工具Mouzi,基于Rust和Tauri构建,内存占用仅5MB,支持文件监控和规则引擎自动分类,强调隐私零上报。
@billtheinvestor: 字节跳动开源 UI-TARS Desktop (3.6k)。核心逻辑:100%本地运行、仅看像素、不调API。对比OpenAI/Anthropic云端模式,解决两大痛点:1. 数据隐私(不出机器);2. 零成本延迟(免API费)。构建私密…
字节跳动开源 UI-TARS Desktop,一款100%本地运行、仅基于像素操作且不调用API的桌面自动化工具,解决数据隐私和API费用两大痛点,为构建私密自动化工作流提供了高效开源方案。