文件管理器dophin

选型结论

  • Dolphin 属单窗格 GUI那一档:视图文字只跟全局字体,Ctrl+滚轮只缩放图标(上游设计,Nix 层没有开关),称不上更专业。
  • 真正技术专业的两类:GUI 双窗格(Krusader / Double Commander / far2l / muCommander / Worker / Xfe)与 TUI(yazi / vifm / nnn / mc / ranger / lf / joshuto / xplr / clifm / broot / superfile / walk)。
  • 已做成模块:/etc/nixos/modules/desktop/explorer/ 26 个自包含文件,import 即启用、任意组合可同时开。

Dolphin 的具体短板(实测)

  • 三个视图模式各有一份配置,键为 UseSystemFont / ViewFont / IconSize(实测其包内 kcfg)→ 只能「定死一个字体」,没有「滚轮缩放文字」这类开关。
  • 缩放动作(zoomLevel)只作用于图标大小。
  • Plasma 6 里 Ctrl+滚轮根本绑不了其它动作:实测 KCM 列表无鼠标手势模块,KWin 快捷键也不接受「修饰键+滚轮」。
  • 替代做法(都已落地):① dolphinrc 里 UseSystemFont=false + ViewFont 给列表定字号;② 全局字体缩放脚本 ~/.local/bin/kde-font-zoom up|down|reset(实测即时生效:10pt→13pt 截图对比 17.9% 像素变化)。
  • 顺带修的系统层问题:X11 下「显示缩放」滑块对原生 Qt 应用无效(Wayland 专属);Qt 字体 DPI 实际来自 XSETTINGS 的 Xft/DPI,而本机 xsettingsd 配置里缺该项 → 已补 Xft/DPI 122880(=120dpi;备份在 ~/.hermes/cache/scratch/xsettingsd.conf.bak-*)。

候选对比(nixpkgs 26.05 实测求值)

GUI 双窗格 / 专业向

包版本技术特性
krusader2.9.0root 模式、目录同步、传输队列、内建归档、批量重命名、校验和、挂载管理;有 zoom_in / zoom_out 动作
doublecmd1.2.4Total Commander 克隆:插件(WCX/WDX/WFX)、FTP/SFTP、队列、校验和
far2l2.7.0Far Manager 移植:插件/宏,可独立 GUI 也可跑 TTY
mucommander1.5.2Java 双窗格,多协议(FTP/SFTP/S3/HDFS)
worker5.2.2老牌双窗格 + 可编程按钮栏
xfe2.1.6极轻双窗格,无重依赖

GUI 单窗格(与 Dolphin 同一路数)

包版本定位
dolphinkdePackages.dolphin 26.04.3KDE 默认;Plasma 自带
nemo6.6.4Cinnamon;插件与可配置度高
caja1.28.0MATE;保留传统菜单/工具栏
thunar4.20.9XFCE;内建批量重命名 + 自定义动作
nautilus50.3.1GNOME Files;搜索与远程(gvfs)强
pcmanfm1.4.0GTK2 轻量
pcmanfm-qt2.4.0LXQt 轻量
fff2.2纯 bash 终端 FM,零依赖

TUI(字体归终端管)

包版本要点
yazi26.5.6Rust 异步;预览与插件强,现代首选
mc4.8.33经典双窗格;VFS 能直接进 tar/zip/ftp
ranger1.9.4三栏 + rifle 打开规则
nnn5.2极快;插件体系;会话与磁盘用量
lf41Go 单二进制;keymap/命令可脚本化
vifm0.14.3完整 vim 式键位与命令,配置能力最强
joshuto0.9.9Rust,ranger 风格
xplr1.1.0极简核心 + Lua 插件,可组合
clifm1.27.1无全屏 UI,纯命令行交互
broot1.56.4树形浏览 + 模糊搜索;偏「找」不偏「管」
superfile1.3.3现代 TUI 双窗格,界面友好
walk1.13.0轻量终端导航器

不在 nixpkgs:spacefm(已移除)、konqueror(已移除)、sunflower、gentoo(FM)、emelfm2、doublecmd-qt。

