LINUX.ORG.RU

О глобальном меню

 , ,


0

3

Здравствуйте! Заинтересовал вопрос глобального меню в GNU/Linux. Я разрабатываю окружение рабочего стола (уже не раз здесь упоминал свой проект) и хотелось бы добавить данный функционал. Но я столкнулся с отсутствием нормальной документации по libdbusmenu, в частности, спецификации DBusMenu. +, как я вижу, проект заброшен, да и далеко не все программы экспортируют своё меню, используя этот стандарт.

Вопрос такой. Имеет ли смысл написать с нуля свою библиотеку, реализующую функционал глобального меню (как серверную, так и клиентскую часть) и удастся ли хоть как-нибудь её распространить среди Open Source проектов (допускаю необходимость делать коммиты самому), если она, например, будет написана на чистом C, и также будет опционально иметь биндинги с Qt, GTK, версию на Python и т.д.? Суть в том, чтобы предоставить нормальную документацию по этой библиотеке и сделать её каким-никаким, но стандартом.

Либо же этим всем заниматься не стоит и лучше таки освоить имеющийся стандарт DBusMenu, и как-то оживить libdbusmenu?

Спасибо.


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

Специально сейчас на виртуалку кеды поставил. Во многих приложениях глобальное меню не работает. Работает в Qt Creator, element-desktop, LibreOffice, Okular, KeePassXC, OBS, VLC, CopyQ, но не работает в GIMP, virt-manager, pcmanfm, FileZilla, Leafpad, Nemo. Это ещё я не говорю про Firefox, который известно, что без патча не умеет в глобальное меню. Тоже не идеальный вариант. По-хорошему, этот функционал должен быть включен в GTK и Qt по умолчанию, чтобы заниматься глобальным меню не было задачей программы, но, к сожалению, это не так.

P.S. перед тестами поставил пакеты libdbusmenu-qt5, libdbusmenu-gtk3, libdbusmenu-gtk2, но ситуацию это не изменило.

В итоге, можно сделать реализацию org.canonical.appmenu, как в KDE, например, но работать это будет далеко не везде. По совершенно не понятной мне причине стандарта Freedesktop на глобальное меню не существует, а те стандарты, что были, не всегда используются даже в достаточно популярных программах +, по факту, не имеют документации. Собственно, поэтому и хочется сделать все с нуля, по-человечески и попытаться распространить новый стандарт (еще раз повторю, я готов для этого делать коммиты в Open Source проекты сам).

С другой стороны, с таким же успехом можно разобраться в имеющемся стандарте (org.canonical.appmenu), написать к нему адекватную документацию и распространять его. Пожалуй, это будет разумнее, чем плодить стандарты

thm
() автор топика
Последнее исправление: thm (всего исправлений: 6)
Ответ на: комментарий от thm

По совершенно не понятной мне причине стандарта Freedesktop на глобальное меню не существует

Просто это никому не нужно. Странно, что тебе это непонятно. Меню вообще не нужно в качестве постоянного элемента интерфейса, многие программы умеют его скрывать и показывать по клавише Alt. Другой вариант - спрятать его в бургер. Так себе идея, но лучше, чем global menu.

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

Меню вообще не нужно в качестве постоянного элемента интерфейса

Гномосек или работаешь в соснольке? Предложи спрятать меню или засунуть его в дебилоидный гамбургер в офисных пакетах или САПРах, узнаешь о себе много интересного.

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

Предложи для этого использовать глобальное меню тоже самое узнаешь ;) Изначально неудобная для работы вещь если более одного приложения используется, потому и не нашла развития

anonymous
()
Ответ на: комментарий от thm

Если ты посмотришь внимательно, не работает оно в прогах на GTK. Это почти что фишка. Кстати, проверь что ты запустил: в wayland оно для GTK вообще сломано, в иксах ещё кое-как работает. В KDE для Wayland сделан отдельный протокол (https://wayland.app/protocols/kde-appmenu), который естественно в GTK не поддерживается.

В GTK4 классическое меню приложения вообще выпилили, заменив его на бургер-меню.

С другой стороны, с таким же успехом можно разобраться в имеющемся стандарте (org.canonical.appmenu), написать к нему адекватную документацию и распространять его. Пожалуй, это будет разумнее, чем плодить стандарты

Я бы на твоём месте вместо ЛОРа сходил к разрабам KDE либо в их Discourse, либо в рассылку, и спросил про это там. Шансов что тебе опишут ситуацию адекватнее немного больше.

И ещё учти, что у перцев в GTK своё очень альтернативное видение интерфейса. Поэтому им ты это наверняка вообще никак не продашь, что бы ты не делал.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 3)
Ответ на: комментарий от the_real_kinik

