LINUX.ORG.RU

Написал небольшой консольный индикатор батареи v0.0.3

 , tinybatt,


2

3

Потыкал палочкой C для общего развития и в процессе сделал себе индикатор батареи для тмукса (раньше грепал вывод acpi).
Может кому понадобится.

Так как строки для индикации состояния вбиты в заголовки в utf-8, пользователям экзотических локалей придётся поправить tinybatt.h.

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

https://github.com/aidaho/tinybatt

P.S. Не осилил autotools. Какой-то ком засохшего говна, честное слово.

Вторая версия. Запилил поддержку нескольких батарей.
Третья версия. Можно переопределить в рантайме свистелки.

★★★★★

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

А закинь скриншот с описанием в галерею, что бы точно не потерялось

JB ★★★★★
()

Скоро ты напишешь conky.

У тебя память от squash_int_to_str не освобождается. Не критично, ядро после убития тулзы само освободит.

Cactus64k
()

P.S. Не осилил autotools. Какой-то ком засохшего говна, честное слово.

все правильно

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

У тебя память от squash_int_to_str не освобождается. Не критично, ядро после убития тулзы само освободит.

Да, всё так. Не вижу смысла в данном случае за собой убирать.

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

Раз MAX_ABBREV_LEN всегда имеет одно и то же значение, то и нет смысла выделять память.
Можно использовать статичный массив в стеке типо

char result[MAX_ABBREV_LEN];
и передавать указатель на него в функцию squash_int_to_str.

Кстати лучше использовать snprintf, за место sprintf.
Так надежнее будет.

Cactus64k
()
int debug = 0;

if (debug)
		printf("%s\t%d\n", filepath, result);

Пойду поблюю

anonymous
()

А почему оно именно в tmux, ты заходишь на ноут по ssh и хочешь видеть заряд батареи? Почему не на десктопной панели в тайловом менеджере?

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

Раз MAX_ABBREV_LEN всегда имеет одно и то же значение, то и нет >смысла выделять память.
Можно использовать статичный массив в стеке

Как-то так и было, но что-то компилятору не нравилось.

Кстати лучше использовать snprintf, за место sprintf.
Так надежнее будет.

Спасибо, поменял.

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

А почему оно именно в tmux, ты заходишь на ноут по ssh и хочешь видеть заряд батареи? Почему не на десктопной панели в тайловом менеджере?

Потому что консоль выезжает по хоткею и там всё всегда в tmux завёрнуто. Иными словами я там слегка живу и работаю.

Индикатор в панели у меня есть и kde'шный, но информативность у него отвратительная. Закопали kpowersave из kde3 с попиксельной индикацией в пользу пиктограммного говна.

Тайлинг я не осилил. У меня взамен миллион правил kwin к окнам и хоткеи для манипуляции над ними.

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

Я тут недавно, поэтому рисую велосипеды направо и налево. Ещё даже введение в glibc не прочёл.

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

Привыкай. Заменяй.
strcat
strncat
Везде и всегда нужно контролировать размер массива.
А то он вылезет за границы и получишь ты кучу рандомных багов.

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

Понял, зачем так сделал. Глобально объявлять не захотел из-за феншуя, а локально — нарушил феншуй компилятора. Пусть так остаётся.

Выкатил вторую версию с поддержкой до 32 батарей.

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

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

Вроде на этом и всё: свои потребности уже покрыл с запасом.

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