显示GNOME“打开方式”对话框

时间:2016-01-06 13:04:55

标签: gnome nautilus xdgutils

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

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

我尝试了gnome-openxdg-open,但两者都使用了标准关联,并且不让我选择应用程序。

2 个答案:

答案 0 :(得分:0)

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

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

如果您想要一个类似于“打开方式”的菜单,该菜单仅针对特定文件打开,那么您应该编写Nautilus扩展(例如,在Python或C中)。在扩展程序的代码中,您可以检查诸如MIME类型之类的内容,如果选择是多个,等等.Nautilus提供对该信息的访问。见How to create nautilus C extensions

如果您的意思不同,请重新提出您的问题: - )

答案 1 :(得分:0)

我也找不到这样的命令行工具,所以我做了一个。令人惊讶的是,这真的很简单。

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

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

let contract = new web3.eth.Contract(myPack.abi, myPack.ca);

// mind the `arrDate` and `arrCategory` instead of `param1` and `param2`
contract.methods.createTicket(arrDate, arrCategory)
    .estimateGas({from: accounts[0]})
    .then(console.log);