如何让自定义桌面文件成为某些文件的默认程序

如何让自定义桌面文件成为某些文件的默认程序

我写过vlc 的 python 包装器它充当 appindicator,监控 vlc 的按键并加载文件夹中的下一个/上一个文件。我有从 nautilus 脚本运行的脚本。现在我需要这个脚本成为视频文件的默认打开程序。我该如何实现这一点?
我已经制作了一个 .desktop 文件并将其放入
~/.local/share/applications

这是桌面文件的内容。

[Desktop Entry]
Name=vlcwrapy-nix
Icon=vlc
Type=Application
Exec=/home/thekindlyone/projects/vlcwrapy-nix/vlcwrapy-nix.py

桌面文件完美显示在 Dash 上。
但是在open with文件的 nautilus 上下文菜单中,vlcwrapy-nix 没有显示。
请帮忙。PS
:我需要我的脚本获取双击的文件的名称作为参数..并且工作目录是双击文件所在的目录(就像 nautilus-scripts 的行为一样)

答案1

好的,解决了!问题出在桌面文件上。在 exec 行中,我必须为 nautilus 添加 %f 才能在打开菜单中显示它。

Exec=/home/thekindlyone/projects/vlcwrapy-nix/vlcwrapy-nix.py %f

这里这是一个视频演示,如果有人感兴趣的话。

答案2

我不确定是否要让 Nautilus 更改其默认的打开程序(在 Thunar 上,它位于右键单击菜单中,使用其他程序打开,更改默认值,但这在这里没有什么帮助)...

我在 中有一堆 .desktop 文件/usr/share/applications/,尝试将您的 .desktop 文件复制到那里吗?或者~/.local/share/applications/

我家里还有一个文件~/.local/share/applications/defaults.list,里面有很多这样的清单:

[Default Applications]
audio/mpeg=vlc.desktop
video/x-theora+ogg=vlc.desktop
application/pdf=evince.desktop

将自定义 .desktop 文件放到正确的位置后,编辑此 defaults.list 文件以使用新的 .desktop 可能是可行的方法。


或者您可以将/usr/bin/vlc文件更改为脚本(或指向脚本的链接)而不是真正的 vlc?然后,您可能必须更改脚本以运行新的“真正的”vlc(/usr/bin/vlc-real例如,重命名为)。然后,任何时候尝试运行 vlc,它们都会运行您的自定义脚本。

答案3

我使用 ubuntu tweak 来编辑文件关联:

sudo add-apt-repository ppa:tualatrix/ppa

sudo apt-get update

sudo apt-get install ubuntu-tweak

请让我知道这对你有没有用。

相关内容