Tag: dbus

如何将{sv}参数传递给gdbus?

我有问题以字典格式传递函数的参数(字符串,变体); 我尝试在gnome中运行一个截屏video并启动我需要传递这些asrguments的函数: -method name=”Screencast”- -arg type=”s” direction=”in” name=”file_template”/- -arg type=”a{sv}” direction=”in” name=”options”/- -arg type=”b” direction=”in” name=”flash”/- -arg type=”b” direction=”out” name=”success”/- -arg type=”s” direction=”out” name=”filename_used”/- -/method- 这是我的电话: ~$ gdbus call –session –dest org.gnome.Shell.Screencast –object-path /org/gnome/Shell/Screencast –method org.gnome.Shell.Screencast.Screencast “test_ %d_ %t.webm” {dict:string:variant:”draw-cursor”,true,”framerate”,35,pipeline,”vp8enc min_quantizer=13 max_quantizer=13 cpu-used=5 deadline=1000000 threads=%T ! queue ! webmmux”} 这是rror输出:“a {sv}”:0-33:无法解析为’a {sv}’类型的值。 错误是在语法中? 谢谢

D-Bus:从哪里开始?

Ubuntu中的许多操作都可以使用dbus从终端轻松完成。 主要优点是可以完全按照GUI进行操作,使用单线程,例如更改亮度 , 复制文件等。 例如,降低亮度标准终端方法是: xbacklight +30% #-30% 而dbus方法(我打破行以获得更好的可读性): dbus-send –session –print-reply –dest=”org.gnome.SettingsDaemon” \ /org/gnome/SettingsDaemon/Power \ org.gnome.SettingsDaemon.Power.Screen.SetPercentage uint32:30 要复制文件 cp ./a/source ./b/destination 和: qdbus org.gnome.Nautilus /org/gnome/Nautilus \ org.gnome.Nautilus.FileOperations.CopyFile \ “file:///source/directory” “*” \ “file:///destination/directory” “” 在qdbus图形指示器显示速度和canel按钮。 所以dbus是有趣的,我真的想学习D-Bus的东西。 请通过提供一些电子书,链接等来指导我。

没有sudoer权限重新启动?

我一直试图让我的ubuntu重启而不必编辑sudoers。 使用dbus命令之前(在我认为清晰)中这是可能的: dbus-send –system –print-reply –dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart 但这给了我一个错误。 事情发生了变化。 在KDE(我不使用)中,有一个类似的东西(见这个答案 ) 任何人都可以告诉我一种让我的机器从脚本重启的替代方法(不调整权限)

可以通过DBus触发和调用org.freedesktop.Notifications.CloseNotification(uint id)吗?

参考: 关于notify-osd的关闭按钮? 书签: 可以通过DBus触发和调用org.freedesktop.Notifications.CloseNotification(uint id)吗? 目前,这个脚本 dbus-monitor “interface=’org.freedesktop.Notifications'” | \ grep –line-buffered “member=Notify” | \ sed -u -e ‘s/.*/killall notify-osd/g’ | \ bash 将杀死所有待处理的通知。 最好通过使用org.freedesktop.Notifications.CloseNotification(uint id)来org.freedesktop.Notifications.CloseNotification(uint id)要取消的特定目标OSD通知。 是否有一个接口方法可以在特定的通知事件发生时将其置于(在?)DBus中? 该方法需要获取通知PID以用作CloseNotification(uint id)的参数。 或者, qdbus org.freedesktop.Notifications \ /org/freedesktop/Notifications \ org.freedesktop.Notifications.CloseNotification(uint id) 如果可以确定(uint id)参数,则可以从shell中使用。 实际的命令语法将使用整数代替(uint id) 。 或许首先要问的一个更好的问题可能是“如何找到通知的DBus地址?”。 这些都没有正确识别它: gdbus monitor –session –dest org.freedesktop.Notifications 回报 The name org.freedesktop.Notifications is […]

如何将自定义项添加到声音指示器(并使其可单击多次)?

