LINUX.ORG.RU

Модифицированная lxpanel + апплет globalmenu

 ,


0

2

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

Список фич, по сравнению с оригинальной панелью задач:

Новые режимы. Оригинальная LXPanel Taskbar имеет два режима отображения окон: классический и группировка окон одного приложения одну кнопку с выпадающим списком. Данный форк добавляет еще два: группировка окон одного приложения рядом на панели, но без слияния в одну кнопку, и режим отображения только кнопки для активного окна. В режиме отображения активного окна обычное поведение левой кнопки мыши (свернуть/восстановить) теряет смысл, поэтому щелчок левой кнопкой мыши открывает теперь контекстное меню окна (аналогично правому).

Улучшение режима группировки. В режиме группировки окна, относящиеся к одному приложению, группируются, только когда таких окон несколько. Если приожение имеет едиснтвенное окно, оно остаётся на панели «как есть», без группы. Такое поведение может вызывать недобства в работе, т.к. не позволяет выработать автоматизм при взаимодействии с панелью: часть объектов панели при щелчке левой кнопкой мыши показывает выпадающее меню, а часть - выполняет переключение на другое окно. Чтобы улучшить ситуацию, была добавлена опция создания групп и для одиночных окон тоже: теперь любой объект панели задач ведет себя одинаковым, предсказуемым образом.

Возможность отключить отображение иконок окон. В LXPanel Taskbar присутствовала возможность отображать иконки с заголовками или только иконки. Этот патч добавляет возможность отображать только заголовки, без иконок.

Закрытие окон в один клик. Добавлена возможность отображать на панели кнопки закрытия окон. Это может быть удобно, например, если ваш оконный менеджер настроен не отображать заголовки окон.

Доступ к контектному меню настройки LXPanel. Поскольку панель задач перехватывает щелчок ПКМ, вызывать её настройки было раньше достаточно не удобно: необходимо щелкнуть по любому другому апплету, который отображает контестное меню панели по ПКМ, открыть общие натсройки панели, а затем оттуда открыть настройки апплета панели задач. Сейчас контекстное меню LXPanel отображается при щелчке ПКМ по панели задач, если при этом удерживать клавишу CTRL.

Внутренние доработки в «ядре» панели. В диалогах конфигурации апплетов добавлена возможность использовать выпадающие списки. В API icon-grid добавлена функция для позиционирования одного элемента после другого.

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

На скриншоте на панели видны следующие апплеты:

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

Больше подробностей о новом таскбаре и исходники можно найти вот тут.

>>> Просмотр (1280x1024, 385 Kb)

★★

Проверено: JB ()

круто конечно, но значки закрытия ИМХО лишние, хорошо, что отключаются.

S-Mage ★★ ()

Наконец-то кто-то допилил панель до хорошего состояния.
Спасибо.

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

tint2 много жрёт.

nkt       6009  0.0  0.3  27696  8016 tty1     S    19:18   0:00 tint2

Если 7.8 Мб это много, то я тогда испанский летчик. Алсо гткшные панели жрут еще больше.

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

> 7.8 Мб

У меня lxpanel показывает 70 метров vsize (из них 50 занимает /usr/share/icons/gnome/icon-theme.cache) и около десяти метров RSS. Но фактически же занятая память при запуске lxpanel увеличивается только на 3-4 метра.

В общем, по-разному можно считать, и цифры будут разные. Очень много факторов влияет.

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

Ога, ога. Ты лучше приведи выхлоп доказывающий твои слова.

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

>У меня lxpanel показывает 70 метров vsize

А нафига vsize смотреть? Этож, если я правильно понял в свое время, всякие кеши и разделяемая память. Основной показатель это как раз резидентная память. Не?

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

> Основной показатель это как раз резидентная память.

Да.

Этож, если я правильно понял в свое время, всякие кеши и разделяемая память.

Скорее, это в целом всё, что наотображено в адресное пространство процесса.

А нафига vsize смотреть?

Да в общем-то и незачем.

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

И таки, в любом случае, tint2 отъедающий 27 метров VIRT'а здесь все равно выигрывает у lxpanel.

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

Не важно это. После удаления /usr/share/icons/gnome/icon-theme.cache занимает 24.

geekless ★★ ()

Круто, молодец.

Коммить в офф репозитории.

neko-sama ()
Ответ на: комментарий от geekless

