Нет значка верхней панели Dropbox с момента обновления до 18.04 [dубликат]

Введение

Итак, оказывается, что KDE и GNOME теперь следуют несколько разным соглашениям об именах и метаданных эскизов. Это очень неудачно, так как такие проблемы должны были быть устранены с помощью работы группы бесплатных стандартов.

Я подал Free Standards Group , который, мы надеемся, получит это решение в конечном счете, но пока что миниатюры, созданные KDE и GNOME, к сожалению несовместимы друг с другом.

Скрипт Thumbnailer для преодоления разрыва KDE / GNOME

Чтобы обойти эту несовместимость, я в конце концов изменил скрипт Python, который Джеймс Хенстридж опубликовал в Q & amp; A, связанном с выше. Основное изменение, которое я внедрил, - это функция, которая обновляет генерируемые эскизы, которые должны быть распознаны KDE (путем переименования их и обновления фрагмента метаданных PNG).

Вот приведенный выше сценарий в текущей редакции:

#!/usr/bin/python3

"""
Thumbnail generator for KDE/GNOME

Largely based on a script by James Henstridge
(https://askubuntu.com/a/201997)

Unfortunately there seems to be some disagreement between GNOME and KDE
towards how to follow the XDG specs for saving thumbnails. This script
is meant as a workaround to that issue, generating thumbnails that follow
both specifications.

Dependencies: python3 gir1.2-gnomedesktop-3.0 python-pillow

pillow can be installed with `pip install pillow`

You will also need to have the corresponding thumbnailers installed (e.g.
evince-thumbnailer). KDE thumbnailers are not supported. All previews are
generated through GNOME's thumbnail factory and then made compatible with KDE.

Further references:

Thumbnail specifications in KDE/GNOME:

- https://bugs.kde.org/show_bug.cgi?id=393015
- https://api.kde.org/frameworks/kio/html/previewjob_8cpp_source.html
- https://lazka.github.io/pgi-docs/GnomeDesktop-3.0/classes/DesktopThumbnailFactory.html

Setting PNG metadata:

- http://pillow.readthedocs.io/en/5.1.x/PIL.html#PIL.PngImagePlugin.PngInfo
- https://stackoverflow.com/a/10552742/1708932

Copyright: (c) 2012 James Henstridge 
           (c) 2018 Glutanimate 
License: MIT license
"""

import os
import sys
from hashlib import md5

from PIL import Image
from PIL import PngImagePlugin

import gi
gi.require_version('GnomeDesktop', '3.0')
from gi.repository import Gio, GnomeDesktop

# FIXME: Hardcoding the Thumbnailer to a generic name
#        regardless of MIME type might not always work
KDE_THUMBNAILER = "KDE Thumbnail Generator"


def update_name_and_meta(thumb_path, filename, mtime, mime_type, size):
    print("Making thumb compatible with KDE...")
    abs_path = os.path.abspath(filename)
    # The spaces in our URI are not escaped. This is not in accordance
    # with the URI RFC2396 which is listed in the freedesktop specs,
    # but it's what KDE currently uses 
    # (cf.: https://bugs.kde.org/show_bug.cgi?id=393015)
    kde_uri = "file://" + abs_path  
    kde_md5 = md5(kde_uri.encode("utf-8")).hexdigest()
    thumb_dir = os.path.dirname(thumb_path)
    kde_thumb_path = os.path.join(thumb_dir, kde_md5 + ".png")

    if os.path.exists(kde_thumb_path):
        print("KDE thumb already exists. Skipping")
        return

    im = Image.open(thumb_path)

    # Set PNG metadata chunk
    meta = PngImagePlugin.PngInfo()
    meta.add_itxt("Software", KDE_THUMBNAILER)
    meta.add_text("Thumb::MTime", str(int(mtime)))
    meta.add_text("Thumb::Mimetype", mime_type)
    meta.add_text("Thumb::Size", str(size))
    meta.add_itxt("Thumb::URI", kde_uri)

    im.save(kde_thumb_path, "png", pnginfo=meta)

    # uncomment this to remove GNOME thumbnails:
    # os.remove(thumb_path)


def make_thumbnail(factory, filename):
    mtime = os.path.getmtime(filename)
    # Use Gio to determine the URI and mime type
    f = Gio.file_new_for_path(filename)
    uri = f.get_uri()
    info = f.query_info(
        'standard::content-type', Gio.FileQueryInfoFlags.NONE, None)
    mime_type = info.get_content_type()
    size = info.get_size()

    if factory.lookup(uri, mtime) is not None:
        print("FRESH       %s" % uri)
        return False

    if not factory.can_thumbnail(uri, mime_type, mtime):
        print("UNSUPPORTED %s" % uri)
        return False

    thumbnail = factory.generate_thumbnail(uri, mime_type)
    if thumbnail is None:
        print("ERROR       %s" % uri)
        return False

    factory.save_thumbnail(thumbnail, uri, mtime)

    thumb_path = factory.lookup(uri, mtime)
    update_name_and_meta(thumb_path, filename, mtime, mime_type, size)

    print("OK          %s" % uri)

    return True


