问题标签 [freedesktop.org]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
444 浏览

redhat - 从 Gnome 菜单启动器启动时无法设置终端窗口的标题

我添加了一个新的 Gnome 菜单选项来启动自定义脚本应用程序。我正在使用 Redhat 6、Gnome 2。这一切正常,但是当它在新的终端窗口中启动时,我无法让标题显示除默认的“终端”之外的任何内容。

这是我的配置方式;我添加了以下文件以使其正常工作:

  • /usr/shared/applications/app.desktop(配置我的应用程序的启动)
  • /usr/shared/desktop-directories/app.directory (从我的应用程序的菜单中指定一个目录)
  • /etc/xdg/menu/application-merged/app.menu(向主应用程序下拉菜单添加菜单选项)

app.desktop 文件指定了我要运行的脚本的位置,并且我已将“终端”选项设置为“真”,这将在新的终端窗口中启动它。我尝试在脚本启动期间添加以下内容,但它不会更改标题。

但是,从单独的交互式终端设置“PROMPT_COMMAND”确实有效。不知道为什么从 gnome 应用程序启动器启动时它不起作用。

0 投票
1 回答
1691 浏览

python - Python 正确有效地获取 DBUS 对象路径(例如 /org/bluez/dev_XX_XX_XX_XX_XX_XX/playerY)

我想获得我正在创建的基于 bluez 的 A2DP 蓝牙播放器的设备路径。我坚持有效地执行播放/暂停/下一个/上一个命令,因为 dbus 可用性和播放器路径会根据您选择的媒体播放器而变化。此外,bluez 有时会决定发送大量无用信息(对我而言),例如播放列表详细信息,这会使我的应用程序处理的负载更大。所以这里的目标是获取/org/bluez/dev_XX_XX_XX_XX_XX_XX/playerY函数何时被调用。

当我尝试更换媒体播放器,或者 bluez 发送一些日志(一般是 5% 的时间)时,dbusorg.freedesktop.DBus.ObjectManager会收到很多信息,manager.GetManagedObjects()导致卡住 10~20 秒。

有没有一种方法可以确定 bluez 对象路径而不必接收整个org.freedesktop.DBus.ObjectManager对象;或者有没有办法只限制发送的消息数量bluez。我真的很想有效地获得对象路径。非常感谢任何帮助。

编辑: 虽然我没有在嵌入式系统中测试它,但由于 Partiban 的好建议,我能够使用 InterfacesAdded 和一些正则表达式来匹配我需要的路径。

0 投票
1 回答
31 浏览

python-3.x - 扩展 Dbus 服务

更大的目标:

编写针对课堂学校环境的批处理用户管理器。

问题

我想编写一个用户管理器,它使用 GUI 为课堂环境添加、管理和删除用户。我正在开发的程序是ltsp-manager

到目前为止,所有的用户管理都是通过执行 bash 命令来完成的。来自 python 脚本。这意味着所有的 GUI 都必须以 root 身份运行,并且一切都是手工制作的。

目标

创建一个处理所有帐户管理的 Dbus 服务,并让 GUI 以不时需要密码的普通用户身份运行。

我环顾四周,发现org.freedesktop.Accounts已经有一个服务在做很多我想做的功能。但是,它也缺少一些。完全缺少的是组的管理。

使用该org.freedesktop.Accounts功能并添加一些其他功能/方法的好方法是什么?

思念至今

我想到的事情包括:

  1. 只是重做所有事情——这意味着很多重复的工作。
  2. 复制接口并编写调用原始接口的函数
  3. 编写一个只实现附加功能而不触及原始功能的服务。然后客户端将使用原始服务和新编写的服务。

我所有的测试实验都完成了python3pydbus这似乎是许多人中最好的选择。

我从未编写过真实世界的 dbus 服务——尽管实验确实在d-feet. 这个问题实际上并不是我需要输入什么类型的问题,而是一个最佳实践问题。

0 投票
3 回答
432 浏览

vala - 使用 Vala 的默认应用程序打开文件?

在 Vala 的默认应用程序中打开文件的最佳方式是什么?有点像xdg-open工作原理。

0 投票
1 回答
228 浏览

user-interface - 在遵守 FreeDesktop 标准的同时,在哪里为用户特定的应用程序安装图标?

我有一个 GUI 应用程序,我想以符合 FreeDesktop 的方式为每个用户安装它。阅读相关规范,似乎应该放置一个“.desktop”文件~/.local/share/applications,并且它应该包含一个Icon设置为没有扩展名的图标名称的键。

我面临的问题是我找不到每个用户应该存储图标的位置。Icon Theme 规范声明应用程序图标至少应该存储在 中,$prefix/share/icons/hicolor/48x48/apps但它从未定义$prefix取什么值。它提到$HOME/.icons但将其贬低为遗产。我发现的所有其他路径都是系统范围的。