немного офф, но у меня xfce-panel кушает всего 22мега

q11q11 ★★★★★ ()

Выглядит неплохо, и, на вид, удобно. Что касается кнопок закрытия окон - то мне больше по душе щелчок средней кнопкой мыши по задаче в таскбаре, как в tint2. Думаю, я не одн такой, так что эта опция может быть не лишней.

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

tint2 много жрёт.

Lxpanel жрёт меньше

Ну вы батенька и тро-ло-ло. Выхлоп в студию. У меня, к примеру tint2 отжирает 4 мБ.

Автору респект, нужные фичи добавил, надо бы это в дефолт включить. Насколько я знаю lxde какие-то китайцы пилят.

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

Щито? Какую обоину? Поставь генту, разверни терминал в фуллскрин и запусти емерж - будет тебе анимированная обоина.

Fletch ★★ ()

Привет, хорошее начинание.

Но сразу есть несколько фичреквестов (форкать так форкать)):
1) для апплета «меню приложений» реализовать возможность выбора стороннего приложения предоставляющего функцю меню
2) для апплета «переключатель рабочих мест» реализовать возможность выбора представления: либо так как сейчас, либо в текстовом виде названия рабочих столов
3) для апплета «часы» улучшить отображение календаря - чтобы по повторному клику он скрывался (щас тупо открывает еще один экземпляр)
4) по внешнему виду - при ресайзе высоты панели автоматически производить ресайз значков (причем значки должны быть на 2 пикселя меньше размера панели, например панель 20, значки 18), а то просто тупо режет снизу а не ресайзит.

Ну и вывести все настройки представления списка окон в графику (например не увидел представления «только текст» и «только значки»)

Ах да - не понял как включить кнопку закрытия на итемах окон (в текстовый конфиг не лазил) и пожалуй плюсану за опцию предложенную Axon

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

> для апплета «часы» улучшить отображение календаря - чтобы по повторному клику он скрывался (щас тупо открывает еще один экземпляр)

Не воспроизводится.

по внешнему виду - при ресайзе высоты панели автоматически производить ресайз значков (причем значки должны быть на 2 пикселя меньше размера панели, например панель 20, значки 18), а то просто тупо режет снизу а не ресайзит.

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

Ну и вывести все настройки представления списка окон в графику (например не увидел представления «только текст» и «только значки»)

http://s44.radikal.ru/i105/1106/fd/b8d76665dfff.png

1) для апплета «меню приложений» реализовать возможность выбора стороннего приложения ппредоставляющего функцю меню 2) для апплета «переключатель рабочих мест» реализовать возможность выбора представления: либо так как сейчас, либо в текстовом виде названия рабочих столов

Посмотрю, что можно сделать.

geekless ★★ ()

Если сможешь протолкнуть в апстрим, то, наверное, буду пользоваться.

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

>1) для апплета «меню приложений» реализовать возможность выбора стороннего приложения предоставляющего функцю меню

как ты себе это представляешь? И да, я кажется знаю, какое приложение ты имеешь в виду. Не нужно.

3) для апплета «часы» улучшить отображение календаря - чтобы по повторному клику он скрывался (щас тупо открывает еще один экземпляр)

УМВР, у тебя какой-то странный lxpanel

4) по внешнему виду - при ресайзе высоты панели автоматически производить ресайз значков (причем значки должны быть на 2 пикселя меньше размера панели, например панель 20, значки 18), а то просто тупо режет снизу а не ресайзит.

да, с размером иконок там бида

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

Не воспроизводится.

сорри видимо заглючило. щас в норме.

Там размер иконок в отдельном поле задаётся.

видел, но хотелось бы вместо поля автоматом это делать :)

http://s44.radikal.ru/i105/1106/fd/b8d76665dfff.png

хм, я настраивал через диалог настройки панели... видимо из того диалога и напрямую через ПКМ по апплету открываются разные диалоги :)

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

как ты себе это представляешь? И да, я кажется знаю, какое приложение ты имеешь в виду. Не нужно.

я представляю себе это как обычную текстовую строку в которую вписывается название программы, че сложного?
а вот нужно это или нет - не тебе решать. Это не так сложно в реализации и лишним не будет.

Nomer_Uno ()

Кстати, насчёт размера иконок: однажды был накорявлен вот такой патчик — http://ompldr.org/vN20xMQ
Чтобы иконки не ресайзились из маленьких в большие. В принципе, там же можно прописать, чтобы размер был на 2 пикселя меньше размера панели.

