0

有没有办法以编程方式为给定文件打开“打开方式”对话框?我的意思是当您在 Nautilus 中右键单击文件并选择“打开方式”时出现的对话框。

我最好寻找一个简单的 shell 命令来使用,但 API 或 DBUS 接口也可以工作。我在这台 PC 上坚持使用 GNOME 2.28.2,但也对最近的 GNOME 的解决方案感兴趣。也许甚至有针对多个 Linux-ish 桌面的标准化解决方案(类似于xdg-open-as)?

我试过gnome-openand xdg-open,但都只使用标准关联,不让我选择应用程序。

4

2 回答 2

0

我也找不到这样的命令行工具,所以我做了一个。令人惊讶的是它真的微不足道。

https://github.com/timgott/gtk-open-with

如果您想在 Gtk 中以编程方式执行此操作,则只需要几行代码(使用 C++ 绑定的示例):

auto dialog = Gtk::AppChooserDialog(file);
int response = dialog.run();
if (response == Gtk::RESPONSE_OK)
    dialog.get_app_info()->launch(file);
于 2021-07-06T17:35:41.200 回答
0

我不确定我是否理解你的问题。

如果您希望特定应用程序出现在“打开方式”菜单中,则必须使用 注册该应用程序的 MIME 类型xdg-mime,然后 Nautilus 将显示它。

如果您想要一个类似于“打开方式”的菜单,只为特定文件打开,那么您应该编写一个 Nautilus 扩展(例如,在 Python 或 C 中)。在扩展程序的代码中,您可以检查 MIME 类型、是否选择多个等内容。Nautilus 提供对该信息的访问。请参阅如何创建 nautilus C 扩展

如果您的意思不同,请改写您的问题:-)

于 2016-02-09T19:43:16.807 回答