原来的问题 Unity的优势之一是各种标准化指标。 我想通过运行小型shell脚本的附加菜单项来自定义声音指示器 。 我不怕一点Python代码,我希望有人能指出我在正确文件中的正确子程序。 我怀疑这将是相当容易的,但所有的指标都是如此臃肿,我无法在合理的时间内查看他们的代码。 任何帮助表示赞赏。 我知道这可能是奇妙的Skype-Wrapper所做的。 编辑2 – 现在是一个肮脏的DBus黑客 之前一次编辑的单击问题现在变成了DBus问题。 基本上我们必须告诉声音指示器我们的虚假播放器现在终止了。 一个肮脏的黑客导航围绕这个问题: #!/bin/bash # This is ‘/home/confus/bin/toggleSpeaker.sh’ notify-send “Toggle Speaker” “$(date)” qdbus \ com.canonical.indicator.sound \ /org/ayatana/indicator/service \ org.ayatana.indicator.service.Shutdown exit 0 感谢社区的帮助,因为我对DBus没有任何经验。 编辑1 – Takkat找到了一个解决方案,但只能点击一次? 出于某种原因, Takkat提出的解决方案的缺点是, 每个会话只能点击指示器声音中的结果输入一次 。 如果某人有解决方案,请发表评论或回答,您将被投票赞成。 在这里你可以看到结果: 我强烈怀疑这个问题与 /home/confus/.local/share/application/toggleSpeaker.desktop 的.desktop文件有关 ,这是: [Desktop Entry] Type=Application Name=toggleSpeaker GenericName=Toggle Speaker Icon=gstreamer-properties Exec=/home/confus/bin/toggleSpeaker.sh Terminal=false […]

每次特定应用程序发出通知时执行脚本

我搜索了一下安静,但所有的文章和答案只告诉你如何创建自己的通知。 我想要做的是跟踪所有应用程序发出的所有通知,并在每次发出特定通知时执行特定脚本。 我会写我的程序来做这件事。 我需要帮助的是如何“拦截”通知。

在Ubuntu 16.04中挂起命令

在Ubuntu 14.04中,我曾使用以下命令以没有root权限的用户挂起计算机: dbus-send –system –print-reply –dest=”org.freedesktop.UPower” \ /org/freedesktop/UPower org.freedesktop.UPower.Suspend 不幸的是在Ubuntu 16.04中这不再起作用了,我收到一条错误消息: 错误org.freedesktop.DBus.Error.UnknownMethod:没有这样的方法’暂停’ 显然有一些变化,那么现在正确的命令是什么?

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

安装Konquerer并重新启动我的笔记本电脑后,我尝试以终端内的root身份打开,编辑或访问文件时出现以下错误(这对我来说是存在的)。 root @ linuxBox:/ home / v2r # gnome-open /home/ (gnome-open:2686):GConf-WARNING **:客户端无法连接到D-BUS守护程序:// bin / dbus-launchexception终止,出现以下错误:未指定协议自动启动错误:X11初始化失败。 GConf错误: 没有D-BUS守护程序正在运行 root @ linuxBox:/ home / v2r#未指定协议无法解析参数:无法打开显示: 看来,dbus还没有正确安装在/bin/和/usr/bin/查看截图: 我将如何解决这个问题并提前谢谢你?!!! 谢谢你的回答SirCharlo! 它根本无法解决问题。 请注意,它只发生在root! root @ linuxBox:/ home / v2r # gnome-open /home/ (gnome-open:5170):GConf-WARNING **:客户端无法连接到D-BUS守护程序:无法连接到socket / tmp / dbus-2RdCUjrZ9k:连接被拒绝GConf错误:没有运行D-BUS守护程序 root @ linuxBox:/ home / v2r#未指定协议无法解析参数:无法打开显示:

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

我将一个外部屏幕连接到我的笔记本电脑,但我的桌面没有自动扩展到它,就像大约一年前那样(旧版本的Ubuntu)。 我去了显示设置。 屏幕列在那里(正确的分辨率,品牌名称等)。 但当我把开关打开’并’点击’应用’时,我收到此错误: 无法应用配置:%s GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod:在路径/ org / gnome / SettingsDaemon / XRANDR上的对象上没有这样的接口`org.gnome.SettingsDaemon.XRANDR_2′ 几个月以来就是这样,但我真的希望能够再次使用外部屏幕/投影仪。 有任何想法吗? 谢谢。

如何在dbus信号上运行脚本?

是否可以在任意dbus信号上运行脚本? 像Upstart这样以非特权用户身份运行并且不需要root权限进行修改的东西? 我问,因为我已经写了一个愚蠢的脚本, 等待蓝牙事件启动我的音乐播放器 。 现在,当我的机器连接到特定网络或其他设备时,我想做类似的事情。 编辑:我的原始问题没有指定这个,但我的意思是“将一些脚本与一组事件中的一个相关联” – 所以我有同样的启动器(如Upstart)来管理许多脚本,每个都关心不同的dbus信号。 全部在用户空间。