SoulThreads ()

Шикарно, хочу такую же панельку! Ебилды есть?

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

>Это не так сложно в реализации и лишним не будет.

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

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

вот именно потому что не всем оно надо, проще сделать вызов кастомного меню в самой панели (написал туда любое которое тебе нравится и пользуйся, а нет - стандарт рулит). тем более написание плагина к панельке при уже существующем отдельном приложении - новая сущность, которая не нужна, т.к будет полностью копировать функционал приложения, с тем отличием что сможет работать в панельке, следовательно смысла в плагине ноль.
по поводу позиционирования - все опенбоксовские менюшки вылезают относительно курсора, т.е такой ситуации которую ты описал быть не может :)

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

> хм, я настраивал через диалог настройки панели... видимо из того диалога и напрямую через ПКМ по апплету открываются разные диалоги :)

Должен быть один и тот же.

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

> Тем более, что других менюшек подобного рода я не припомню. Не, они существуют, но не у всех есть настройки места вылезания.

О какой именно программе-менюшке вы так спорите-то?

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

> globalmenu в qt приложениях будет работать?

Нет. Насколько мне известно, плагин для qt никто так и не написал. Хотя протокол globalmenu к gtk не привязан.

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

> Ебилды есть?

Пока нет. Адаптируй ebuild от lxpanel и поделись с народом. ;)

geekless ★★ ()

Огромное спасибо за проделанную работу!
Надо будет обязательно попробовать на досуге.
И маленький реквест от меня - возможность изменять в настройках размер иконок в меню программ.
На 5-дюймовом экране с разрешением 800x480 довольно тяжело попадать пальцем в иконки размером 16x16 пикселей.

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

неа, если через настройку панели - там нет комбо-бокса с выбором вариантов отображения итемов приложений и чекбокса про кнопку закрытия

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

> неа, если через настройку панели - там нет комбо-бокса с выбором вариантов отображения итемов приложений и чекбокса про кнопку закрытия

УМВР, не воспроизводится.

geekless ★★ ()

>В режиме отображения активного окна обычное поведение левой кнопки мыши (свернуть/восстановить) теряет смысл

По-моему, в таком режиме сам Taskbar теряет смысл, потому что перестает быть таскбаром. ИМХО, но такую вещь надо было делать как отдельный плагин к LXPanel, а не как режим Taskbar'а. Или с этим есть какие-то технические сложности?

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

> По-моему, в таком режиме сам Taskbar теряет смысл, потому что перестает быть таскбаром. ИМХО, но такую вещь надо было делать как отдельный плагин к LXPanel, а не как режим Taskbar'а. Или с этим есть какие-то технические сложности?

У них процентов 60 кода будут одинаковы. Фактически, весь код, который и организует работу с окнами. А также частично дублированные настройки и т.п. И при использовании с таскбаром будут два разных модуля сидеть в памяти вместо одного. А разделяемую библиотеку для такой мелочи пилить - и вовсе оверкил.

Так что гораздо проще и логичнее сделать специальный режим у самого таскбара. Кроме того, тут вот подсказывают, что можно повесить на ЛКМ выпадающий список со всеми окнами - на сенсорном экране будет удобно. Так что это скорее всё же особая панель задач, нежели отдельный апплет.

geekless ★★ ()

Довольно удобные хаки.

Автор молодец.

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

пруф
слева вызвано с помощью ПКМ по апплету
справа вызвано из диалога настройки/добавления апплетов

Nomer_Uno ()

Огромное спасибо автору за проделанную работу. Собрал, буду пользоваться, правда без глобального меню. Заодно по-быстрому написал PKGBUILD и добавил его в AUR. Так что все желающие: yaourt -S lxpanelx.

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

Спасибо.

pkgname=lxpanelx

pkgver=4



Т.к. собирается из svn, насколько я понимаю арчевскую систему обозначений, пакет должен называться lxpanelx-svn. А то получается по смыслу «релизная версия 4.0».

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

AgiliaLinux Current x86_64
gtk+2-2.24.3
glib-1.2.10
glib2-2.28.0
При работе сообщений нет.
Пакет собирал сам и являюсь его мейнтейнером в этой системе :)

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

А, ну да, извиняюсь. Поторопился. Исправил. Теперь lxpanelx-svn.

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