LINUX.ORG.RU
решено ФорумTalks

[lxpanelx]продолжая чесать


0

1

от делать нечего поковырял lxpanelx-овский плагин «Button», теперь оно может считывать текст/имя иконки/итп с выхлопа команды шелла, так что замену простеньким плагинам можно теперь клепать буквально на коленке.

получаем что-то типа этого: http://ompldr.org/vYzU5Mw/buttonfoo.png

если вдруг кому интересно (любителям conky, например) - патч к r229 тут http://dpaste.com/hold/684171/ (там правда немного мусора от переформатирования, лень вычищать)

★★★★★

ого, спасибо тебе добрый человек. а с lxpanel оно будет работать или только с модификацией lxpanelx от geekless?

asket82 ()

Я как раз пилю вариант с pipe-fork-exec, так что не расслабляться. :-D

geekless ★★ ()

[offtopic]Панели на 1024x600?! Не, не нужно, иначе два терминала по высоте не влезут.[/offtopic]

GotF ★★★★★ ()

В svn lxpanelx закоммитил реализацию чтения параметров кнопки из дочернего процесса. (Отличающуюся от реализации lazyklimm-а.)

Пример управляюзего скрипта для кнопки:

#!/bin/bash

function handle_audacious
{
	echo "Title `echo "$1" | sed 's/ *- *Audacious$//'`"
	echo "Icon audacious"
	echo "Command1 audacious -t"
}

function handle_deadbeef
{
	echo "Title `deadbeef --nowplaying '%a — %t' 2>/dev/null`"
	echo "Icon deadbeef"
	echo "Command1 deadbeef --play-pause"
}

function handle_nothing
{
	echo "Title "
	echo "Icon "
	echo "Command1 "
}

while true ; do

	WINDOWS="`wmctrl -lx | sed 's/  */ /g' | cut -d' ' -f3,5- | sed 's/ /\n/'`"

	player_found=

	while read CLASS ; do
		read TITLE

		if [[ -z "$player_found" ]] ; then
			if [[ "$CLASS" = audacious.Audacious ]] ; then
				player_found=yes
				handle_audacious "$TITLE"
			elif [[ "$CLASS" = deadbeef.Deadbeef ]] ; then
				player_found=yes
				handle_deadbeef
			fi
		fi
	done < <(echo "$WINDOWS")

	if [[ -z "$player_found" ]] ; then
		handle_nothing
	fi

	sleep 2
done

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