我正在使用generator-angular-fullstack.在我的本地机器上工作正常,我跑
grunt serve
Run Code Online (Sandbox Code Playgroud)
它启动服务器,但在VPS中它失败了
Warning: Command failed: xdg-open: no method available for opening 'http://localhost:9000'
Run Code Online (Sandbox Code Playgroud)
我已经安装了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.
Run Code Online (Sandbox Code Playgroud)
谁能解释一下我做错了什么?
我使用的是ubuntu 15.04和chrome.当我点击任何带有mailto协议的html链接时,例如
<a href="mailto:myemail@example.com">Click to send me email!</a>
Run Code Online (Sandbox Code Playgroud)
它打开我的默认电子邮件应用程序(thunderbird),但用错误的地址填充地址字段.它预先添加///到电子邮件地址.因此,在上述情况下,收件人将看起来像这样
///myemail@example.com
Run Code Online (Sandbox Code Playgroud)
代替
myemail@example.com
Run Code Online (Sandbox Code Playgroud)
同样的问题是skype网址.即
<a href="skype:myusername?chat">Click to chat with me!</a>
Run Code Online (Sandbox Code Playgroud)
它将通过预先斜杠(/)与电子邮件地址相同的方式打开错误用户的Skype窗口.
在这方面的任何帮助将不胜感激.
我用python-gtk编写了一个简单的原生GUI脚本.现在,我想给用户一个发送带附件的电子邮件的按钮.
该脚本在Linux桌面上运行.有没有办法打开用户首选的邮件应用程序并附加文件?
如何获取能够打开特定文件类型/ MIME类型的应用程序列表?我在Linux上寻找一个独立于桌面环境的解决方案.
我发现获取文件的MIME类型的可能性:
~> xdg-mime query filetype test.svg
image/svg+xml
Run Code Online (Sandbox Code Playgroud)
然后我可以查询该MIME类型的默认应用程序:
~> xdg-mime query default image/svg+xml
eog.desktop
Run Code Online (Sandbox Code Playgroud)
是否还有一个解决方案来获取我可以用于该文件的程序列表(非默认)?
例如在GNOME桌面上,如果我选择使用另一个应用程序打开*.json文件,我可以看到三个(Atom,Gedit,Builder)应用程序,建议打开文件:
如果我选择,显示所有应用程序,我还可以看到另一个相关的应用程序(LibreOffice Writer):
我找到了/home/user/.config/mimeapps.list包含以下内容的文件:
[Added Associations]
text/html=atom.desktop;firefox.desktop;midori.desktop;org.gnome.gedit.desktop;brackets.desktop;
application/javascript=atom.desktop;org.gnome.Builder.desktop;org.gnome.gedit.desktop;
Run Code Online (Sandbox Code Playgroud)
并且还有mime类型的关联应用程序,但我找不到Arch Linux wiki中mimeapps.list提到的全局文件.
我尝试通过命令行创建一个带有多个附件的新消息,但这不起作用:
thunderbird -compose "attachment='/etc/mtab',attachment='/etc/fstab'"
Run Code Online (Sandbox Code Playgroud)
只有第一个文件被附加.第二个缺失.
上面的命令行有什么问题?
PS:我先尝试过xdg-email,但是失败了.请参阅如何在Linux上打开用户首选的邮件应用程序?
我曾经用 sublime 打开文本文件,对于只读文件,我曾经这样做 :
sudo sublime。但现在突然sudo sublime命令给出以下错误:
(sublime:3931): Gtk-WARNING **: cannot open display:
Run Code Online (Sandbox Code Playgroud)
而sublime命令工作正常。我尝试了同样的gedit,并且发生了同样的事情,显示了 gedit 的错误:
error: XDG_RUNTIME_DIR not set in the environment.
(gedit:3933): Gtk-WARNING **: cannot open display:
Run Code Online (Sandbox Code Playgroud)
我安装了gtk,试过了gksudo,还是出现同样的错误!
我在网上搜索并找到了以下方法:
xhost +localhost: https://askubuntu.com/questions/614387/gksu-gtk-warning-cannot-open-display-0export DISPLAY=:0.0 : ssh username@hostname -Xssh username@hostname -Y以上都没有奏效。
对我有用的是:
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY sublime
Run Code Online (Sandbox Code Playgroud)
从这里:https : //askubuntu.com/questions/456689/error-xdg-runtime-dir-not-set-in-the-environment-when-attempting-to-run-naut
我想知道为什么我会收到这个错误,太突然了!另外,我想回到这个sudo sublime版本,因为它很容易记住。我该如何解决?
此外,我最近对系统所做的更改是:
为 Ubuntu 安装 Mac 主题:http : //www.noobslab.com/2014/04/macbuntu-1404-pack-is-released.html …
$pdffile我有一个 Perl 脚本,可以在临时目录中生成 pdf$tempdir并使用xdg-open. 一旦用户查看完文件,脚本就应该删除工作目录。这是我遇到问题的代码部分:
system "xdg-open $pdffile";
remove_tree($tempdir);
Run Code Online (Sandbox Code Playgroud)
我的理解system是它应该等到命令返回后再继续程序。但是,当我执行此代码时,我收到一条消息“无法打开/tmp/diff14969/diffs.pdf”。如果我在命令中替换xdg-open为okular(这是我的系统默认值)system,它就会按照我想要的方式工作。(同样,如果我对系统上的任何 pdf 查看器进行硬编码,它也可以工作,但出于可移植性的原因,我不想这样做。)
我的猜测是,这xdg-open是在一个新进程中启动查看器,并且该system命令仅等待xdg-open完成。成功返回后xdg-open,脚本将在查看器打开文件之前删除临时目录。如何让脚本等待实际查看者完成?
当我按下 XAMPP 7.3.6 中的 [转到应用程序] 按钮时,会显示以下内容:
xdg-open: no method available for opening 'http://localhost:80'
Run Code Online (Sandbox Code Playgroud)
我设置了现在的/usr/bin/xdg-open位置。这解决了我所有的问题和错误,但现在向我展示了这个新问题,这里没有其他问题解决了我的问题。google-chromiumchromium
当我跑步时./xampp*,我得到这个:
xdg-open: no method available for opening 'http://localhost:80'
Run Code Online (Sandbox Code Playgroud) xdg是否可以通过单击xdg-openHTML 链接来打开文件浏览器?
例如:
我想通过单击以下链接来打开我的文件浏览器(Thunar / XFCE / Xubuntu 18.04):xdg:///media/Data/。如果我手动输入 URL,则会xdg-open显示一个 xdg 对话框,询问我是否要打开。但是,如果我单击Ok,则会出现错误,表明无法找到/打开该地址。然而,该目录的路径是正确的并且存在。
有很多与我类似的问题(例如xdg-open 未打开默认浏览器或xdgutils - xdg-settings 未在 gentoo 中设置 default-web-browser,但没有一个答案对我的情况有帮助。因此我询问我的特殊情况:
在 Centos 7 上,我没有运行免费的桌面管理器,我只是从命令行运行一些 X11 应用程序(如 VS Code),其中 DISPLAY 变量设置为我连接的 (Windows) 计算机上的 X 服务器。
在 Centos 机器上我安装了两个浏览器,firefox并且google-chrome. 我只需输入firefoxresp 即可启动这两个浏览器。google-chrome在 bash 终端中。
xdg-open可用并打开链接google-chrome- 与 VS Code 一样。不过我想将其更改为firefox.
我试过:
在 Firefox 的 GUI 首选项中勾选“默认浏览器”。
使用xdg-settings, 但是
xdg-settings get default-web-browser
Run Code Online (Sandbox Code Playgroud)
返回“xdg-settings:未知的桌面环境”
设置 $BROWSER。在 bash 中我发出了
export BROWSER=firefox
Run Code Online (Sandbox Code Playgroud)
但仍然google-chrome是由xdg-open
在这种环境下如何将默认浏览器设置为firefox?
注意:奇怪的是,在另一台装有 Centos 6的机器上(并且“没有桌面环境”),该 …