Conky nie wy

Tematy związane z oprogramowaniem, instalacją, konfiguracją
RaFFi
Posty: 47
Rejestracja: 20 stycznia 2009, 17:34

Conky nie wyświetla stanu naładowania baterii

Post autor: RaFFi »

Witam.
Konfiguruję conky i mam mały problem, posiadam skrypt ~/.conky/batt:

Kod: Zaznacz cały

#!/bin/bash
case "$1" in
	stat) bs=$(acpi | awk '{print $3}')
		case "$bs" in
			Charging,) echo "charging:";;
			Unknown,) echo "full:";;
			Discharging,) echo "discharging:";;
		esac
		;;
	perc) acpi | awk '{print $4}';;
	time) acpi | awk '{print $5}';;
esac
i chciałem umieścić go w conky, próbowałem na wszystkie sposoby i nic się nie wyświetla.

Od strony .conkyrc tak to wygląda:

Kod: Zaznacz cały

    ${color #ddaa00}Temperatura $hr

    ${color white}${execi 10 ~/.conky/batt}
Awatar użytkownika
DaVidoSS
Junior Member
Posty: 875
Rejestracja: 06 marca 2010, 11:26
Lokalizacja: ~/

Post autor: DaVidoSS »

Pokaż:

Kod: Zaznacz cały

ls -la ~/.conky/ | grep batt
acpi | awk '{print $3}'
Jesli po :

Kod: Zaznacz cały

acpi | awk '{print $3}'
bedziesz miał:

Kod: Zaznacz cały

bash: acpi: nie znaleziono polecenia
wykonaj:

Kod: Zaznacz cały

su
apt-get install acpi
Pozatym zmień :

Kod: Zaznacz cały

${color white}${execi 10 ~/.conky/batt}
na:

Kod: Zaznacz cały

${color white}${execi 10 /home/nazwa-użytkownika/.conky/batt}
RaFFi
Posty: 47
Rejestracja: 20 stycznia 2009, 17:34

Post autor: RaFFi »

Zmiana ~/ na nazwę użytkownika nie pomogła.

Kod: Zaznacz cały

n33thl@debian:~$ ls -la ~/.conky/ | grep batt
-rw-r--r--  1 n33thl n33thl   261 02-14 19:47 batt
n33thl@debian:~$ 

acpi mam zainstalowane,

Kod: Zaznacz cały

n33thl@debian:~$ acpi | awk '{print $3}'
Charging,
n33thl@debian:~$ 
pioruns
Beginner
Posty: 117
Rejestracja: 12 stycznia 2008, 17:36

Post autor: pioruns »

Jak ma się to wyświetlać w conky, jak twój skrypt nie zwraca żadnego komunikatu? Odpal go samego z terminala

Kod: Zaznacz cały

./.conky/batt
I co widać? Nic. Napisz swój skrypt tak, żeby działał, później zajmuj się implementacją go do conky ;)
RaFFi
Posty: 47
Rejestracja: 20 stycznia 2009, 17:34

Post autor: RaFFi »

No właśnie, w tym tkwi chyba problem. Niestety w kwestii programowania w bashu jestem niezdarą. Mógłby ktoś przerobić ten skrypt tak żeby wyświetlał zmienną $4? Ona pokazuje procent naładowania baterii.

Edycja:
Coś zmajstrowałem, mój wyolbrzymiony i obfity skrypt wygląda teraz tak:

batt

Kod: Zaznacz cały

#!/bin/bash
acpi | awk '{print $4}';
jednak w Conky nadal się nic nie wyświetla po wywołaniu

Kod: Zaznacz cały

${execi 10 /home/n33thl/.conky/batt}
Awatar użytkownika
DaVidoSS
Junior Member
Posty: 875
Rejestracja: 06 marca 2010, 11:26
Lokalizacja: ~/

Post autor: DaVidoSS »

Skrypt jest prawidłowy.

Kod: Zaznacz cały

n33thl@debian:~$ acpi | awk '{print $3}'
[B]Charging,[/B]
n33thl@debian:~$
Niestety plik batt nie ma flagi dla wykonania:

Kod: Zaznacz cały

-rw-r--r--  1 n33thl n33thl   261 02-14 19:47 batt
Powinno być:

Kod: Zaznacz cały


-rwxr-xr-x  1 n33thl n33thl   261 02-14 19:47 batt
Wykonaj:

Kod: Zaznacz cały

chmod +x ~/.conky/batt
RaFFi
Posty: 47
Rejestracja: 20 stycznia 2009, 17:34

Post autor: RaFFi »

I działa! Dziękuję.
Jeszcze jeden mankament, po ilości procentów wyświetla się przecinek, który mi obrzydza całą estetykę conky. Podejrzewam, że trzeba dodać do skryptu jakiś filtr co by pokazywał tylko 0-9. Mógłby ktoś mnie wyręczyć bo niestety raczkuję dopiero w bashu?
pioruns
Beginner
Posty: 117
Rejestracja: 12 stycznia 2008, 17:36

Post autor: pioruns »

Dodaj tam

Kod: Zaznacz cały

cut -d, -f1
;)
RaFFi
Posty: 47
Rejestracja: 20 stycznia 2009, 17:34

Post autor: RaFFi »

Tam czyli gdzie? Bo nie mogę się połapać...

Już sobie poradziłem :)
dla osób posiadających ten sam problem:
.conkyrc

Kod: Zaznacz cały

    ${color white}Naładowanie baterii ${execi 10 /home/YOU/.conky/batt | cut -d, -f1}
~/.conky/batt

Kod: Zaznacz cały

#!/bin/bash
acpi | awk '{print $4}';
trzeba wklepać to:

Kod: Zaznacz cały

chmod +x ~/.conky/batt
do działania potrzebne jest "acpi",

Kod: Zaznacz cały

aptitude update && aptitude install acpi
Pozdrawiam.
Awatar użytkownika
DaVidoSS
Junior Member
Posty: 875
Rejestracja: 06 marca 2010, 11:26
Lokalizacja: ~/

Post autor: DaVidoSS »

Kolega miał na mysli :

Kod: Zaznacz cały

acpi | cut -d, -f2


czyli:

Kod: Zaznacz cały

#!/bin/bash
case "$1" in
	stat) bs=$(acpi | awk '{print $3}')
		case "$bs" in
			Charging,) echo "charging:";;
			Unknown,) echo "full:";;
			Discharging,) echo "discharging:";;
		esac
		;;
	perc) acpi | cut -d, -f2;;
	time) acpi | awk '{print $5}';;
esac
ODPOWIEDZ