从命令行调用全局快捷方式

从命令行调用全局快捷方式

Ubuntu 22.04

我需要通过 ssh 远程启动 chrome。
我发现我可以使用 dbus 来做到这一点。

我创建了一个全局快捷方式来启动谷歌浏览器。

我在以下位置找到了快捷方式名称qdbusviewer

google_chrome_desktop 

据我所知,我需要使用

qdbus org.kde.kglobalaccel /component/google_chrome_desktop 

但除此之外,我还是搞不懂。
/component/google_chrome_desktop没有列出任何方法,如启动、调用或触发。
一些关于触发快捷方式的旧帖子说invokeShortcut,但我明白了method does not exist

有人能给我提示吗?谢谢。

编辑

我想要一个脚本,当我通过 ssh 连接到该计算机时可以运行该脚本,该脚本将在该计算机上启动 chrome,chrome 将显示在该计算机上。

我可以从计算机上打开的终端执行 google-chrome-stable,chrome 启动时不会出错。如果我尝试在通过 ssh
export DISPLAY=:0
google-chrome-stable连接时执行相同的
操作,我会收到很多错误(身份令牌、钱包、dbus 等),并且我在 chrome 中丢失了 google 身份验证。我假设 ssh 终端与在 kde 环境中启动的 konsole 不同。所以我想找一种方法来让 kde 命令启动 chrome,因此 dbus

答案1

我列出了方法

 qdbus org.kde.kglobalaccel /component/google_chrome_desktop
    property read QString org.kde.kglobalaccel.Component.friendlyName
    property read QString org.kde.kglobalaccel.Component.uniqueName
    signal void org.kde.kglobalaccel.Component.globalShortcutPressed(QString componentUnique, QString shortcutUnique, qlonglong timestamp)
    signal void org.kde.kglobalaccel.Component.globalShortcutReleased(QString componentUnique, QString shortcutUnique, qlonglong timestamp)
    method {D-Bus type "a(ssssssaiai)"} org.kde.kglobalaccel.Component.allShortcutInfos()
    method {D-Bus type "a(ssssssaiai)"} org.kde.kglobalaccel.Component.allShortcutInfos(QString context)
    method bool org.kde.kglobalaccel.Component.cleanUp()
    method QStringList org.kde.kglobalaccel.Component.getShortcutContexts()
    method void org.kde.kglobalaccel.Component.invokeShortcut(QString shortcutName)
    method void org.kde.kglobalaccel.Component.invokeShortcut(QString shortcutName, QString context)
    method bool org.kde.kglobalaccel.Component.isActive()
    method QStringList org.kde.kglobalaccel.Component.shortcutNames()
    method QStringList org.kde.kglobalaccel.Component.shortcutNames(QString context)
    signal void org.freedesktop.DBus.Properties.PropertiesChanged(QString interface_name, QVariantMap changed_properties, QStringList invalidated_properties)
    method QDBusVariant org.freedesktop.DBus.Properties.Get(QString interface_name, QString property_name)
    method QVariantMap org.freedesktop.DBus.Properties.GetAll(QString interface_name)
    method void org.freedesktop.DBus.Properties.Set(QString interface_name, QString property_name, QDBusVariant value)
    method QString org.freedesktop.DBus.Introspectable.Introspect()
    method QString org.freedesktop.DBus.Peer.GetMachineId()
    method void org.freedesktop.DBus.Peer.Ping()

通过这个我得到了 google-chrome 的快捷方式名称

qdbus org.kde.kglobalaccel /component/google_chrome_desktop org.kde.kglobalaccel.Component.shortcutNames
    _launch
    new-window
    new-private-window

然后我启动了谷歌浏览器

qdbus org.kde.kglobalaccel /component/google_chrome_desktop org.kde.kglobalaccel.Component.invokeShortcut "_launch"

相关内容