我希望 xdg-open 命令使用与我在默认文件管理器中双击文件时打开的应用程序相同的应用程序,但这并不总是正确的。
例如,我的 DE 是 XFCE,我的文件管理器是 Thunar,我的默认图片查看器是 Ristretto。但是,xdg-open example.png在 Pinta 中打开示例 PNG 文件。为什么?
根据手册页,xdg-open将使用用户配置的应用程序打开一个文件。但是,该应用程序实际上是如何确定的?我看不到与 关联的配置文件xdg-utils,那么我的设置存储在哪里以及如何修改它们?看到一个简单的 PNG 文件如何使用 Wine 打开 Internet Explorer,我需要更改这些设置。
我想为我自己的自定义 URL 协议注册一个 URL 方案(或协议)处理程序,以便单击具有此自定义协议的链接将在该 URL 上执行命令。我需要采取哪些步骤来添加这个处理程序?
示例:我想ddg://query%20terms在新的 DuckDuckGo 浏览器搜索中打开 URL 。如果此协议已经存在,我假设覆盖处理程序的步骤与创建新处理程序的步骤没有太大区别。是的,从技术上讲,这只是一个 URL 方案,而不是一个协议。
是否可以在 xdg-open 中使用终端 vim?
我没有 GUI 文本编辑器,因为我只通过终端使用 vim。(我也不太关心 gvim。)是否可以告诉 xdg-open 打开一个终端,然后用选定的文件打开 vim?
谢谢。
鉴于 xdg-open 和一个扩展,有没有办法获取 xdg-open 为该特定扩展设置的应用程序?
例如给出xdg-open,.jpg结果是eog。
$ xdg-open
The program 'xdg-open' is currently not installed. You can install it by typing:
sudo apt-get install xdg-utils
$ sudo apt-get install xdg-utils
Reading package lists... Done
Building dependency tree
Reading state information... Done
xdg-utils is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 89 not upgraded.
$ whereis xdg-open
xdg-open: /usr/bin/xdg-open /usr/bin/X11/xdg-open /usr/share/man/man1/xdg-open.1.gz
$ which xdg-open
$ xdg-open
The program 'xdg-open' is currently not installed. You can install it by typing:
sudo apt-get …Run Code Online (Sandbox Code Playgroud) 我在没有桌面环境的情况下运行 Debian Jessie(我使用平铺窗口管理器 i3)并且喜欢使用xdg-open首选应用程序快速打开文件。不过,我在为 PDF 文件设置首选应用程序时遇到了一个持续的问题。简而言之,这是我的问题:
$ xdg-mime query filetype ~/Downloads/document.pdf
application/pdf
$ xdg-mime query default application/pdf
/usr/share/applications/qpdfview.desktop
$ xdg-open ~/Downloads/document.pdf
[opens gimp!]
Run Code Online (Sandbox Code Playgroud)
任何想法都将不胜感激 - 这已经困扰了我大约一年。我曾经设法(暂时)修复它的唯一方法是直接编辑mimeinfo.cache并gimp从application/pdf记录中删除对 的引用。
是的,/usr/share/applications/qpdfview.desktop存在并包含qpdfview二进制文件的正确位置。(确实,这个 .desktop 文件在我手动编辑时使用mimeinfo.cache。)
我正在尝试编写一个脚本来启动给定 mime 类型的默认应用程序。例如,我想说my-script text/plain并让它为我打开 KWrite。
我所知道的是,您可以使用 xdg-mime 来查询给定 mime 类型的默认应用程序是什么
$ xdg-mime query default text/plain
org.kde.kwrite.desktop
Run Code Online (Sandbox Code Playgroud)
但是,我不知道可以使用什么命令来启动给定的 KWrite org.kde.kwrite.desktop。我怎样才能做到这一点?是具有桌面文件足够的名称,或者我还需要找出其存储在何处(/usr/share/applications,.local/share/applications,等)?
顺便说一下,我不认为我可以解决我原来的问题,xdg-open因为 XDG open 期望接收文件名或 URL 作为参数,我希望能够启动我的应用程序而无需传递文件名。例如,我希望能够在空白文件缓冲区上打开文本编辑器或在其主页上打开我的 Web 浏览器。
我的问题是许多程序调用 xdg-open 来打开网站,但在我的 Manjaro 系统(基于 Arch Linux)上,这以某种方式绑定到 cups :)
当这种对 xdg-open 的调用发生时,CPU 使用率会上升很多,但没有任何反应。我重新启动是因为笔记本电脑很快变热。
~ $ xdg-settings get default-web-browser
cups.desktop
Run Code Online (Sandbox Code Playgroud)
当我想改变它时,我得到以下响应:
~ $ xdg-settings set default-web-browser firefox.desktop
xdg-settings: $BROWSER is set and can't be changed with xdg-settings
Run Code Online (Sandbox Code Playgroud)
我可以继续更改浏览器的环境变量,我已经修复了,但仅适用于这个终端。如何使此更改永久化或将其添加到自动启动?
我正在使用:i3 4.12,鱼壳
我只是找不到显示 *.png 图像的命令!我试过xdg-open命令但它失败了:
[student@seqpapl1 Images]$ xdg-open adapter_content.png
xdg-open: no method available for opening 'adapter_content.png'
Run Code Online (Sandbox Code Playgroud)
我目前在服务器上运行 ubuntu linux。