Ленточный интерфейс не для этого сделан. Он сделан чтобы MS могла его запатентовать и запретить конкурентам его копировать. Этакий vendor lock-in через всратый интерфейс, чтобы юзеры не пользовались альтернативами.

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

Хз, народ десятилетиями работает на маках с глобальным меню и не жужжит. Линуксу и его адептам такая рыночная доля воркстейшенов и не снилась. Как и наличие профессионального софта для чего угодно. Кроме того, ящетаю, что на экранах небольшого размера (субъективно - до 24") глобальное меню гораздо удобнее традиционного в окне приложения. А если при максимайзе еще и заголовок окна прячется, как это сделано в юнити, то вообще топ.

anonymous
()
Ответ на: комментарий от the_real_kinik

Не зря же там везде ленточный интерфейс.

«Там везде» это где? CATIA, Solidworks, КОМПАС, Maya, 3dsMax, широчайшая линейка продуктов Adobe - с традиционной строкой меню. Ну да, кто-то погнался за модой и впилил ленточный интерфейс вслед за MS, но далеко не все. Вон в LibreOffice сто лет как он есть, толку-то, кто им пользуется вообще. Были странные персонажи, которые МSовские плитки на сайты пихали, странно делать из этого глобальные выводы.

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

Глобальное меню - это и есть «спрятать», при этом не вредя САПРам, но до гномосеков не доходит. Епл что то подсыпает для разжижения мозгов, потому что сами от глобального меню не отказываются. Гамбургер не нужен, а ЦСД никак не мешает

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

А если при максимайзе еще и заголовок окна прячется, как это сделано в юнити, то вообще топ.

У меня в KDE так и сделано. Работает прекрасно.

Но основная писечка с этим экспортом меню не в этом. Основная писечка – HUD. Убунтоиды пытались сделать это, но не дотянули. Представь, что ты в любой проге можешь нажать хоткей и вызвать строку поиска функции, потому что они все экспортированы через меню. Как в VSCode/Emacs и т.д., но только вообще в любой проге.

cc @the_real_kinik см выше. Ленточное меню сосёт в сравнении с простым поиском.

hateyoufeel ★★★★★
()
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от anonymous

Я не в ответе за криворуких чсвшных обезьян, которые называют себя программистами. Гоните их, насмехайтесь над ними до тех пор, пока они не начнут делать свою работу качественно. Если все же не начнут, наймите таджиков.

anonymous
()
Ответ на: комментарий от DumLemming

Спрятать это спрятать. Чтобы меню не было видно до определенных действий пользователя. В макоси никто ничего не прячет - меню активного окна всегда перед глазами.

anonymous
()
Ответ на: комментарий от the_real_kinik

Ты сказал, что ленточный интерфейс везде. Это наглое вранье. Я думаю, что и в половине нет, если рассматривать каждую категорию прикладного софта отдельно. Плитки из восьмерочки дегенераты тоже хавали и просили добавки, где они сейчас? Ленточный интерфейс такая же дань моде. Бабки и человеко-годы вбухали в это убожество, назад так просто не откатишь.

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

Гномосек или работаешь в соснольке? Предложи спрятать меню или засунуть его в дебилоидный гамбургер в офисных пакетах или САПРах, узнаешь о себе много интересного.

Работаю в офисном пакете, конкретно в LibreOffice Writer и Calc, иногда Impress. Это один из основных моих инструментов в работе. Хочу спрятать меню, ибо оно нужно очень редко. Расскажи мне много интересного. :)

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

Ага и в результате на маках два меню в большинстве приложений одно в панели другое в самом окне приложение

Я не скажу за большинство, но вот в моей старенькой El Capitan всё нормально, меню одно, наверху. Самое смешное, что меню моего DoubleContact тоже встраивается в глобальное и отдельные его элементы даже встраиваются в подходящие пункты верхнего уровня, хотя я никаких специальных действий для этого не предпринимал. Скорее всего, программисты Qt5 постарались, чтобы оно хорошо работало. Вывод — чтобы оно НЕ работало, надо быть ну очень уж криворукой макакой… ну или неправильный тулкит использовать. :)

Вообще, глобальное меню, имхо — лучшее, что есть в макосёвом UI. В остальном я не увидел там ничего прям такого замечательного по сравнению с кедами или виндой.

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

Открой хотя бы фм ,и что на верху окна кнопки функций приложения и пустое место в которое вполне поместилось бы и те пункты что вынесены на панель вот и имеем два меню , и так с большинством программ, или открой два окна разных приложений с которыми надо работать одновременно и глобальное меню становится крайне неудобным. Ни экономии места ни эргономики

anonymous
()