LINUX.ORG.RU

Модифицированная LXPanel

 , ,


0

2

На скрине пропатченная LXPanel, над которой я сейчас работаю. Решил немного доделать Taskbar для неё:

Во-первых, добавить режим «Отображать только кнопку активного окна». Мне все названия окон видеть не нужно, зато видеть полное название активного кона - желательно. А когда кнопок несколько, оно может не уместиться целиком на кнопку.

Во-вторых, добавить непосредственно на сами кнопки окон мелкие кнопки для закрытия окна (и возможно, для сворачивания-разворачивания). Получается довольно симпатично - в уже привычном всем стиле табов браузера/терминала/whatever.

Первая доработка тривиальна, с ней проблем не возникло. Результат можно увидеть здесь. А вот кнопки закрытия пока не работают. Дело в том, что плашка для окна рисуется при помощи GtkToggleButton. GtkToggleButton является контейнером, в него, например, можно добавить иконку и label. Но попытка добавить в него вложенную кнопку приводит к тому, что эта вложенная кнопка не работает. Пляски с Event Box и прочими костылями пока не помогли. Видимо, придётся переделывать весь таскбар, выкинув из него GtkToggleButton-ы полностью.

Так что если кто-нибудь знает, как можно малой кровью заставить работать кнопку-в-кнопке, пишите в комментах. Функция task_build_gui в файле src/plugins/taskbar.c (версия программы - 0.5.6) - это если у кого-то возникнет желание покопаться, копать можно оттуда.

В-третьих, режим отображения «только иконки, без подписей» у этой панели есть, а вот обратный надо будет сделать. Мне нужно видеть только название окна, а иконка не нужна. :)

Почему именно эту панель взял на опыты: простые и понятные исходники + низкие системные требования. При этом, уже довольно функциональна, надо только чуток допилить, и станет идеальна.

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

Также думаю покопаться в исходниках globalmenu на предмет, можно ли его оформить как плагин к LXPanel. Собственно, ради использования вместе с ним, этот патч и пишется. Будет одна удобная панель с меню активного окна, его заголовокм и кнопкой закрытия + трей.

P.S.

Пилю всё это на свежеустановленной Генте, т.к. решил окончательно мигрировать с Арча. Ну а это, в свою очередь, послужило толчком окончательно порвать с gnome и запилить раз и навсегда десктоп, удобный лично для меня и не зависящий от идиотизма гноморазрабов.

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

★★

Проверено: JB ()
Последнее исправление: geekless (всего исправлений: 1)

> Модифицированная LXPanel

Я надеюсь, что все это в апстрим не пойдет. Ибо нефиг хорошую панельку уродовать.

devl547 ★★★★★
()

санитары на подходе, сохраняй спокойствие!

Deleted
()

>Также думаю покопаться в исходниках globalmenu на предмет, можно ли его оформить как плагин к LXPanel.

gnome-globalmenu или indicator-appmenu?

Если первое, то не нужно, ибо только gtk2.

anonymousss ★★
()

> Мне все названия окон видеть не нужно, зато видеть полное название активного кона - желательно.

хотелось бы узнать — зачем, для какой цели?

окончательно мигрировать с Арча


чем так гента привлекла?

doctorx ★★★★
()

Лучше перепели в ней функцию установки текста свёрнутого окна, в неё там жёстко зашит размер шрифта в зависимости от размера иконок на панели. И получается что основной размер шрифта например 7, а в панели 12, ,будет реальная польза :)

xterro ★★★★★
()

> добавить непосредственно на сами кнопки окон мелкие кнопки для закрытия окна

Use middle-click и не дури головы.

thesis ★★★★★
()

Ох. Вот бы все это в апстрим, я, может, свою панельку и допиливать тогда не буду.

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

Сейчас на основном компе - никакая, дольше всего держались: lxpanel(гитара), awesome-ная(нетбук), cairo-dock(нетбук), xfce4-panel(десктопы, виртуалки)

Пилю нечто странное - нечто вроде WM/DE для много очень маленьких экранов, умеющее тягать окна с других экранов к себе и не жрать полезную площадь.

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

> gnome-globalmenu или indicator-appmenu?

Если первое, то не нужно, ибо только gtk2.