Gnome 的集成指南指定应该存储图标,/usr/share/icons/hicolor/48x48/apps/但没有提及按用户安装,尽管在指南的其他地方提到了按用户安装。

鉴于我设法找到的内容没有为我提供我想要的信息,我问这个:

我的应用程序图标应该放在哪里,以便 xdg 桌面可以找到它们?

请注意,我知道kde4-config --path icon和朋友。如果可能,我想避免处理我想要支持的每个桌面的图标。

0 投票
1 回答
601 浏览

python - 如何在 Python 中获取 Geoclue 地理位置?- 什么是桌面 id 参数?

我正在尝试使用适用于 Linux 的 GeoClue 和 Python 接口(gir1.2-geoclue-2.0包)获取位置(纬度/经度)。c的文档几乎与此处的 api 函数匹配,但我不确定我应该发送什么“桌面 ID”......任何有效.desktop的文件是应用程序请求的?完整路径或唯一名称?

最后一个命令挂起,不返回任何内容。我是否错过了获取笔记本电脑/设备大致位置的步骤?据我了解,这应该能够以类似于 whatsmyip.com 的方式从网络中读取设备的位置?

更新:我能够通过与返回值交互来获得粗略的位置,

但是第一个参数应该是什么?什么是“桌面 ID”?

0 投票
0 回答
116 浏览

c# - 为什么在 WaitAsync 完成之前连接被释放?

我在使用 DBus 时遇到问题。
我正在尝试使用一些操作按钮启动并运行通知气泡。

到目前为止,我已经能够让气泡显示出来

并获取在回调中按下的按钮,

请参阅下面的代码。

所以现在,因为在收到响应之前通知就返回了,所以我需要等待用户的响应(ManualResetEventSlim),然后才能关闭连接。
这造成了死锁,我通过切换到 AsyncManualResetEvent 解决了这个问题。

现在它可以工作了,有点 - 我得到了气泡,如果选择了气泡动作,我会得到响应(如果在超时之前单击 - 目前未处理超时),但我也得到了 WatchActionInvokedAsync 的 onError 回调中传递的异常.

错误回调:无法访问已处置的对象。对象名称:
'Tmds.DBus.Connection'

为什么我会收到此错误?在处理连接之前
不应该返回吗? 什么可能导致此错误? 除此之外,为什么异常有一个空的堆栈跟踪?await notifyResponseReceived.WaitAsync();


生成的代理对象(Notifications.DBus.INotifications)在这里:https ://pastebin.com/v40pyaFN以防万一有人想要它。

此代码使用Tmds.DBus 库

0 投票
1 回答
63 浏览

python-3.x - AppStreamGlib:AppStreamGlib.Icon.get_pixbuf() 返回无

注意:这个问题与 Amazon AppStream 无关。这个问题是针对这个 AppStream的。

您好,我正在为我的 Linux 发行版构建一个软件中心,并且我正在尝试通过 AppStream 获取元数据。但是由于某种原因,当我尝试将 an 转换AppStreamGlib.IconGdkPixbuf.Pixbufusingget_pixbuf()时,它只返回 None。

我正在生成一个AppStreamGlib.Store并创建一个字典来保存所有元数据。

运行它时,self.items["apps"][app.get_pkgname_default()]["icon"]总是AppStreamGlib.Icon像它应该的那样。AppStreamGlib.Icon.get_pixbuf 但是使用总是返回将其转换为 PixbufNone

那么,我做错了什么导致get_pixbuf总是返回无?

0 投票
1 回答
34 浏览

xml-parsing - Freedesktop Appstream XML:DTD?

我目前正在为 GUI 和非 GUI 应用程序编写元信息。

为此,我正在广泛研究官方元信息文档,但它在许多地方都是不明确的,说得客气一点(可选性、标签的多重性、排序……;事实上,该文档<tag/>用于定义实际上具有内容<tag>foobar</tag>和那些不<tag prop="foobar"/>一样的内容)。

由于我计划坚持如果验证失败可能会被解析器拒绝的格式,我希望有解析器使用的 DTD。毕竟这是 XML,我很确定开发人员选择 XML 正是因为它带有模式规范语言。

但是,我找不到该架构。我尝试通过 and 的源代码找到自己的方式appstream-generatorappstream-cli但没有成功。

0 投票
1 回答
131 浏览

rust - 如何使用 zbus 列出块设备?

我想使用名为zbus的 dbus 实现列出系统中所有可用的块设备。

UDisks2 文档提到了对org.freedesktop.UDisks2.Manager接口调用的方法调用,该接口GetBlockDevices接受IN a{sv} options, OUT ao block_objects方法参数。

使用 zbus,我写道:

据我了解,zvariant 值代表一个 DBus 变体。但是我收到以下错误:

是什么原因造成的,我该如何避免这个错误?