我正在使用没有任何桌面环境的OpenBox 窗口管理器。
xdg-open行为怪异。它用firefox.
$ xdg-settings --list
Known properties:
default-web-browser Default web browser
Run Code Online (Sandbox Code Playgroud)
我正在寻找一个简单的程序;类似于读取*.desktop文件/usr/share/applications/夹中的每个文件并自动设置 xdg 设置。
我注意到一些应用程序将它们的配置文件放在其中,~/.config/appname而其他应用程序为此使用~/.appname(经典方式,AFAIK)。这种区别有什么意义,我的应用程序可以更好地考虑什么?
更新:看起来我的(XUbuntu 11.10 默认)$XDG_CONFIG_HOME 设置为~/并且我系统中的大多数应用程序(如 Mozilla Firefox、Adobe Flash Player、Midnight Commander、Opera、Wine 等)都符合这一点。但仍有许多应用程序(如 Compiz、Deadbeef、VLC、Qt Creator、Google Chrome、XFCE 等)在使用~/.config/。另一个可疑的事情是目录~/.config/本身不是隐藏的(它们的名称中没有点) - 应用程序配置目录是否不希望在不依赖于位置($XDG_CONFIG_HOME 值)的情况下具有恒定的自己的名称?
根据手册页,xdg-open将使用用户配置的应用程序打开一个文件。但是,该应用程序实际上是如何确定的?我看不到与 关联的配置文件xdg-utils,那么我的设置存储在哪里以及如何修改它们?看到一个简单的 PNG 文件如何使用 Wine 打开 Internet Explorer,我需要更改这些设置。
命令行是否可以根据文件类型获取用于打开特定文件的推荐程序列表?例如,.pdf文件将具有open with...使用程序Evince和Document Viewer.
我在大多数情况下都使用命令行,但有时我会忘记我想用来打开特定类型文件的程序的名称。
顺便说一句,我正在使用 Ubuntu 13.10。
专家提示
感谢@slm 在下面选择了答案,我在名为 的文件中制作了以下 bash 脚本openwith.sh:
xdg-mime query default $(xdg-mime query filetype $1)
Run Code Online (Sandbox Code Playgroud)
添加为别名或直接作为openwith命令执行。
desktop-environment freedesktop mime-types files file-opening
当我没有defaults.listand 时mimeapps.list,xdg-open打开text/plainwith gvim。但是,当我创建defaults.list的/usr/share/applications/,并添加以下几行:
[Default Applications]
text/plain=emacs.desktop
Run Code Online (Sandbox Code Playgroud)
它用 Firefox 打开文本文件。
但是,如果我移动/usr/share/applications/defaults.list到~/.local/share/applications/mimeapps.list,它会emacs按预期打开文本文件。
我的问题:
xdg-open当没有defaults.listand时如何确定要启动哪个应用程序mimeapps.list?xdg-open在我简单地写时使用 Firefox /usr/share/applications/defaults.list?我正在使用 Arch Linux。
我有几个.desktop文件没有按预期工作或根本没有工作。我在任何地方都看不到任何错误,就每个错误寻求帮助似乎都没有成效。有没有一种方法可以验证我在文件中使用了正确的语法,它符合 FreeDesktop 标准,以便我可以应用特定的修复程序?
我希望使用某些特定程序打开所选类型的文件(按其扩展名)。我需要编辑哪些配置文件?
我已经尝试了一些,/usr/share/appplications/default.list但它不起作用。
我在 Macbook Pro 上使用 Kubuntu Linux 12.04,我正在寻求使用 Command/Meta 键执行常见快捷方式(例如复制、粘贴和全选)的能力。
我对这个简单的修改似乎需要多少努力感到非常惊讶,我将感谢任何可以提供的帮助来找到合理的工作解决方案。
我想知道如何不仅访问~/.config/user-dirs.dirswith 中定义的变量xdg-user-dir,例如"$(xdg-user-dir VIDEOS)",还访问以下标准变量:
XDG_CACHE_HOME:-$HOME/.cacheXDG_CONFIG_HOME:-$HOME/.configXDG_DATA_HOME:-$HOME/.local/shareXDG_RUNTIME_DIR:-"/run/user/$USER"XDG_CONFIG_DIRS:-/etc/xdgXDG_DATA_DIRS:-/usr/local/share:/usr/share为此,我在我的~/.bash_login文件中执行以下操作:
# Define standard directories.
declare -gx XDG_CACHE_HOME=~/.cache
declare -gx XDG_CONFIG_HOME=~/.config
declare -gx XDG_DATA_HOME=~/.local/share
declare -gx XDG_RUNTIME_DIR="/run/user/$USER"
declare -gx XDG_CONFIG_DIRS="$(IFS=: path /etc/xdg)"
declare -gx XDG_DATA_DIRS="$(IFS=: path /usr/local/share:/usr/share)"
# Source supplementary directories to export or overwrite existing standard ones.
declare a="$XDG_CONFIG_HOME/user-dirs.dirs"
if [[ -e $a ]]; then
source "$a"
declare b=""
for b in ${!XDG_*}; do
if [[ $b =~ ^XDG_[_[:alnum:]]+_DIR$ ]]; then
declare …Run Code Online (Sandbox Code Playgroud) 有一段时间了,eog并且gnome-terminal在我的 (X)Ubuntu 13.10 上启动非常缓慢。我认为其他 Gnome 工具也会受到影响,但我不使用任何其他工具。
现在org.freedesktop.DBus.Error.NoReply每次gnome-terminal启动时都会出现错误:
**(gnome-terminal:5516):警告**:检索无障碍总线地址时出错:org.freedesktop.DBus.Error.NoReply:未收到回复。可能的原因包括:远程应用程序未发送回复、消息总线安全策略阻止回复、回复超时或网络连接中断。
并且每次eog开始:
** (eog:4996):警告**:检索无障碍总线地址时出错:org.freedesktop.DBus.Error.NoReply:未收到回复。可能的原因包括:远程应用程序未发送回复、消息总线安全策略阻止回复、回复超时或网络连接中断。
(eog:4996):EOG-WARNING **:无法加载图标:主题中不存在图标“图像加载”
我认为这与我删除了一些默认启动的程序有关,包括at-spi2-registryd我认为属于Gnome 的辅助功能项目的。
根据dpkg --getselections | grep spi,at-spi2-core仍然安装在我的系统上。
我记得做了一些非常hacky/愚蠢的事情,比如用空的 echo 程序交换一些配置文件或二进制文件来阻止守护进程启动。
谷歌提供了一些at-spi...相关链接:
这可能freedesktop与我遇到的一个相关问题有关nmcli,所以请查看它:nmcli freedesktop DBus warnings and errors。
ltrace -r eog:
0.000000 __libc_start_main(0x41e210, 2, 0x7fff41235b18, 0x45c020, 0x45c0b0 <unfinished ...>
0.000734 bindtextdomain("eog", "/usr/share/locale") = "/usr/share/locale"
0.001297 bind_textdomain_codeset(0x463fff, 0x45c0f6, …Run Code Online (Sandbox Code Playgroud) freedesktop ×10
files ×3
arch-linux ×2
kde ×2
mime-types ×2
.desktop ×1
bash ×1
d-bus ×1
defaults ×1
dot-files ×1
file-opening ×1
gnome ×1
home ×1
posix ×1
ubuntu ×1
xdg ×1
xdg-open ×1
xfce ×1
xorg ×1