LINUX.ORG.RU

Решил таки форкнуть fbpanel

 , , , ,


1

2

Зачем? Распишу по пунктам:

  • Это единственная панель, которая позволяет создвать свое меню «пуск» в конфиге.
  • У этой панели на мой взгляд самый удобный конфиг. По крайней мере, лучше я не видел.
  • Она простая и легковесная, без кучи лишних зависимостей.

Но! Есть досадные недостатки:

  • плагин звука не работает (у многих)
  • плагин батареи на работает, кажется, у всех. Гуглеж, по крайней мере, создает именно такое впечатление.

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

Вопрос - как в линуксе, а в идеале вообще на всех unix подобных ОС считывать инфу о батарее? fbpanel ищет ее в /proc/acpi/battery, а у меня в дебиане нет этого каталога. Зато есть утилита acpi в которой все пашет. upower несет какую то чушь, которая не соответствует действительности. В /sys/class/power_supply/BAT0/ тоже есть годная инфа.

Вот. И откуда брать информацию?

Deleted

вообще на всех unix подобных ОС считывать инфу о батарее?

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

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

Не понял вопроса. У меня в ноль годная инфа, о батарее ноутбука. Там и состояние верное, и ёмкость и т.д.

Deleted ()

Вопрос - как в линуксе, а в идеале вообще на всех unix подобных ОС считывать инфу о батарее? fbpanel ищет ее в /proc/acpi/battery, а у меня в дебиане нет этого каталога. Зато есть утилита acpi в которой все пашет. upower несет какую то чушь, которая не соответствует действительности. В /sys/class/power_supply/BAT0/ тоже есть годная инфа.

http://git.enlightenment.org/core/enlightenment.git/tree/src/modules/battery - там есть все варианты.

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

Любые индикаторы - это сильно геморно. А вот указать откуда брать инфу, можно, да.

Но это не меняет первый вопрос - откуда СЕЙЧАС надо брать инфу по дефолту?

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

Спасибо, гляну. Я пока с телефона вообще.

Deleted ()

/proc/acpi в новых ядрах вроде вобще убран, данные опции в конфиге уже очень давно отмечены как deprecated. Соответственно самое надежное брать данные из /sys...

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

В таком случае лучше подобрать проект, а не форкать. Что и как делать рекомендую почитать у Рэймонда.

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

Можно и так, я не против. Вообще, под «форкнуть» я лишь хотел сказать, что хочу пилить эту панельку. А менять авторов, названия и т.д. мне не охота.

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

Я буду в OpenBox.

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

Да и, этими, кедами и гномами судя по Лору мало кто пользуется.

Deleted ()

Да что ж такое-то. Как новый год, так начинается велосипедостроение.

fbpanel последняя версия - 2010 год. Вместо нее есть lxpanel - свежие коммиты (декабрь 2013) http://lxde.git.sourceforge.net/git/gitweb.cgi?p=lxde/lxpanel;a=summary

Это - не зависимости, это так, фигня. Ставь lxpanel и помогай сообществу доводить её до совершенства!

Calculating dependencies... done!
[ebuild  N     ] lxde-base/lxmenu-data-0.1.2  292 kB
[ebuild  N     ] lxde-base/menu-cache-0.4.1:0/2  404 kB
[ebuild  N     ] lxde-base/lxpanel-0.5.12  USE="alsa -wifi" 2,001 kB

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

последние коммиты емнип были в 2012 году.

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

Причем, lxmenu - это твой самый «пуск» (вынесен в отдельный пакет), а menu-cache - library creating and utilizing caches to speed up freedesktop.org application menus. Ничего страшного, наоборот библиотека для кэширования и ускорения и так быстрой панельки.

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

Ответил ниже. lxpanel не тянет за собой lxde. Только свою менюшку и библиотеку для кэширования. Трагедия, да. Если не верите, могу дать diff от emerge --emptytree