模块化配置:modules/desktop/explorer(26 个文件)

  • 每个文件自包含(包 + 必要系统开关 + 头注释),不引用其它 nix 文件;import 那一行就是开关。
  • 可任意组合同时 import;GTK 类文件(nemo / caja / thunar / nautilus / pcmanfm)各自以 lib.mkDefault 打开 services.gvfs(回收站/远程)与 programs.dconf(设置持久化),多文件同开也不冲突。
  • 属性路径坑:dolphin/konsole 在 kdePackages.*(pkgs.dolphin 不存在);krusader 在顶层。

验证证据(eval,未 rebuild)

检查结果
26 个文件语法全部 parse OK
26 个同时 import26 个包全进 systemPackages,缺失 0,零选项冲突;gvfs / dconf 为 on
单独注释掉某行对应包从 systemPackages 消失(开关语义成立)

启用方式

# configuration.nix 的 imports 里取消对应行注释(已按 GUI / TUI 分组注释),然后:
rebuild "explorer modules"

待实测

  • Krusader 的 zoom_in / zoom_out 是否连带缩放面板字体(它有独立的图标大小设置)。
  • Double Commander 的面板字体键(默认配置首次运行才生成,包内查不到)。
  • Konsole 的 Ctrl+滚轮是否缩放字体(尚未实测;已知菜单/快捷键缩放存在)——TUI 文件管理器的字号快慢就取决于这条。
  • TUI 图标字形需 Nerd Font,否则 nnn / lf / yazi 的图标显示为方块。

提权:以管理员身份操作 root 文件(kio-admin)

Dolphin 自己没有提权能力:它对 root 拥有的文件做删除/改名时,操作用当前用户身份执行 —— 而「删除」要求的是所在目录的写权限,所以会报「无法删除:您没有从此文件夹中删除项目的权限」。真正提供提权的是 KDE 的 admin:// KIO 后端,也就是 kio-admin:装上后 Dolphin 右键多出「以管理员身份操作 / Open as Administrator」,经 polkit 授权后就能在同一个窗口里临时读写 root 文件。

本机装法(已落地)

  • 模块:/etc/nixos/modules/system/service/kio-admin.nix → environment.systemPackages = [ pkgs.kdePackages.kio-admin ];(自包含、只装包;configuration.nix 的 imports 放开那一行即启用)。
  • 归类:它是 KDE/KIO 框架级能力(不只 Dolphin —— Kate 等任何 KIO 应用都能用 admin://),所以放 system/service/,不放 explorer/(explorer/ 是文件管理器本体)。
  • 版本:跟随 nixpkgs 的 kdePackages、不钉版 —— 要与桌面版本一致(本机 kio-admin-26.04.3 与 Plasma 26.04.3 同版)。
  • 前置:polkit 认证代理要在跑(本机 plasma-polkit-agent 已随桌面启动),否则授权弹窗不会出现。

怎么用

  • Dolphin 里右键目标 →「以管理员身份操作」;或地址栏直接访问 admin:///路径。
  • polkit 弹窗授权后即可在该窗口里新建/改名/删除/编辑 root 文件。
  • 「临时」的含义:授权是一次性的(不写 sudoers、不常驻 root 会话);关掉该窗口/会话就回到普通权限,下次再操作会重新弹授权。

验证证据(本机)

检查结果
包kio-admin-26.04.3(在 /nix/store,已随 rebuild 进当前系统)
polkit 动作/run/current-system/sw/share/polkit-1/actions/org.kde.kio.admin.policy(在)
D-Bus 系统服务定义/run/current-system/sw/share/dbus-1/system.d/org.kde.kio.admin.conf(在)
KIO 服务菜单 / 元信息…/share/kio/servicemenus/、…/share/metainfo/org.kde.kio.admin.metainfo.xml
模块与启用/etc/nixos/modules/system/service/kio-admin.nix(configuration.nix 的 imports 里放开)

与命令行/agent 的关系(别混)

  • kio-admin 只服务桌面里 KIO 应用的交互操作;命令行/agent 提权走另一条路(本机是 /run/wrappers/bin/sudo -n,wheel 免密)。
  • 命令行里 sw/bin/sudo 是非 setuid 壳、会直接报错;要 root 就用 wrappers 里那个。

待实测

  • 在 admin:// 会话里编辑并保存 NixOS 配置文件(如 /etc/nixos/…)是否顺畅,以及改完是否记得 rebuild 才生效。
  • 关窗后是否立刻回落为普通权限(再操作应重新弹 polkit)。

相关

  • skill:nixos-per-app-modules(模板与已核实事实表)
  • 同层笔记:「浏览器选择」