#mime #handler #applications #desktop-applications #default #list #extension

app handlr

轻松管理mimeapps.list和默认应用程序

17个不稳定版本 (4个重大变更)

0.6.4 2021年4月30日
0.6.3 2021年4月25日
0.5.0 2020年12月19日
0.4.5 2020年6月21日
0.2.1 2020年5月18日

#344 in 操作系统

MIT许可证

39KB
942


handlr

使用handlr轻松管理您的默认应用程序!

特性

  • 通过扩展名或MIME类型设置默认处理器
  • 基于扩展名和内容智能检测文件MIME类型
  • 一次打开多个文件
  • 为MIME/扩展名设置多个处理器,并使用rofi/dmenu选择一个
  • 支持通配符,如text/*
  • 自动从mimeapps.list中删除无效/错误的.desktop条目
  • 辅助命令如launchget --json满足您的脚本需求
  • 非常快(用Rust编写)
  • 单个编译的二进制文件,无依赖项

用法

# Open a file/URL
handlr open ~/.dotfiles/pacman/packages.txt
handlr open https://google.ca

# Set default handler for png files
handlr set .png feh.desktop

# Set wildcard handler for all text files
handlr set 'text/*' nvim.desktop

# Set default handler based on mime
handlr set application/pdf evince.desktop

# List default apps
handlr list

# Get the handler for a mime/extension
$ handlr get .png
feh.desktop

# Launch a handler with given path/URL
handlr launch x-scheme-handler/https -- https://google.ca

xdg-utils相比

  • 可以一次性打开多个文件/URL
  • 可以有多个处理器,并使用rofi/dmenu在运行时选择一个
  • 使用简单的命令如getsetlist更容易使用
  • 可以操作扩展名,无需查找或记住MIME类型
    • 适用于设置png/docx等文件的处理器等常见任务
  • 出色的自动完成(目前仅为fish),包括MIME、扩展名和.desktop文件
  • 可选JSON输出以满足脚本需求
  • 正确支持Terminal=true条目

设置默认终端

不幸的是,没有XDG规范,因此没有标准化的方式让handlr获取您的默认终端模拟器以运行Terminal=true桌面条目。几年前曾有人提出使用x-scheme-handler/terminal来解决这个问题。在我看来,这是相对较好的选择,比处理N+1个发行版的怪癖或使用特定于handlr的配置选项要好。

现在如果存在 x-方案-处理器/终端handlr 将会使用它。

否则,handlr 将会

  1. 查找具有 TerminalEmulator 类别的应用
  2. 将其设置为 x-方案-处理器/终端 的默认值
  3. 发送通知让您知道它猜测了您的终端,并提供必要的更改说明

优点在于,Terminal=true 条目现在可以在交互式终端之外工作,与 xdg-utils 不同。

设置多个处理器

  1. 打开 ~/.config/handlr/handlr.toml 并设置 enable_selector = true。可选地,您还可以调整 selector 以使用您的选择器命令(例如,rofi 或 dmenu)。

  2. 使用 handlr add 添加第二个/第三个/任何处理器,例如

handlr add x-scheme-handler/https firefox-developer-edition.desktop
  1. 现在在这个例子中,当您打开一个 URL 时,您将被提示选择所需的应用程序。

截图

安装

Arch Linux

yay -S handlr-bin

可选地,您还可以安装 xdg-utils-handlr 来替换 xdg-open

yay -S xdg-utils-handlr

Rust/Cargo

cargo install handlr

二进制文件

  1. 下载最新的 发布二进制文件 并将其放在 $PATH 中的某个位置
  2. 下载补全
curl https://raw.githubusercontent.com/chmln/handlr/master/completions/handlr.fish --create-dirs -o ~/.config/fish/completions/handlr.fish

归因于

图标由 Eucalyp www.flaticon.com 制作

封面照片由 creativebloq.com 提供

依赖关系

~7–11MB
~209K SLoC