标签: freedesktop

如何在没有任何环境的情况下正确且轻松地配置 `xdg-open`?

我正在使用没有任何桌面环境的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 设置。

arch-linux configuration freedesktop mime-types files

96
推荐指数
5
解决办法
13万
查看次数

为什么有些应用程序使用 ~/.config/appname 作为其配置数据,而其他应用程序使用 ~/.appname?

我注意到一些应用程序将它们的配置文件放在其中,~/.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 值)的情况下具有恒定的自己的名称?

configuration posix freedesktop home dot-files

43
推荐指数
3
解决办法
8370
查看次数

xdg-open 如何工作

根据手册页,xdg-open将使用用户配置的应用程序打开一个文件。但是,该应用程序实际上是如何确定的?我看不到与 关联的配置文件xdg-utils,那么我的设置存储在哪里以及如何修改它们?看到一个简单的 PNG 文件如何使用 Wine 打开 Internet Explorer,我需要更改这些设置。

desktop-environment freedesktop xdg-open

31
推荐指数
1
解决办法
7271
查看次数

命令行是否有“打开方式”命令?

命令行是否可以根据文件类型获取用于打开特定文件的推荐程序列表?例如,.pdf文件将具有open with...使用程序EvinceDocument 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

24
推荐指数
3
解决办法
1万
查看次数

xdg-open 默认应用程序行为

当我没有defaults.listand 时mimeapps.listxdg-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按预期打开文本文件。

我的问题:

  1. xdg-open当没有defaults.listand时如何确定要启动哪个应用程序mimeapps.list
  2. 为什么xdg-open在我简单地写时使用 Firefox /usr/share/applications/defaults.list

我正在使用 Arch Linux。

arch-linux defaults freedesktop

16
推荐指数
1
解决办法
1万
查看次数

如何验证/验证 .desktop 文件?

我有几个.desktop文件没有按预期工作或根本没有工作。我在任何地方都看不到任何错误,就每个错误寻求帮助似乎都没有成效。有没有一种方法可以验证我在文件中使用了正确的语法,它符合 FreeDesktop 标准,以便我可以应用特定的修复程序?

freedesktop .desktop xdg

15
推荐指数
1
解决办法
6790
查看次数

如何在 kde 或 xfce 中更改系统范围内所选文件类型的默认程序?

我希望使用某些特定程序打开所选类型的文件(按其扩展名)。我需要编辑哪些配置文件?
我已经尝试了一些,/usr/share/appplications/default.list但它不起作用。

kde xfce freedesktop files

11
推荐指数
1
解决办法
2万
查看次数

使用 MC、MV、MA 进行复制、粘贴、全选

我在 Macbook Pro 上使用 Kubuntu Linux 12.04,我正在寻求使用 Command/Meta 键执行常见快捷方式(例如复制、粘贴和全选)的能力。

尝试的解决方案:

  • 在 KDE 的系统设置 > 快捷键和手势 > 标准键盘快捷键中重新映射复制、粘贴、全选等
    • 问题:这些快捷方式似乎被大多数应用程序忽略。我测试的所有网络浏览器都继续期待Ctrl我表示希望使用该Meta密钥的密钥。由于找不到可用的 Web 浏览器,我没有尝试任何其他应用程序。
    • 测试:Firefox、Chromium、Rekonq、Arora、Konqueror。
  • 交换MetaCtrl 使用xmodmap的
    • 问题:终端仿真器然后需要使用Meta键代替Ctrl键来执行命令,例如键盘中断、大多数 Emacs 绑定以及各种 CLI 应用程序中的无数其他绑定。

考虑的解决方案:

  • 单独更改 GUI 应用程序中的常用快捷方式。不幸的是,能够更改复制、粘贴和全选的绑定似乎很少见。
  • 仅为 Konsole(或其他终端模拟器)更改 Ctrl 修饰符。这在理想情况下会导致Meta-x产生击键Ctrl-x反之亦然。但是,我找不到任何方法来实现这一点。
  • 使用 stty更改终端键命令的绑定以使用 meta 并另外为所有其他 CLI 应用程序编写自定义配置文件。这需要付出不合理的努力才能完成。

我对这个简单的修改似乎需要多少努力感到非常惊讶,我将感谢任何可以提供的帮助来找到合理的工作解决方案。

kde xorg keyboard-shortcuts freedesktop

11
推荐指数
1
解决办法
3176
查看次数

如何在 Bash 中使用 XDG 目录和路径?

我想知道如何不仅访问~/.config/user-dirs.dirswith 中定义的变量xdg-user-dir,例如"$(xdg-user-dir VIDEOS)",还访问以下标准变量:

  1. XDG_CACHE_HOME:-$HOME/.cache
  2. XDG_CONFIG_HOME:-$HOME/.config
  3. XDG_DATA_HOME:-$HOME/.local/share
  4. XDG_RUNTIME_DIR:-"/run/user/$USER"
  5. XDG_CONFIG_DIRS:-/etc/xdg
  6. XDG_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)

bash directory-structure freedesktop

10
推荐指数
1
解决办法
6749
查看次数

Gnome 程序(eog/gnome-terminal)启动缓慢并产生 DBus.Error.NoReply 警告

有一段时间了,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 spiat-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)

ubuntu gnome d-bus freedesktop gnome-terminal

10
推荐指数
1
解决办法
1万
查看次数