Gnome: Можно ли получить каждый экземпляр приложения, связанный со значком, который использовался для его запуска?

Все, что я вижу, говорит мне, что двоичный файл unameпросто делает системный вызов uname() для получения информации, так что это может быть сложнее, чем вы хотите. Если вы готовы реализовать некоторый JNI, я бы рекомендовал сделать это и выдать системный вызов. Ближайший ценный псевдофайл из /proc, который я могу найти, это /proc/sys/kernel/osrelease, который в моей системе имеет содержимое 4.2.3-300.fc23.x86_64. Это будет меняться с версиями, и может сильно меняться между версиями Linux, поэтому это может быть не так надежно, как вам нужно.

0
12.05.2019, 00:01
1 ответ

Я нашел решение. Поскольку «org.gnome.Terminal» звучит как имя службы шины D -, я просмотрел системный журнал после открытия терминала. Важная часть:

dbus -демон :Активация через systemd :service name='org.gnome.Terminal' unit='gnome -terminal -server.service'

Я предположил, что создание новой службы с именем «org.gnome.Terminal.XXX» и переименование файла.desktop для машины XXX в «org.gnome.Terminal.XXX.desktop» поможет, но на самом деле, имя файла.desktop не имеет значения. Шаги следующие:

  1. Создать новый D -Автобусное сообщение
    • sudo cp /usr/share/dbus-1/services/org.gnome.Terminal{,.XXX}.service
    • Изменить записи
      • Name=org.gnome.Terminal.XXX
      • SystemdService=gnome-terminal-server-XXX.service
      • Exec=/usr/lib/gnome-terminal/gnome-terminal-server --app-id org.gnome.Terminal.XXX
  2. Создать новый блок Systemd
    • sudo cp /usr/lib/systemd/user/gnome-terminal-server{,-XXX}.service
    • Изменить записи
      • Description=GNOME Terminal Server XXX
      • BusName=org.gnome.Terminal.XXX
      • ExecStart=/usr/lib/gnome-terminal/gnome-terminal-server --app-id org.gnome.Terminal.XXX
  3. Обновить файл.desktop
    • Exec=gnome-terminal --window-with-profile=XXX --app-id org.gnome.Terminal.XXX

Параметр --app-idимеет решающее значение для использования имени нашей службы вместо встроенного -в одном.

1
28.01.2020, 02:40

Теги

Похожие вопросы