Гляну оба, какой будет проще прикрутить, тот и прикручу. В целом gnome-globalmenu конечно не нужно, но у меня qt-приложений практически не водится, так что мне без разницы.

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

> чем так гента привлекла?

USE-флагами. Патчить на ходу PKGBUILD-ы не предлагать — это костыль.

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

> Пилю нечто странное - нечто вроде WM/DE для много очень маленьких экранов, умеющее тягать окна с других экранов к себе и не жрать полезную площадь.

Use case?

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

Вася пошел на лавочку перед домом позагорать. Он достал из кармана КПК, нажал на панели иконку midori и окно с ЛОРом свернулось на ноуте и открылось на КПК.

t184256 ★★★★★
()

Зачем?... Зачем закрывать окна, которые ты не видишь? Зачем они тогда нужны, если их можно закрыть не глядя?

Xellos ★★★★★
()

еще было бы неплохо запилить возможность добавлять launchers в панель (quicklaunch bar) путем перетаскивания из файлманагера.

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

да, постоянно что-то нужное прописывать руками, а ненужное удалять - напрягает порой :) и без этого хватает чем заняться :)

vovans ★★★★★
()

> Будет одна удобная панель с меню активного окна, его заголовокм и кнопкой закрытия + трей.

То, что ты велосипедишь, уже давно сделано и называется Unity.

obvious-kun
()
Ответ на: комментарий от anonymousss

>gnome-globalmenu или indicator-appmenu?

я тут взглянул на исходники этого indicator-appmenu, точнее всю эту экостему.

Так вот, лучше сделать поддержку gnome-globalmenu в Qt (gnome-globalmenu не завязано на gtk), чем пользоваться этим говно как indicator-appmenu, которое работает только после добавления костылей внутрь gtk, не в виде плагина, как в gnome-globalmenu, а виде ужасных патчей.

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

mono ★★★★★
()

>«Отображать только кнопку активного окна»

Активное окно и так поверх остальных. Ты по виду и заголовку не можешь его найти? )

добавить непосредственно на сами кнопки окон мелкие кнопки для закрытия окна


Все это уже реализовано. Например, в tint2: щечек правой - закрыть, скрол - свернуть/развернуть. По мне - куда удобнее, чем целиться по мелкой кнопке.

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

> Ты по виду и заголовку не можешь его найти? )

Заголовок активного окна почти не нужен. Точнее, так: большинство активных окон должно быть распахнуто на фуллскрин и им не нужно заголовка, достаточно кнопки «закрыть» (и, может быть, кнопок «выйти из фуллскрина» и «свернуть»). Есть и «честные окна», диалоговые там или ещё какие, у которых есть обычный заголовок и полный набор кнопок.

щечек правой - закрыть, скрол - свернуть/развернуть

Ага, и всё это на тачпадном или вообще, не-приведи-господь, сенсорноэкранном интерфейсе. К сожалению, мир тыкодивайсов диктует свои, не похожие на «нормальные, мышка-с-колёсиком» законы взаимодействия с пользователем.

2geekless: кажется, Вы делаете как раз то, о чём мне /мечталось/ для нетбука.

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

> Например, в tint2: щечек правой - закрыть, скрол - свернуть/развернуть. По мне - куда удобнее, чем целиться по мелкой кнопке.

Ага — на тачпаде особенно «удобно».

Активное окно и так поверх остальных.

Во-первых, 4.2

Ты по виду и заголовку

Во-вторых, собственного заголовока окна у меня не имеют. Если бы посмотрел на скриншот, а не полез сразу писать ответ, ты бы это понял.

не можешь его найти? )

И в-третьих, заголовок окна содержит важную информацию: исполняемая команда в терминале, имя открытого файла в редакторе и т.п.

geekless ★★
() автор топика

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

свернуть - «wmctrl -r :ACTIVE: -b add,hidden»
развернуть/восстановить - «wmctrl -r :ACTIVE: -b toggle,maximized_vert,maximized_horz»
закрыть - «wmctrl -c :ACTIVE:»

Для полного счастья не хватает того самого заголовка активного окна на панели и выпадающего меню со всеми открытыми окнами, которое появляется при нажатии на этот заголовок.

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