@realfxw: 谁说终端文件管理器只能靠全键盘死磕?今天在 GitHub 发现了一个非常惊艳的开源项目:tfm-tui —— 一款主打以鼠标交互为核心(Mouse-First)的现代终端文件管理器。 它不仅保留了终端轻量、高效的特性,还把现代 GUI 文…

X AI KOLs Timeline 工具

摘要

介绍开源项目tfm-tui,一款以鼠标交互为核心的现代终端文件管理器,结合了终端的高效性和图形界面的直观操作。

谁说终端文件管理器只能靠全键盘死磕?今天在 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…
查看原文
查看缓存全文

缓存时间: 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

相似文章

@vintcessun: 午间看到一个解决下载目录乱象的工具,有点离谱——用Rust+Tauri写了个系统托盘文件整理器,内存占用才5MB,还刚补上Linux支持。核心是文件监控加规则引擎,按扩展名或正则自动分类,SQLite记操作历史可一键撤销。隐私方面零上报,…

X AI KOLs Timeline

介绍了一个开源的桌面文件整理工具Mouzi,基于Rust和Tauri构建,内存占用仅5MB,支持文件监控和规则引擎自动分类,强调隐私零上报。

@billtheinvestor: 字节跳动开源 UI-TARS Desktop (3.6k)。核心逻辑:100%本地运行、仅看像素、不调API。对比OpenAI/Anthropic云端模式,解决两大痛点:1. 数据隐私(不出机器);2. 零成本延迟(免API费)。构建私密…

X AI KOLs Following

字节跳动开源 UI-TARS Desktop,一款100%本地运行、仅基于像素操作且不调用API的桌面自动化工具,解决数据隐私和API费用两大痛点,为构建私密自动化工作流提供了高效开源方案。