zekka ()
[v@t430s]$ ll /sys/class/power_supply/{BAT0,AC}/    
/sys/class/power_supply/AC/:
total 0
drwxr-xr-x 3 root root    0 2014-01-01 17:44 ./
drwxr-xr-x 3 root root    0 2014-01-01 17:44 ../
lrwxrwxrwx 1 root root    0 2014-01-06 19:10 device -> ../../../ACPI0003:00/
-r--r--r-- 1 root root 4.0K 2014-01-01 17:44 online
drwxr-xr-x 2 root root    0 2014-01-06 19:10 power/
lrwxrwxrwx 1 root root    0 2014-01-06 19:10 subsystem -> ../../../../../../../../../class/power_supply/
-r--r--r-- 1 root root 4.0K 2014-01-01 17:44 type
-rw-r--r-- 1 root root 4.0K 2014-01-01 17:44 uevent

/sys/class/power_supply/BAT0/:
total 0
drwxr-xr-x 3 root root    0 2014-01-01 17:44 ./
drwxr-xr-x 3 root root    0 2014-01-01 17:44 ../
-rw-r--r-- 1 root root 4.0K 2014-01-06 19:10 alarm
-r--r--r-- 1 root root 4.0K 2014-01-01 17:45 capacity
-r--r--r-- 1 root root 4.0K 2014-01-06 19:10 cycle_count
lrwxrwxrwx 1 root root    0 2014-01-06 19:10 device -> ../../../PNP0C0A:00/
-r--r--r-- 1 root root 4.0K 2014-01-02 00:12 energy_full
-r--r--r-- 1 root root 4.0K 2014-01-06 19:10 energy_full_design
-r--r--r-- 1 root root 4.0K 2014-01-02 00:12 energy_now
-r--r--r-- 1 root root 4.0K 2014-01-06 19:10 manufacturer
-r--r--r-- 1 root root 4.0K 2014-01-06 19:10 model_name
drwxr-xr-x 2 root root    0 2014-01-06 19:10 power/
-r--r--r-- 1 root root 4.0K 2014-01-06 19:10 power_now
-r--r--r-- 1 root root 4.0K 2014-01-02 00:12 present
-r--r--r-- 1 root root 4.0K 2014-01-06 19:10 serial_number
-r--r--r-- 1 root root 4.0K 2014-01-01 17:47 status
lrwxrwxrwx 1 root root    0 2014-01-06 19:10 subsystem -> ../../../../../../../../../class/power_supply/
-r--r--r-- 1 root root 4.0K 2014-01-06 19:10 technology
-r--r--r-- 1 root root 4.0K 2014-01-01 17:44 type
-rw-r--r-- 1 root root 4.0K 2014-01-01 17:44 uevent
-r--r--r-- 1 root root 4.0K 2014-01-06 19:10 voltage_min_design
-r--r--r-- 1 root root 4.0K 2014-01-06 19:10 voltage_now
kernelpanic ★★★★★ ()
Ответ на: комментарий от zekka

Да что ж такое-то. Как новый год, так начинается велосипедостроение.

Ой, я тебя умоляю. Щас я ее скомпилить не смогу, настрою велосипедов. Тут, судя по гуглежу, компиляция геморная. Но вдруг мне повезет.

А lxpanel не люблю. Она не красивая, у меня не подхватывается гтк-тема, она излишне раздутая.

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

Еще альсу тянет.

< [ebuild R ] media-sound/alsa-headers-1.0.25  0 kB
169d167
< [ebuild U ] media-libs/alsa-lib-1.0.26-r1
193,194d190
< [ebuild N ] lxde-base/lxmenu-data-0.1.2  292 kB
< [ebuild N ] lxde-base/menu-cache-0.4.1:0/2  404 kB
249d244
> [ebuild N ] x11-misc/fbpanel-6.1  186 kB
286d282
< [ebuild N ] lxde-base/lxpanel-0.5.12  USE="alsa -wifi" 2,001 kB
Пережить можно. Это вам не установка konqueror и половина плазмы в придачу.

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

