标签: dbus

如何在 Python 中编写 Unity 系统指标?

背景:

C 原始代码:(工作正常)

  • 我已经在 C 语言中工作了,请参阅我的另一个问题:

    如何为 Unity 开发系统指标?

    但是,indicator-sysmonitor与许多其他应用程序指标一样,它已经是用 Python 开发的。我不喜欢这样的想法:如果开发人员想在欢迎/锁定/无处不在的屏幕中显示指示器,他们必须将他们的项目移植到 C 或编写 Python-C 代理。相反,让 indicator-sysmonitor 直接从 python 创建一个系统指示器将是最好的解决方案(没有变通方法,它将是当前使用 appindicator 的所有 python 项目的通用解决方案)。

Python 代码:(我尝试将 c 代码移植到 python 失败)

  • 我正在努力将它移植到 Python 中。这是我当前的代码,它不起作用。它确实为菜单和操作创建了 DBus 对象。它列在 XFCE 指标插件中。但没有显示在面板上。

    /usr/lib/indicator-test/indicator-test-service

    #!/usr/bin/python2
    
    import os
    import sys
    
    import gi
    from gi.repository import Gio, GLib
    
    APPLICATION_ID = 'local.sneetsher.indicator.test'
    DBUS_MENU_PATH = '/local/sneetsher/indicator/test/desktop'
    DBUS_ACTION_PATH = '/local/sneetsher/indicator/test'
    
    def callback():
        print ok …
    Run Code Online (Sandbox Code Playgroud)

indicator python unity dbus c

82
推荐指数
1
解决办法
3551
查看次数

查看可用 DBUS 消息的工具我可以发送到应用程序

是否有图形工具或命令行工具,可以列出我可以发送到启用 DBUS 的程序的所有消息和参数/参数?我真的很想尝试编写一些 DBUS 的脚本,但我几乎找不到大多数应用程序的 DBUS 功能的任何文档。

gui dbus

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

主文件夹中的 .dbus 文件夹属于根目录

我的主文件夹~/.dbus中有一个只能由 root 读取和写入的文件夹:

drwx------  3 root  root  4096 Feb 17 17:30 .
drwx------  2 root  root  4096 Feb 17 17:30 session-bus
Run Code Online (Sandbox Code Playgroud)

这是正确的设置吗?或者如果没有,那怎么会发生?

permissions root dbus

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

使用 Qjackctl 时“无法启动 JACK 服务器”

当我尝试通过线路输入将吉他连接到计算机时遇到问题。Audacity效果很好,我可以录制我在吉他上弹奏的内容(从Preferences录制位置选择default:line0)。但问题出在Qjackctl 中:起初当我点击start它时会显示此错误:

错误 1

之后,当我单击Cancel它时会出现此错误:

错误 2

这是来自messages窗口的日志:

10:30:37.368 接线板停用。
10:30:37.416 统计重置。
10:30:37.459 ALSA 连接更改。
10:30:37.497 D-BUS:服务可用(org.jackaudio.service aka jackdbus)。
无法连接到服务器套接字 err = 没有这样的文件或目录
无法连接到服务器请求通道
jack 服务器未运行或无法启动
10:30:37.512 ALSA 连接图更改。
10:30:44.060 D-BUS:无法启动 JACK 服务器。对不起
无法连接到服务器套接字 err = 没有这样的文件或目录
无法连接到服务器请求通道
jack 服务器未运行或无法启动
2012 年 12 月 1 日星期六 10:30:43:启动 jack 服务器...
2012 年 12 月 1 日星期六 10:30:43:JACK 服务器以优先级 10 的实时模式启动
2012 年 12 月 1 日星期六 10:30:44:控制设备硬件:0
2012 年 12 月 …

jack dbus

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

使用 Nautilus 安装时“D-Bus 接口无对象”

我有一个内部硬盘,当我尝试在 Nautilus 中安装它的两个分区中的任何一个时,会出现此错误,而我的主硬盘工作正常。

当我使用磁盘安装它时,它可以工作,但在 Nautilus 中卸载会出现相同的错误。mount也有效。

dmesg并且 syslog 没有显示什么特别的,所以我不知道去哪里寻找相关的日志。我希望有人可以就这个问题为我提供一些提示。

nautilus mount dbus

33
推荐指数
4
解决办法
7万
查看次数

尝试启用第二个屏幕时出现 GDBus.Error

我将外部屏幕连接到我的笔记本电脑,但我的桌面并没有像大约一年前那样自动扩展到它(旧版本的 Ubuntu)。

我去了显示设置。屏幕列在那里(正确的分辨率、品牌名称等)。但是,当我将开关置于“打开”并单击“应用”时,出现此错误:

未能应用配置:%s

GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: 在路径 /org/gnome/SettingsDaemon/XRANDR 的对象上没有这样的接口 `org.gnome.SettingsDaemon.XRANDR_2'

几个月以来一直如此,但我真的很想能够再次使用外部屏幕/投影仪。

有任何想法吗?

谢谢。

dbus

30
推荐指数
2
解决办法
4万
查看次数

GConf 错误:没有运行 D-BUS 守护进程?!如何重新安装或修复?

安装 Konquerer 并重新启动我的笔记本电脑后,我在尝试从终端中以 root 用户身份打开、编辑或访问文件时出现以下错误(这对我来说是存在的)。

root@linuxBox:/home/v2r# gnome-open /home/

(gnome-open:2686):GConf-警告**:客户端无法连接到 D-BUS 守护进程://bin/dbus-launch 异常终止,并出现以下错误:未指定协议自动启动错误:X11 初始化失败。

GConf 错误:没有 D-BUS 守护进程在运行

root@linuxBox:/home/v2r# 未指定协议 无法解析参数:无法打开显示:

此外,似乎 dbus 没有正确安装/bin//usr/bin/ 查看屏幕截图: 在此处输入图片说明

我将如何解决这个问题并提前谢谢你?!!!


感谢您的回答 SirCharlo!它根本不能解决问题。请注意,它只发生在 bee root 时!

root@linuxBox:/home/v2r# gnome-open /home/

(gnome-open:5170): GConf-WARNING **: Client failed to connect to the D-BUS daemon: Failed to connect to socket /tmp/dbus-2RdCUjrZ9k: Connection denied GConf Error: No D-BUS daemon running

root@linuxBox:/home/v2r# 未指定协议 无法解析参数:无法打开显示:

system dbus services

28
推荐指数
3
解决办法
13万
查看次数

在 Ubuntu 16.04 中挂起命令

在 Ubuntu 14.04 中,我曾经使用以下命令以没有 root 权限的用户身份挂起计算机:

dbus-send --system --print-reply --dest="org.freedesktop.UPower" \
/org/freedesktop/UPower org.freedesktop.UPower.Suspend
Run Code Online (Sandbox Code Playgroud)

不幸的是,在 Ubuntu 16.04 中这不再起作用,我收到一条错误消息:

错误 org.freedesktop.DBus.Error.UnknownMethod: 没有这样的方法“暂停”

显然已经发生了一些变化,那么现在正确的命令是什么?

suspend dbus 16.04

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

如何读取 dbus-monitor 输出?

我正在尝试使用dbus-monitor来尝试了解 dbus 在 Ubuntu 环境中的工作方式。在这方面我有几个问题:

  1. 你能告诉我如何正确阅读以下内容吗?我了解大意,但不了解细节。

    signal sender=:1.1948 -> dest=(null destination) serial=1829990 path=/org/ayatana/menu/DA00003; interface=org.ayatana.dbusmenu; member=ItemPropertyUpdated
    int32 23
    string "enabled"
    variant boolean true
    method call sender=:1.6 -> dest=org.freedesktop.Notifications serial=1399 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications;
    member=GetCapabilities
    
    Run Code Online (Sandbox Code Playgroud)

    我知道第一个是信号,而第二个是方法。目的地是否意味着信号可以有特定的接收器/插槽?什么是会员?信号后面的列表项是信号中传递的参数吗?什么是发件人连续出版物

  2. 我注意到音量控制和通知之间的关系。从我从 dbus-monitor 输出中读到的

    method call sender=:1.6 -> dest=org.freedesktop.Notifications serial=1400 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify
    string "gnome-settings-daemon"
    uint32 0
    string "notification-audio-volume-medium"
    string " "
    string ""
    array [
    ]
    array [
    dict entry(
    string "value"
    variant int32 38
    )
    dict entry( …
    Run Code Online (Sandbox Code Playgroud)

notification python dbus application-development

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

无法连接到无障碍总线

ssh与 X11 转发一起使用时,我在运行 gui 应用程序时收到各种错误和警告。

例如,每当我运行gitg 时,都会收到以下警告:

** (gitg:15904): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-ychCoQcrqT: Connection refused
Run Code Online (Sandbox Code Playgroud)

除了丑陋之外,这是否表明任何真正的错误?

我在运行evince 时收到相同的警告:

** (evince:16634): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-ychCoQcrqT: Connection refused
Run Code Online (Sandbox Code Playgroud)

...或eog

** (eog:16872): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-ychCoQcrqT: Connection refused
Run Code Online (Sandbox Code Playgroud)

等等。

也许值得一提:我从 12.04 连接到(是的,不受支持)13.04。

ssh x11-forwarding dbus

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