Как найти нужный destination от dbus формата 1.XXXX

у меня есть небольшой скрипт который отправляет приложению сообщение чтобы оно воспользовалось своим методом и скрылось в трей, оно работает, но мне нужно чтобы нужный мне 1.XXXX адрес подбирался сам, ведь после перезагрузки приложения он меняется и приходится его опять искать через dbus-monitor, если что он выводит такое при нажатии на иконку трея и нажатии кнопки скрытия

method call time=1743182035.924162 sender=:1.34 -> destination=:1.153 serial=2582 path=/com/canonical/dbusmenu; interface=com.canonical.dbusmenu; member=Event
   int32 0
   string "opened"
   variant       int32 0
   uint32 0
method return time=1743182035.925054 sender=:1.153 -> destination=:1.34 serial=27 reply_serial=2582
method call time=1743182897.140458 sender=:1.34 -> destination=:1.153 serial=2971 path=/com/canonical/dbusmenu; interface=com.canonical.dbusmenu; member=Event
   int32 1
   string "clicked"
   variant       int32 0
   uint32 1643082
method return time=1743182897.142979 sender=:1.153 -> destination=:1.34 serial=36 reply_serial=2971
method call time=1743182897.148908 sender=:1.34 -> destination=:1.153 serial=2972 path=/com/canonical/dbusmenu; interface=com.canonical.dbusmenu; member=Event
   int32 0
   string "closed"
   variant       int32 0
   uint32 0
method return time=1743182897.149110 sender=:1.153 -> destination=:1.34 serial=37 reply_serial=2972


#!/bin/bash

APP_CLASS="deepseek-desktop"
APP_COMMAND="deepseek-desktop"
DBUS_DEST=":1.153"  # Замените на актуальный destination, если он изменится
DBUS_PATH="/com/canonical/dbusmenu"
DBUS_INTERFACE="com.canonical.dbusmenu"
MENU_ITEM_ID=1  # ID для "Show/Hide DeepSeek"

# Устанавливаем DISPLAY
[ -z "$DISPLAY" ] && export DISPLAY=:0

# Проверяем, существует ли окно или процесс
if xdotool search --class "$APP_CLASS" > /dev/null 2>&1; then
    # Отправляем DBus-сообщение для переключения Show/Hide
    dbus-send --session --type=method_call --dest="$DBUS_DEST" "$DBUS_PATH" "$DBUS_INTERFACE.Event" int32:"$MENU_ITEM_ID" string:"clicked" variant:int32:0 uint32:$(date +%s)
else
    # Запускаем приложение, если его нет
    $APP_COMMAND &
fi

Ответы (0 шт):