问题标签 [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.
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 应用程序启动器启动时它不起作用。
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 和一些正则表达式来匹配我需要的路径。
python-3.x - 扩展 Dbus 服务
更大的目标:
编写针对课堂学校环境的批处理用户管理器。
问题
我想编写一个用户管理器,它使用 GUI 为课堂环境添加、管理和删除用户。我正在开发的程序是ltsp-manager。
到目前为止,所有的用户管理都是通过执行 bash 命令来完成的。来自 python 脚本。这意味着所有的 GUI 都必须以 root 身份运行,并且一切都是手工制作的。
目标
创建一个处理所有帐户管理的 Dbus 服务,并让 GUI 以不时需要密码的普通用户身份运行。
我环顾四周,发现org.freedesktop.Accounts
已经有一个服务在做很多我想做的功能。但是,它也缺少一些。完全缺少的是组的管理。
使用该org.freedesktop.Accounts
功能并添加一些其他功能/方法的好方法是什么?
思念至今
我想到的事情包括:
- 只是重做所有事情——这意味着很多重复的工作。
- 复制接口并编写调用原始接口的函数
- 编写一个只实现附加功能而不触及原始功能的服务。然后客户端将使用原始服务和新编写的服务。
我所有的测试实验都完成了python3
,pydbus
这似乎是许多人中最好的选择。
我从未编写过真实世界的 dbus 服务——尽管实验确实在d-feet
. 这个问题实际上并不是我需要输入什么类型的问题,而是一个最佳实践问题。
vala - 使用 Vala 的默认应用程序打开文件?
在 Vala 的默认应用程序中打开文件的最佳方式是什么?有点像xdg-open
工作原理。
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
和朋友。如果可能,我想避免处理我想要支持的每个桌面的图标。
python - 如何在 Python 中获取 Geoclue 地理位置?- 什么是桌面 id 参数?
我正在尝试使用适用于 Linux 的 GeoClue 和 Python 接口(gir1.2-geoclue-2.0
包)获取位置(纬度/经度)。c的文档几乎与此处的 api 函数匹配,但我不确定我应该发送什么“桌面 ID”......任何有效.desktop
的文件是应用程序请求的?完整路径或唯一名称?
最后一个命令挂起,不返回任何内容。我是否错过了获取笔记本电脑/设备大致位置的步骤?据我了解,这应该能够以类似于 whatsmyip.com 的方式从网络中读取设备的位置?
更新:我能够通过与返回值交互来获得粗略的位置,
但是第一个参数应该是什么?什么是“桌面 ID”?
c# - 为什么在 WaitAsync 完成之前连接被释放?
我在使用 DBus 时遇到问题。
我正在尝试使用一些操作按钮启动并运行通知气泡。
到目前为止,我已经能够让气泡显示出来
并获取在回调中按下的按钮,
请参阅下面的代码。
所以现在,因为在收到响应之前通知就返回了,所以我需要等待用户的响应(ManualResetEventSlim),然后才能关闭连接。
这造成了死锁,我通过切换到 AsyncManualResetEvent 解决了这个问题。
现在它可以工作了,有点 - 我得到了气泡,如果选择了气泡动作,我会得到响应(如果在超时之前单击 - 目前未处理超时),但我也得到了 WatchActionInvokedAsync 的 onError 回调中传递的异常.
错误回调:无法访问已处置的对象。对象名称:
'Tmds.DBus.Connection'
为什么我会收到此错误?在处理连接之前
不应该返回吗?
什么可能导致此错误?
除此之外,为什么异常有一个空的堆栈跟踪?await notifyResponseReceived.WaitAsync();
生成的代理对象(Notifications.DBus.INotifications)在这里:https ://pastebin.com/v40pyaFN以防万一有人想要它。
此代码使用Tmds.DBus 库。
python-3.x - AppStreamGlib:AppStreamGlib.Icon.get_pixbuf() 返回无
注意:这个问题与 Amazon AppStream 无关。这个问题是针对这个 AppStream的。
您好,我正在为我的 Linux 发行版构建一个软件中心,并且我正在尝试通过 AppStream 获取元数据。但是由于某种原因,当我尝试将 an 转换AppStreamGlib.Icon
为GdkPixbuf.Pixbuf
usingget_pixbuf()
时,它只返回 None。
我正在生成一个AppStreamGlib.Store
并创建一个字典来保存所有元数据。
运行它时,self.items["apps"][app.get_pkgname_default()]["icon"]
总是AppStreamGlib.Icon
像它应该的那样。AppStreamGlib.Icon.get_pixbuf
但是使用总是返回将其转换为 PixbufNone
那么,我做错了什么导致get_pixbuf
总是返回无?
xml-parsing - Freedesktop Appstream XML:DTD?
我目前正在为 GUI 和非 GUI 应用程序编写元信息。
为此,我正在广泛研究官方元信息文档,但它在许多地方都是不明确的,说得客气一点(可选性、标签的多重性、排序……;事实上,该文档<tag/>
用于定义实际上具有内容<tag>foobar</tag>
和那些不<tag prop="foobar"/>
一样的内容)。
由于我计划坚持如果验证失败可能会被解析器拒绝的格式,我希望有解析器使用的 DTD。毕竟这是 XML,我很确定开发人员选择 XML 正是因为它带有模式规范语言。
但是,我找不到该架构。我尝试通过 and 的源代码找到自己的方式appstream-generator
,appstream-cli
但没有成功。
rust - 如何使用 zbus 列出块设备?
我想使用名为zbus的 dbus 实现列出系统中所有可用的块设备。
UDisks2 文档提到了对org.freedesktop.UDisks2.Manager
接口调用的方法调用,该接口GetBlockDevices
接受IN a{sv} options, OUT ao block_objects
方法参数。
使用 zbus,我写道:
据我了解,zvariant 值代表一个 DBus 变体。但是我收到以下错误:
是什么原因造成的,我该如何避免这个错误?