LINUX.ORG.RU
ФорумTalks

[нескучные инновации] Новые фичи lxpanelx


0

2

По многочисленным просьбам трудящихся, lxpanelx научилась масштабировать иконки под размер панели, когда доступное место под иконку меньше дефолтных размеров иконки, указанных в настройках. Так что если вы увидите, что какие-то иконки всё еще обрезаны, то:

  • Сначала убедитесь, что у вас всё в порядке с глазами, так как такого просто не может быть.
  • Если невозможное всё же случилось, срочно кидайте в меня багрепортом. Всё будет починено.

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

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

В других панелях задач и доках однотипные окна, как правило, либо «схлопываются» в одну кнопку при отсутствии места на панели, либо свернуты в неё всегда. В lxpanelx через контекстное меню вы можете вручную развернуть и свернуть любую группу окон. А еще:

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

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

Кроме того, имеется возможность автоматического разворачивания группы, к которой относится активное окно.

Всевозможные действия, которые lxpanelx умеет выполнять над окнами, могуть быть произвольно назначены на левую, среднюю или правую кнопку мыши, а также на прокрутку вверх-вниз мышинным колесом + всё те же самые варианты, но с модификатором Shift. Обращаю ваше внимание, что если вы выбираете окно в выпадающем списке окон группы или в списке всех окон рабочего стола, то биндинги работают и там: щелчок левой, средней или правой кнопкой по пункту списка будет срабатывать так же, как аналогичный щелчок по обычной кнопке окна в панели задач.

Обновляемся, тестируем, отписываемся о багах.

И всё это — только начало. Новые коммиты — новые фичи. Пусть маководы борются со своим неудобным доком. Пусть виндузятники плачут от злости. Следите за новостями и оставайтесь с нами!

★★

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

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

В KDE есть :)

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

geekless> Еще не умеет.
Жаль, единственная желаемая мною функция из максимальной.

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

>Где ебилды?
1) Берешь портежевский lxpanel
2) Копируешь в локальный оверлей
3) Переименовываешь последний ebuild в lxpanel-9999.ebuild
4) Меняешь
-SRC_URI=«mirror://sourceforge/lxde/${P}.tar.gz»
+ESVN_REPO_URI="http://lxpanelx.googlecode.com/svn/trunk/"

5) дописываешь
-inherit autotools eutils
+inherit autotools eutils subversion

6) emerge lxpanel

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

Если есть желание

Напиши в жаббер catlover@swamp.ru. Я код просмотрел, там вроде ничего сложного нет, попробую дописать. Только мне нужны периодические пинки, чтобы не забил.

Tweaker ★★★★☆
()

А можно пожелание?
Изменять цвет для монитора cpu, а то зелёный ну не как не вписывается :)

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

ВНЕЗАПНО в стандартной панели задач. Ставишь группировку вручную в настройках и тащишь одно окно на другое с зажатым Alt → они группируются. Дальше с группой можно извращаться.

Неочевидно, т.к. нигде об этом не написано.

madgnu ★★★★★
()
Ответ на: Если есть желание от Tweaker

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

Но это дело еще долгое, так что быстрый и грязный хак, который реализует такие лаунчеры тоже сгодится. Вопрос только в том, что во что впиливать. Апплеты LaunchBar и LaunchButton — это простые кнопки, ничего не знающие об окнах. Апллет Taskbar, в свою очередь, знает всё об окнах, но не умеет делать кнопки и запускать программы.

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

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

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

> А можно пожелание?

Изменять цвет для монитора cpu, а то зелёный ну не как не вписывается :)


Я, конечно, занесу в TODO, но когда у меня руки дойдут — бог знает.Всё, что не относится к ядру панели и апплету панели задач, имеет пониженный приоритет, а у меня запас свободного времени довольно ограничен, к сожалению.

Так что если у кого есть не просто FR, а желание написать патч — you are welcome.

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

Ладно, тогда сам найду в исходниках и поправлю

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