def thumbnail_folder(factory, folder):
    for dirpath, dirnames, filenames in os.walk(folder):
        for filename in filenames:
            make_thumbnail(factory, os.path.join(dirpath, filename))


def main(argv):
    factory = GnomeDesktop.DesktopThumbnailFactory()
    for filename in argv[1:]:
        if os.path.isdir(filename):
            thumbnail_folder(factory, filename)
        else:
            make_thumbnail(factory, filename)


if __name__ == '__main__':
    sys.exit(main(sys.argv))

Установка

Скопируйте и вставьте вышеприведенный код в новый файл, выберите подходящий имя для него (например, thumbnailer) и пометить его исполняемым.

Зависимости

Чтобы сценарий работал правильно, вам понадобится привязка python для установленной GNOME. Сценарий также зависит от библиотеки pillow Python, которая может быть установлена ​​через pip.

Следующие команды должны заботиться обо всех зависимостях:

sudo apt install gir1.2-gnomedesktop-3.0 python3-pip
pip3 install pillow

Миниатюры сначала генерируются через фабрику миниатюр GNOME, а затем совместим с KDE. Таким образом, вам все равно нужно будет установить все соответствующие миниатюрные модули GNOME. Собственные миниатюры KDE не поддерживаются. Например: для скрипта, поддерживающего создание миниатюр PDF, вам нужно будет установить evince.

(я бы очень хотел использовать привязки python KDE напрямую, но похоже, что оба pykde4 и pykde5 были оставлены для года).

Использование

Общее использование - это то же самое, что и с любым другим миниатюрным скриптом. Просто вызовите его с файлами или папками, где вы хотите создавать эскизы в качестве аргументов, например:

thumbnailer /home/Documents

Ссылки

Спецификации миниатюр в KDE / GNOME :

https://bugs.kde.org/show_bug.cgi?id=393015 https://api.kde.org/frameworks/kio/html/previewjob_8cpp_source.html https: // lazka. gythub.io/pgi-docs/GnomeDesktop-3.0/classes/DesktopThumbnailFactory.html

Настройка метаданных PNG:

https://bugs.kde.org/show_bug. cgi? id = 393015 https://bugs.kde.org/show_bug.cgi?id=393015
38
задан 9 May 2018 в 14:06

24 ответа

Нашел решение (здесь для Ubuntu 17.10, но отлично работает и для 18.04):

sudo apt remove indicator-application
2
ответ дан 22 May 2018 в 10:51

Нашел решение (здесь для Ubuntu 17.10, но отлично работает и для 18.04):

sudo apt remove indicator-application
2
ответ дан 17 July 2018 в 14:47

Нашел решение (здесь для Ubuntu 17.10, но отлично работает и для 18.04):

sudo apt remove indicator-application
2
ответ дан 20 July 2018 в 14:50

Нашел решение (здесь для Ubuntu 17.10, но отлично работает и для 18.04):

sudo apt remove indicator-application
3
ответ дан 23 July 2018 в 15:46

Нашел решение (здесь для Ubuntu 17.10, но отлично работает и для 18.04):

sudo apt remove indicator-application
3
ответ дан 2 August 2018 в 11:12

Нашел решение (здесь для Ubuntu 17.10, но отлично работает и для 18.04):

sudo apt remove indicator-application
3
ответ дан 3 August 2018 в 09:47

Нашел решение (здесь для Ubuntu 17.10, но отлично работает и для 18.04):

sudo apt remove indicator-application
4
ответ дан 5 August 2018 в 01:08

Я столкнулся с той же проблемой. Я попытался полностью удалить индикатор-приложение-сервис, и, видите, проблема исчезла! Я думаю, что начиная с 16.04 оставляет на моей машине некоторые вещи, связанные с Unity, которые не только устарели, но и препятствуют правильной работе расширения AppIndicator.

Что делать:

sudo apt remove indicator-application
43
ответ дан 6 August 2018 в 17:37

Я столкнулся с той же проблемой. Я попытался полностью удалить индикатор-приложение-сервис, и, видите, проблема исчезла! Я думаю, что начиная с 16.04 оставляет на моей машине некоторые вещи, связанные с Unity, которые не только устарели, но и препятствуют правильной работе расширения AppIndicator.

Что делать:

sudo apt remove indicator-application
45
ответ дан 8 August 2018 в 21:49

Я столкнулся с той же проблемой. Я попытался полностью удалить индикатор-приложение-сервис, и, видите, проблема исчезла! Я думаю, что начиная с 16.04 оставляет на моей машине некоторые вещи, связанные с Unity, которые не только устарели, но и препятствуют правильной работе расширения AppIndicator.

Что делать:

sudo apt remove indicator-application
46
ответ дан 14 August 2018 в 11:33
  • 1
    Идеальное и постоянное решение, спасибо – rafrsr 25 October 2017 в 17:10
  • 2
    Не работал в моем случае .... – Tyler Durden 26 October 2017 в 11:19
  • 3
    @TylerDurden, вы активировали расширение оболочки Gnome для расширения AppIndicator? Мой способ сделать это аналогичен решению, описанному в askubuntu.com/a/967226/751074 , но постоянный – enolive 26 October 2017 в 19:20
  • 4
    Да, это расширение, похоже, исправило его, но значки больше не находятся внизу. Любая идея, почему они изменили это? – Tyler Durden 28 October 2017 в 11:23
  • 5
    Работала для меня после перезапуска Gnome Shell --- нажмите Alt + f2 и выполните команду r. – Rasmus 12 April 2018 в 10:53

У меня та же проблема с 17.10. По крайней мере, следующая команда помогает здесь вернуть значки до следующей перезагрузки:

killall indicator-application-service

Изменить: это обходное решение работает отлично здесь, без использования какого-либо расширения gnome, такого как «Topicon-plus» или «Kstatusnotifieritem» / appindicator support ".

24
ответ дан 6 August 2018 в 17:37

Ничего из предложенных работ для приложения Shutter в Ubuntu 18.04, поскольку пакет libgtk2-appindicator-perl удален из основного репо. Чтобы включить индикатор затвора в Ubuntu 18.04, установите libappindicator-dev:

libappindicator-dev

и расширение Gtk2 :: AppIndicator perl:

sudo cpan -i Gtk2::AppIndicator

Перезапустите Shutter, его индикатор должен появиться теперь в системный лоток.

0
ответ дан 6 August 2018 в 17:37

Нажмите девять точек на доке.

В поле поиска напишите «tweak». Вы увидите инструменты настройки gnome:

Если у вас его нет, вы можете щелкнуть по нему и открыть центр программного обеспечения.

После этого запустите твики и перейдите к расширениям.

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

0
ответ дан 6 August 2018 в 17:37

Еще одно возможное решение - удалить файл [autorart.desktop] файла Indicator-application. Он установлен в

/etc/xdg/autostart/indicator-application.desktop

Если вы не хотите его удалять, а иногда используете Unity 7. Это заставило Indicator-application не запускаться при входе в систему.

0
ответ дан 6 August 2018 в 17:37

Как предлагается здесь , попробуйте удалить все устаревшие индикаторы, если какой-либо еще присутствует

indicator-application
indicator-appmenu
indicator-bluetooth
indicator-common
indicator-datetime
indicator-keyboard
indicator-messages
indicator-network
indicator-power
indicator-printers
indicator-session
indicator-sound
indicator-transfer
indicator-transfer-download-manager

Просто выполните эту команду в терминале:

sudo apt purge indicator-application indicator-appmenu indicator-bluetooth indicator-common indicator-datetime indicator-keyboard indicator-messages indicator-network indicator-power indicator-printers indicator-session indicator-sound indicator-transfer indicator-transfer-download-manager
4
ответ дан 6 August 2018 в 17:37

У меня та же проблема с 17.10. По крайней мере, следующая команда помогает здесь вернуть значки до следующей перезагрузки:

killall indicator-application-service

Изменить: это обходное решение работает отлично здесь, без использования какого-либо расширения gnome, такого как «Topicon-plus» или «Kstatusnotifieritem» / appindicator support ".

24
ответ дан 8 August 2018 в 21:49

Ничего из предложенных работ для приложения Shutter в Ubuntu 18.04, поскольку пакет libgtk2-appindicator-perl удален из основного репо. Чтобы включить индикатор затвора в Ubuntu 18.04, установите libappindicator-dev:

libappindicator-dev

и расширение Gtk2 :: AppIndicator perl:

sudo cpan -i Gtk2::AppIndicator

Перезапустите Shutter, его индикатор должен появиться теперь в системный лоток.

0
ответ дан 8 August 2018 в 21:49

Еще одно возможное решение - удалить файл [autorart.desktop] файла Indicator-application. Он установлен в

/etc/xdg/autostart/indicator-application.desktop

Если вы не хотите его удалять, а иногда используете Unity 7. Это заставило Indicator-application не запускаться при входе в систему.

