有没有办法以编程方式为给定文件打开“打开方式”对话框?我的意思是右键单击Nautilus中的文件并选择“打开方式”时得到的对话框。
我最好寻找一个简单的shell命令来使用,但API或DBUS接口也可以使用。我在这台PC上坚持使用GNOME 2.28.2,但也对最近的GNOME解决方案感兴趣。也许甚至有一个针对多个Linux桌面的标准化解决方案(类似xdg-open-as
)?
我尝试了gnome-open
和xdg-open
,但两者都使用了标准关联,并且不让我选择应用程序。
答案 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);