geekless> Апплеты LaunchBar и LaunchButton — это простые кнопки, ничего не знающие об окнах.
А чем плох такой алгоритм:
1. ЛанчБаттон знает, что ему запускать.
2. Ищет процесс с соответствующей строкой запуска.
3. Если находит, то ищет принадлежащие ему окна и активирует.

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

Приложение могло быть запущено иным способом. Надо анализировать не argv[0] у процессов, а свойство WM_CLASS у окон, а потом еще убедиться, что перед нами клиент с того же хоста (свойство WM_CLIENT_MACHINE, но не все тулкиты его устанавливают).

Тут возникают такие вопросы:

1. Какое именно значение WM_CLASS, соответствует команде, которая запускается кнопкой. Предполагаемое решение: пользователь сам вписывает значение в настройках кнопки. Если пользователь оставил поле пустым, считать его равным части arg[0] команды запуска после последнего слеша.

2. Что делать, если мы выяснили, что приложение уже запущено? Вариант 1: при нажатии на кнопку активировать соответствующее окно. Вариант 2: просто прятать кнопку, когда приложение запущено.

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

geekless> анализировать не argv[0]
С другой стороны, если приложение из дока запускается с параметром (напр. lowriter somedoc.odt), но при этом уже запущен экземпляр приложения без этого параметра, то нужно запускать новый экземпляр.
2. Лучше всего не отображать его на таскбаре.

Tweaker ★★★★☆
()

Плюсик в карму geekless.

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

Хм, тогда лучше WM_COMMAND анализировать. Например:

WM_COMMAND(STRING) = { «adie», «src/plugins/taskbar.c» }

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

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

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

поддержку viewport запилил?!

xorik вчера изъявил желание заняться этим вопросом. Думаю, вам можно с ним скооперироваться. У меня самого еще руки не скоро дойдут до апплета рабочих столов.

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

> возможно уже задавали такой вопрос, а почему не на git/hg?

А хрен его знает. Создал по привычке svn, а теперь уже и менять лень.

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

> А, это, к релизу deb-пакеты будут или компилять?

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

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

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

И как надписи будут при вертикальном расположении?

А если без надписей, то компактно и сейчас можно расположить вертикально.

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

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

Бебиан еще не установлен, а уже трахает мозги. Оказывается, задебутстрапить бебиан можно только из-под бебиана (ну или из-под другой системы, где uname -r выдаёт версию ядра с тремя числами, а не с двумя, как в Арче.) Потому что в предустановочный скрипт libc вписан кривой парсинг uname -r, и всё это счастье радостно падает.

Из-под антикварного Debian 5 провести установку тоже не удалось, т.к. видеть раздел /dev/sda16, специально выделенных для чрутов, он отказался. Сказал «Не буду! Хоть режь, а всё равно не буду! Не люблю таких чисел: целых 16, ишь чего захотел!»

Хорошо, что есть еще Ubuntu 10.10, пригодилась хоть раз эта поделка для чего-нибудь полезного.

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

Обновил сейчас перевод программы на русский язык.

Теперь бы еще украинский обновить не мешало. Кто-нибудь желает заняться? :)

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

> Изменять цвет для монитора cpu, а то зелёный ну не как не вписывается :)

Реализовал настройку цвета графика и фона. Тестируй.

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

>Реализовал настройку цвета графика и фона. Тестируй.
Спасибо конечно, но как этим пользоваться? Попытался вписать цвет #788ca5, получил серый :) Я думал там color picker будет, а не текстовое поле :)

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

Попытался вписать цвет #788ca5, получил серый :)

Это и есть почти серый.

Я думал там color picker будет, а не текстовое поле :)

Ъ color picker-ом не пользуются. Мне просто было лень. Щас прикручу.

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

> И как надписи будут при вертикальном расположении?

Ну, полностью не влезут, но 10-15 букв вполне помещаются (при ширине панели в 60-70 пикселей). Обычно этого достаточно.

А если без надписей, то компактно и сейчас можно расположить вертикально.

Надо будет глянуть...

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