LINUX.ORG.RU

Допилил крысоглобалменю.

 , , , ,


9

5

Итак, второй новостной пост о крысоглобалменю.

Github AUR

Зависимости (все есть в официальных репах арча):

  • gtk3
  • bamf
  • libwnck (опционально)
  • xfce4-panel
  • CMake (сборка)
  • Vala (сборка)

Для отображения меню надо:

  • unity-gtk-module (Пакет по ссылке работает с непатченными GTK)
  • appmenu-qt (в официальных репах арча)
  • appmenu-qt5 (в aur)

Ничего больше не надо. Спокойно портируется в любой дистр (только для unity-gtk-module патч утащите из пакета)

Чем лучше topmenu?

  • Сериализует меню => внешний вид меню одинаков
  • Получает все преимущества третьегнома и убунтовых фиксов без ubuntu
  • Хорошо работает с gtk3, qt, qt5, libreoffice и chromium (с лисом запарка пока, но она вроде и в topmenu запарка)
  • Может работать без wnck и x11 (если кто-то напишет bamf для wayland, что не так сложно, ибо dbus, может даже сам возьмусь на основе mutter)

Чем хуже?

  • Нет плагина для mate (может сделаю)
  • Нет сетевой и пользовательской прозрачности by design (о меню рутового ФМ можно не мечтать)

Как устанавливать в арче:

  • Ставим сам плагин
  • Ставим нужные optdepends
  • После установки unity-gtk-module может пропасть меню - это нормально (а если меню не пропало - нужно перелогиниться, меню пропадет и unity-gtk-module включится)
  • Добавляем апплет на панель - меню теперь там. (если ничего не появилось - смело пишите баг)
  • Для скрытия меню в Gtk3 надо в .config/gtk-3.0/settings.ini дописать строки:
    gtk-shell-shows-app-menu=true
    gtk-shell-shows-menubar=true
    
  • Для показа меню в Gtk2 зайти в dconf-editor и выключить com.canonical.unity-gtk-module.gtk2-shell-shows-menubar
★★

Ответ на: комментарий от Athor

Собрал, установил, ререлогинился и никаких изменений и менюшек не видно. Может из-за Xfce-4.12 ?

superuser ★★ ()
Ответ на: комментарий от superuser

Скриншот хочу. 4.12 тут не причем, оно с ним именно работает.

Athor ★★ ()
Ответ на: комментарий от superuser

Без скриншота я не смогу понять, что именно не работает и где.

Athor ★★ ()
Ответ на: комментарий от superuser

Прибей панель и запусти ее в терминале как PANEL_DEBUG=gdb xfce4-panel

Вывод пришли сюда.

Athor ★★ ()
Ответ на: комментарий от superuser

Поставь пакет bamfdaemon и перезапусти панель с дебагом.

Athor ★★ ()
Ответ на: комментарий от superuser

Теперь перелогинься и смотри, что будет. Пиши, с чем работает, а с чем нет. Обо всем рапортуй мне, я через пару часов погляжу.

Athor ★★ ()
Ответ на: комментарий от Athor

и попробуй export GTK_MODULES=unity-gtk-module thunar. Пришли скрин сего.

Athor ★★ ()
Ответ на: комментарий от superuser

сам unity-gtk-module стоит? Какие пакеты от него? Про Gtk-ные - попробуй file-roller. Меню есть?

Athor ★★ ()
Ответ на: комментарий от Athor
$ dpkg -l unity-gtk-modul*
...
ii  unity-gtk-module-common   0.0.0+14.04.20141212-0ubuntu1  all Common files for GtkMenuShell D-Bus exporter

file-roller - меню в приложении

superuser ★★ ()
Ответ на: комментарий от Athor

стоят

ii  unity-gtk-module-common  0.0.0+14.04.20141212-0ubuntu1  all    Common files for GtkMenuShell D-Bus exporter
ii  unity-gtk2-module:i386   0.0.0+14.04.20141212-0ubuntu1  i386   GtkMenuShell D-Bus exporter
ii  unity-gtk3-module:i386   0.0.0+14.04.20141212-0ubuntu1  i386   GtkMenuShell D-Bus exporter

superuser ★★ ()
Ответ на: комментарий от superuser

file-roller отличается тем, что он и без unity-gtk-module умеет экспортировать меню. Потому и спрашивал. Если так же - то это странно. Сделай xprop на любое окно thunar и кинь сюда.

Athor ★★ ()
Ответ на: комментарий от superuser

Понятно. У тебя topmenu стоит? Тогда:

  • Сделай xprop на меню в thunar (именно на меню)
  • Сделай xprop на GTK_MODULES=unity-gtk-module xfce4-terminal на сам терминал
  • Сделай xprop на GTK_MODULES=unity-gtk-module xfce4-terminal на меню
  • Сравни и скажи, одинаковы ли xprop у терминала и меню (вывод только в 1 надо)
