Dropbox AppIndicator Меню не работает в gnome-flashback

11

Проблема

Разбитое меню Dropbox как аппендикатор в gnome-flashback

Это неработающий индикатор Dropbox в gnome-flashback на Ubuntu 16.04.1. (Версия Dropbox: x86_64-9.4.94)



Рабочее меню Dropbox в Unity

Как видно из рисунка, в Unity он работает нормально. Но как я могу получить это в gnome-flashback (как appindicator)?




Обходной путь

введите описание изображения здесь

Когда я заставляю Dropbox показывать себя как старомодный значок систрея 1, меню становится доступным.




Открытые вопросы

  • Что убеждает Dropbox представить цветную иконку в gnome-flashback, когда он работает как appindicator? Как индикатор это черно-белый в Unity.
  • Могу ли я обмануть Dropbox, чтобы поверить, что он работает под Unity? Можно ли принудительно включить «режим аппендикатора»?
  • Что-то не так в коде Dropbox, который не может правильно определить между systray / appindicator? Этот цветной значок выглядит как результат наполовину систрея, наполовину аппендикатора ...



1 Вы можете принудительно переключить Dropbox в «режим systray», запустив его dbus-launch dropbox startили DBUS_SESSION_BUS_ADDRESS= dropbox startвместо того, чтобы запускать его с простым текстом dropbox start.

Роберт Симер
источник
Дополнение: Если у вас есть та же самая проблема для Steam, некоторые советы, как ее решить, находятся здесь: github.com/ValveSoftware/steam-for-linux/issues/4795 Для меня sudo apt install libdbusmenu-gtk4:i386помог решить проблему со значком steam.
Песчу

Ответы:

9

Могу ли я обмануть Dropbox, чтобы поверить, что он работает под Unity? Можно ли принудительно включить «режим аппендикатора»?

Да, ты можешь! Эксперименты показывают, что Dropbox (или связанный) ищет переменную среды XDG_CURRENT_DESKTOP, стандартную вещь freedesktop.org, отражающую имя используемой среды рабочего стола. Установите его Unityи Dropbox станет нормальным. (Я пробовал другие разумные значения, но результаты были хуже.)

Будет несколько способов установить эту переменную в Dropbox. Я решил отредактировать скрипт интерфейса командной строки /usr/bin/dropboxиз nautilus-dropboxпакета, чтобы всегда перезаписывать эту переменную. Добавьте эту строку после импорта. Он также будет работать для «Запуск Dropbox при запуске системы»:

os.environ['XDG_CURRENT_DESKTOP'] = 'Unity'
Роберт Симер
источник
Добавление [редактирование не разрешено через 5 минут]: оно работало, но только для сеансов gnome-flashback [metacity], но не для сеансов gnome-flashback [compiz]!
Песчу
1
Да. Этот сделал трюк с метагородом Ubuntu 16.04. Благодарность!
webbertiger