Да ладно тебе. Ну да, не много, все поделу. Но это не меняет ни чего, она раздутая, не красивая и не удобная. Для меня, да.

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

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

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

она раздутая, не красивая и не удобная. Для меня, да.

Вот здесь - яростно плюсую. Я с нее на tint2 перелез, на котором и остался =)

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

тинт2 офигенный, но лично мне не нравится своим жестоким конфигом, и отсутствием меню. Хотя да, его прикручивали спецы некотороые.

В остальном он клевый.

Deleted ()

Новости с фронта

Я научился компилять панель, это хорошо. Но еще не пробовал. Сейчас научусь заворачивать ее в deb-пакет, тогда и начну писать и тестить. Благо, статью нашел.

Deleted ()

Новости с фронта №2

Короче, я написал маленький патчик, но не до конца. Там нет проверок на ошибки, по этому в публичный доступ пока не выкладываю. И берет он инфу только из /sys/class/power_supply/BAT0/, что тоже не тру. Дальше буду работать над именно этими двумя недостатками.

А пока, вот что получилось:

#if defined __linux__

#define BAT_PATH "/sys/class/power_supply/BAT0"
#define BAT_DCAP "/sys/class/power_supply/BAT0/charge_full_design"
#define BAT_RCAP "/sys/class/power_supply/BAT0/charge_now"
#define BAT_STAT "/sys/class/power_supply/BAT0/status"

static void
battery_update_os(battery_priv *c)
{
	gchar *buf;
	gchar  str[12];
	gboolean ret = FALSE, charging;
	int dcap, rcap;
	
	ENTER;
	c->exist = (ret = g_file_test(BAT_PATH, G_FILE_TEST_EXISTS));
	ret = g_file_get_contents(BAT_DCAP, &buf, 0, NULL);
	sscanf(buf, "%d", &dcap);
	g_free(buf);
	// Read remaing capacity
	ret = g_file_get_contents(BAT_RCAP, &buf, 0, NULL);
	sscanf(buf, "%d", &rcap);
	g_free(buf);
	// Read battery status
	ret = g_file_get_contents(BAT_STAT, &buf, 0, NULL);
	sscanf(buf, "%s", &str);
	charging = (strcmp(str, "Charging") == 0);
	g_free(buf);
	// Set values
	c->level = (int) ((gfloat) rcap * 100 / (gfloat) dcap);
	c->charging = charging;
	RET(ret);
}

#else

static void
battery_update_os(battery_priv *c)
{
    c->exist = FALSE;
}
#endif

Буду рад любым советам.

П.С. Да, void возвращает значение, но это норм, это я знаю. Пофиксим.

Deleted ()
Последнее исправление: Bizun (всего исправлений: 1)
Ответ на: Новости с фронта №2 от Deleted

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

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

Спасибо :)

По твоему вопросу - до конца не знаю, но одно могу сказать точно.

Там меню состоит из двух частей - системного меню и меню самой панели. Причем и то, и другое опционально. Это киллер-фича.

Так вот. Системное меню, должно быть на языке системы. Но я не могу это проверить, я не заморачивался с языком в системе. Ставил просто Debian netinst, и сразу софт. Русский ввод, само собой, есть.

Меню панели, которое берётся из ее конфига будет всегда на том языке, на котором там написано. По дефолту там английский, вот он и рисует текст по английски.

Я постараюсь разобраться с этим вопросом, чуть позже. Это так, мысли в слух.

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

К ней претензии абсолютно те же. Толстая, очень толстая.

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

ок, я запишу себе, но с фряхами буду потом разбираться.

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

Оно должно работать на всех ядрах с /sys/class/power_supply/BAT0/

Не у всех батарея называется BAT0. Не у всех есть только одна батарея.

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