Athor ★★ ()
Ответ на: комментарий от Athor

xfce4-topmenu-plugin стоял, но снёс, остались зависимости.

Сделай xprop на меню в thunar (именно на меню)

http://pastebin.com/bbnSXDzu

Сделай xprop на GTK_MODULES=unity-gtk-module xfce4-terminal на сам терминал

http://pastebin.com/7jdv8sni

Сделай xprop на GTK_MODULES=unity-gtk-module xfce4-terminal на меню

идентично с предыдущим

superuser ★★ ()
Ответ на: комментарий от superuser

Зависимости все удали, ибо они не дают нормально работать unity-gtk-module (у окна нет свойства _GTK_UNIQUE_BUS_NAME)

Athor ★★ ()
Ответ на: комментарий от superuser

Скинь папку debian, я в виртуалке отлажу и выложу готовый deb пакет. А то так долго будем биться с бубунтой и портировать.

Athor ★★ ()
Ответ на: комментарий от superuser

Тогда жди, как напишу спеку, она появится в репе на гитхабе

Athor ★★ ()
Ответ на: комментарий от superuser

Напиши-ка себе в .profile вот это:

export UBUNTU_MENUPROXY=1
export GTK_MODULES=unity-gtk-module:$GTK_MODULES

да перелогинься. Желательно с последней ревизией.

Athor ★★ ()
Ответ на: комментарий от Athor

Ура! Gtk приложения стали показывать меню в плагине. Но, в самих приложениях, меню тоже отображается.

superuser ★★ ()
Ответ на: комментарий от Athor
$ cat .config/gtk-3.0/settings.ini cat .gtkrc cat .gtkrc-2.0
[Settings]
gtk-shell-shows-app-menu=true
gtk-shell-shows-menubar=true
cat: cat: Нет такого файла или каталога
cat: .gtkrc: Нет такого файла или каталога
cat: cat: Нет такого файла или каталога
cat: .gtkrc-2.0: Нет такого файла или каталога

Файла .config/gtk-3.0/settings.ini тоже небыло, сам создал.

superuser ★★ ()
Ответ на: комментарий от Athor

export UBUNTU_MENUPROXY=1

кстати без этой переменной тоже работает

superuser ★★ ()
Ответ на: комментарий от superuser

.gtkrc и .gtkrc-2.0 тоже создай, и запиши туда эти же строки, что и в settings.ini

Athor ★★ ()
Ответ на: комментарий от Athor

Кстати file-roller показывает меню нормально - только в плагине.

.gtkrc и .gtkrc-2.0 тоже создай, и запиши туда эти же строки, что и в settings.ini

Безрезультатно - Thunar меню и в приложении и в плагине.

superuser ★★ ()

и еще вот что стало происходить

barin@PCB:~$ xfce4-appearance-settings
Gtk-Message: (for origin information, set GTK_DEBUG): failed to retrieve property `gtk-shell-shows-menubar' of type `gboolean' from rc file value "((GString*) 0xb85ad940)" of type `gboolean'

(xfce4-appearance-settings:9374): GLib-ERROR **: /build/buildd/glib2.0-2.40.2/./glib/gmem.c:133: failed to allocate 2048 bytes
Ловушка трассировки/останова (сделан дамп памяти)
barin@PCB:~$ xfce4-appearance-settings
Gtk-Message: (for origin information, set GTK_DEBUG): failed to retrieve property `gtk-shell-shows-menubar' of type `gboolean' from rc file value "((GString*) 0xb8a40940)" of type `gboolean'

(process:9393): GLib-ERROR (recursed) **: (NULL) messageАварийный останов (сделан дамп памяти)
barin@PCB:~$ xfce4-appearance-settings
Gtk-Message: (for origin information, set GTK_DEBUG): failed to retrieve property `gtk-shell-shows-menubar' of type `gboolean' from rc file value "((GString*) 0xb8fad940)" of type `gboolean'

GLib-ERROR **: (NULL) message
Ловушка трассировки/останова (сделан дамп памяти)
barin@PCB:~$ xfce4-appearance-settings
Gtk-Message: (for origin information, set GTK_DEBUG): failed to retrieve property `gtk-shell-shows-menubar' of type `gboolean' from rc file value "((GString*) 0xb77fa940)" of type `gboolean'

(process:9405): GLib-ERROR (recursed) **: (NULL) messageАварийный останов (сделан дамп памяти)
незнаю, плагин так повлиял или что-то другое

superuser ★★ ()
Ответ на: комментарий от Athor

во! Заработало. Но xfce4-appearance-settings что-то падает и не даёт тему сменить.

superuser ★★ ()
Ответ на: комментарий от superuser

У меня не падает. Если опасаешься, что из-за .gtkrc - выпили из этих файлов gtk-shell-shows-app-menu=1. Это не повлияет (из settings.ini выпиливать не надо)

Athor ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.