Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Индикатор - системный трей для Unity Ubuntu 14.04 и выше - Indicator Systemtray.  (Прочитано 49731 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн FixNix

  • Автор темы
  • Участник
  • *
  • Сообщений: 208
    • Просмотр профиля


Пользователям Unity, начиная с Ubuntu 14.04, приходится смиряться с почти полностью урезанным треем (значки показываются только от Wine и Java - программ). Конечно тот, кто не хочет лишать себя удобной альтернативы индикаторам — может поставить патченную версию Unity. Но иногда хочется иметь доступ к трею с обычной Unity. Для этого я задумал сделать некий индикатор при нажатии на который появлялся бы трей.

Так как возможности у индикаторов Unity очень ограничены (хотя возможно сказывается нехватка практики), - пришлось поизощряться. В итоге получилось вот что:

Indicator Systemtray Unity



Также есть режим отображения "отдельно от индикатора" - поверх панели на подобии дока.
В этом режиме - положение по горизонтали можно менять - крутя колёсиком мыши над значком индикатора.



Режимы отображения можно менять нажатием средней кнопки мыши (у ноутбука: одновременно нажатием левой и правой клавиши тачпада) над значком индикатора.

Установка в терминале:
sudo apt-add-repository ppa:fixnix/indicator-systemtray-unity
sudo apt-get update
sudo apt-get install indicator-systemtray-unity
Затем необходимо завершить сеанс и снова зайти под своим пользователем.

исходник на GitHub

Для удаления использовать команду:
sudo apt-get --purge remove indicator-systemtray-unityТ.е. желательно удалять пакет полностью, чтобы не оставались конфигурационные файлы.

Как я писал выше, у индикаторов возможности крайне ограничены, поэтому можно было бы виджет трея сделать и более эстетичным. Если кто подскажет: «Как посредством GTK узнать глобальные координаты меню, а также глобальные координаты самого индикатора?» - буду признателен.

Ответы на вопросы:
Как подвинуть трей, если нет возможности прокрутить колёсиком мыши над значком индикатора?
« Последнее редактирование: 23 Ноября 2015, 20:40:50 от FixNix »
ubuntu 16.04 x64 - комп. на работе и ноут дома, Nautilus Nemo (2.8.7) для Unity.
Если хочешь сделать что-то хорошо, сделай это сам.

Оффлайн Freezeman

  • Активист
  • *
  • Сообщений: 637
  • Xubuntu 14.04.2 LTS :: SSD Kingston HyperX Fury
    • Просмотр профиля

Оффлайн difry

  • Участник
  • *
  • Сообщений: 116
    • Просмотр профиля
    • dmitryfry
Есть ли какая то возможность чтобы иконки все время отображались, но при этом во время просмотра полноэкранного видео их не было видно?

Оффлайн FixNix

  • Автор темы
  • Участник
  • *
  • Сообщений: 208
    • Просмотр профиля
Цитировать
Есть ли какая то возможность чтобы иконки все время отображались, но при этом во время просмотра полноэкранного видео их не было видно?
difry,
Да, хочу сделать такую доработку.
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 18 Апреля 2015, 20:17:31 от FixNix »
ubuntu 16.04 x64 - комп. на работе и ноут дома, Nautilus Nemo (2.8.7) для Unity.
Если хочешь сделать что-то хорошо, сделай это сам.

Оффлайн difry

  • Участник
  • *
  • Сообщений: 116
    • Просмотр профиля
    • dmitryfry
Цитировать
Есть ли какая то возможность чтобы иконки все время отображались, но при этом во время просмотра полноэкранного видео их не было видно?
difry,
Да, хочу сделать такую доработку.
(Нажмите, чтобы показать/скрыть)

Буду благодарен, потому что колдовать с обновлениями каждый раз чтобы обычный трей вернуть надоело. А это единственный минус который я пока нашел в твоем твике.

Оффлайн Labudinets

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Спасибо, бро!

Специально зарегался, чтоб сказать тебе это.

Оффлайн sitestyler

  • Участник
  • *
  • Сообщений: 164
    • Просмотр профиля
Автор - от души спасибо!

Оффлайн ivsatel

  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
FixNix,
Если правильно понял вопрос то вот так можно:
Код: (python) [Выделить]
from gi.repository import Gtk
from gi.repository import AppIndicator3 as appindicator

def menuitem_response(menuitem, menu, *args):
    print(args)
    win = menuitem.get_root_window()
    print('X:', win.get_pointer()[1], 'Y:', win.get_pointer()[2])

if __name__ == "__main__":
    ind = appindicator.Indicator.new ("example-simple-client", "indicator-messages", appindicator.IndicatorCategory.APPLICATION_STATUS)
    ind.set_status (appindicator.IndicatorStatus.ACTIVE)
    ind.set_attention_icon ("indicator-messages-new")

    menu = Gtk.Menu()

    for i in range(3):
        buf = "Test-undermenu - %d" % i
        menu_items = Gtk.MenuItem(buf)
        menu.append(menu_items)
        menu_items.connect("activate", menuitem_response, menu, buf)

        menu_items.show()

    ind.set_menu(menu)

Gtk.main()

Оффлайн FixNix

  • Автор темы
  • Участник
  • *
  • Сообщений: 208
    • Просмотр профиля
Labudinets,
Цитировать
Спасибо, бро!
sitestyler,
Цитировать
Автор - от души спасибо!
Спасибо за оценку, рад что пригодился индикатор.

Freezeman,
Цитировать
Так меню разве не окно?
http://www.pygtk.org/pygtk2reference/class-gtkwindow.html#method-gtkwindow--get-position
Для окна get-position - работает, для меню - выдаёт что-то странное.

ivsatel,
Цитировать
def menuitem_response(menuitem, menu, *args):
    print(args)
    win = menuitem.get_root_window()
    print('X:', win.get_pointer()[1], 'Y:', win.get_pointer()[2])
Я, так понимаю, этот код отслеживает позицию курсора мыши.
Мне же нужны точные глобальные координаты меню индикатора, чтобы исходя из его положения центровать окно с системным трейем. Сейчас же появление окна с трейем зависит от положение курсора, что не всегда эстетично выглядит.
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 30 Апреля 2015, 19:56:51 от FixNix »
ubuntu 16.04 x64 - комп. на работе и ноут дома, Nautilus Nemo (2.8.7) для Unity.
Если хочешь сделать что-то хорошо, сделай это сам.

Оффлайн Freezeman

  • Активист
  • *
  • Сообщений: 637
  • Xubuntu 14.04.2 LTS :: SSD Kingston HyperX Fury
    • Просмотр профиля
Freezeman,
Цитировать
Так меню разве не окно?
http://www.pygtk.org/pygtk2reference/class-gtkwindow.html#method-gtkwindow--get-position
Для окна get-position - работает, для меню - выдаёт что-то странное.

Ну, там вроде написано, что значения не всегда могут быть верными, и стоит поиграться с gtk.gdk.GRAVITY_STATIC.

Оффлайн FixNix

  • Автор темы
  • Участник
  • *
  • Сообщений: 208
    • Просмотр профиля
Ну, там вроде написано, что значения не всегда могут быть верными, и стоит поиграться с gtk.gdk.GRAVITY_STATIC.
Жаль, но похоже оно не работает для меню. Смена GRAVITY ничего не меняет. По X - постоянно даёт, то 0, то 1. По Y - почему-то показывает координату Y курсора мыши.

Пользователь решил продолжить мысль [time]20 Апрель 2015, 23:47:39[/time]:
Исправил для полноэкранного отображения.
Можно обновится.

P.S.: Отпишитесь если появилась регрессия.
« Последнее редактирование: 30 Апреля 2015, 19:57:36 от FixNix »
ubuntu 16.04 x64 - комп. на работе и ноут дома, Nautilus Nemo (2.8.7) для Unity.
Если хочешь сделать что-то хорошо, сделай это сам.

Оффлайн gdd71

  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Цитировать
Исправил для полноэкранного отображения.
Можно обновится.
Спасибо большое.. мне тоже заморачивался этот вопрос.. :)
Теперь все в порядке..очень полезное дополнение, вы создали.
Удачи вам. :)

Оффлайн difry

  • Участник
  • *
  • Сообщений: 116
    • Просмотр профиля
    • dmitryfry
Отлично, теперь о проблеме с трее можно забыть птьфу птьфу птьфу.

Оффлайн RayEagle

  • Любитель
  • *
  • Сообщений: 75
    • Просмотр профиля
нажимаю среднюю кнопку мыши, и все индикаторы улетают влево за край экрана. Выставляется только хвостик  :-[

Оффлайн difry

  • Участник
  • *
  • Сообщений: 116
    • Просмотр профиля
    • dmitryfry
нажимаю среднюю кнопку мыши, и все индикаторы улетают влево за край экрана. Выставляется только хвостик  :-[
ну так наведи мышку на иконку индикатора и колесиком покрути в нужную сторону.

Пользователь решил продолжить мысль 25 Апреля 2015, 01:48:27:
Единственное что щас немного напрягает, когда количество иконок в системном трее меняеться они залазят под индикаторный трей, просто я его рядом подкручиваю, чтобы выглядело гармонично, но врят ли что то можно с этим сделать, либо полностью концепцию менять.
« Последнее редактирование: 25 Апреля 2015, 01:48:27 от difry »

 

Страница сгенерирована за 0.065 секунд. Запросов: 23.