0
ответ дан 8 August 2018 в 21:49

Как предлагается здесь , попробуйте удалить все устаревшие индикаторы, если какой-либо еще присутствует

indicator-application
indicator-appmenu
indicator-bluetooth
indicator-common
indicator-datetime
indicator-keyboard
indicator-messages
indicator-network
indicator-power
indicator-printers
indicator-session
indicator-sound
indicator-transfer
indicator-transfer-download-manager

Просто выполните эту команду в терминале:

sudo apt purge indicator-application indicator-appmenu indicator-bluetooth indicator-common indicator-datetime indicator-keyboard indicator-messages indicator-network indicator-power indicator-printers indicator-session indicator-sound indicator-transfer indicator-transfer-download-manager
4
ответ дан 8 August 2018 в 21:49

У меня та же проблема с 17.10. По крайней мере, следующая команда помогает здесь вернуть значки до следующей перезагрузки:

killall indicator-application-service

Изменить: это обходное решение работает отлично здесь, без использования какого-либо расширения gnome, такого как «Topicon-plus» или «Kstatusnotifieritem» / appindicator support ".

24
ответ дан 14 August 2018 в 11:33
  • 1
    Да, в Ubuntu 17.10. Непосредственно после обновления с 17.04 по 17.10 индикаторы были показаны, но после перезагрузки Ubuntu больше нет. С этим верхним рабочим столом я могу вернуть их до следующей перезагрузки. – amDude1848 21 October 2017 в 22:52
  • 2
    Здорово! Теоретически можно автоматически выполнить эту команду при запуске и больше не придется беспокоиться. – pomsky 21 October 2017 в 22:55
  • 3
    Да, спасибо за решение. У меня была такая же идея, и я собираюсь это сделать. :-) – amDude1848 21 October 2017 в 22:57
  • 4
    Да, я использую расширение под названием «Kstatusnotifieritem / appindicator support», но я не уверен, что он работает из-за расширения. Получил этот совет от OMGUbuntu-Website. – amDude1848 21 October 2017 в 23:00
  • 5

Ничего из предложенных работ для приложения Shutter в Ubuntu 18.04, поскольку пакет libgtk2-appindicator-perl удален из основного репо. Чтобы включить индикатор затвора в Ubuntu 18.04, установите libappindicator-dev:

libappindicator-dev

и расширение Gtk2 :: AppIndicator perl:

sudo cpan -i Gtk2::AppIndicator

Перезапустите Shutter, его индикатор должен появиться теперь в системный лоток.

0
ответ дан 14 August 2018 в 11:33

Нажмите девять точек на доке.

В поле поиска напишите «tweak». Вы увидите инструменты настройки gnome:

Если у вас его нет, вы можете щелкнуть по нему и открыть центр программного обеспечения.

После этого запустите твики и перейдите к расширениям.

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

0
ответ дан 14 August 2018 в 11:33
  • 1
    Добавлено два скриншота и лучшее объяснение. Не делал этого раньше, потому что моя система находится на португальском языке, но я думаю, что все равно понятно. – lapisdecor 22 October 2017 в 19:00
  • 2
    Это решение работает и не нужно ничего удалять. Просто использует «Ubuntu Tweak». инструмент. – Ferdinand Prantl 14 November 2017 в 12:36
  • 3
    Я имел в виду «gnome-tweak-tool»; не «ubuntu-tweak», который я написал в комментарии выше. – Ferdinand Prantl 14 November 2017 в 23:37

Еще одно возможное решение - удалить файл [autorart.desktop] файла Indicator-application. Он установлен в

/etc/xdg/autostart/indicator-application.desktop

Если вы не хотите его удалять, а иногда используете Unity 7. Это заставило Indicator-application не запускаться при входе в систему.

0
ответ дан 14 August 2018 в 11:33
  • 1
    Спасибо, это сработало! Я пытался так много вещей, которые не сработали. – Steve 10 September 2018 в 20:48

Как предлагается здесь , попробуйте удалить все устаревшие индикаторы, если какой-либо еще присутствует

indicator-application
indicator-appmenu
indicator-bluetooth
indicator-common
indicator-datetime
indicator-keyboard
indicator-messages
indicator-network
indicator-power
indicator-printers
indicator-session
indicator-sound
indicator-transfer
indicator-transfer-download-manager

Просто выполните эту команду в терминале:

sudo apt purge indicator-application indicator-appmenu indicator-bluetooth indicator-common indicator-datetime indicator-keyboard indicator-messages indicator-network indicator-power indicator-printers indicator-session indicator-sound indicator-transfer indicator-transfer-download-manager
4
ответ дан 14 August 2018 в 11:33

Другие вопросы по тегам:

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