Conky

Z Arch Linux Wiki

Spis treści

Opis

Conky jest przydatną aplikacją, która wyświetla różnego typu procesy systemowe - od pokazywania ilości zajętego miejsca na dysku, temperatury urządzeń, pogody, zużycia procesora przedstawionego na wykresie, aż do sprawdzania poczty internetowej.

Instalacja

# pacman -Sy conky

Konfiguracja

Cała konfiguracja Conky znajduje się w pliku .conkyrc, znajdującym się w katalogu domowym. Aby uruchomić Conky z podstawową konfiguracją, wpisujemy w terminalu:

conky

Autostart Conky

  • GNOME

Autostart Conky ustawiamy dodając wpis w System -> Preferencje -> Programy startowe. W dwóch pierwszych polach wpisujemy słowo conky.

Zmienne w Conky

Uwaga! Uwaga!
Przed każdą zmienną należy wstawić znak '$'.

Kolor, czcionka

  • Kolor tekstu, wykresów i pasków
${color red}Tekst

Lub

${color #ff0000}Tekst

Zmiana koloru na domyślny (default_color):

${color}Tekst
  • Wyrównanie tekstu, wykresów i pasków

Do lewej:

${alignl}Tekst

Do prawej:

${alignr}Tekst

Wyśrodkowane:

${alignc}Tekst
  • Styl tekstu:

Kolejno ustawiamy czcionka:encoding=kodowanie:size=rozmiar

${font Terminus:encoding=utf8:size=15}

System

  • Host
${nodename}
  • Kernel
${kernel}
  • Godzina
${time %H:%M:%S}

Conky wyświetli godzinę w formacie: Godzina:Minuta:Sekunda

  • Data
${time %e %m %G}

Conky wyświetli to jako: dzień miesiąc rok. Możemy wyświetlic również dzień tygodnia:

${time %a}
  • Uptime
${uptime}

Lub w krótszy sposób:

${uptime_short}
  • Nazwa systemu
${sysname}
  • Ilość wszystkich procesów
${processes}
  • Ilość aktywnych procesów
${running_processes]

Procesor

  • Procent użycia
${cpu cpu0}
  • Aktualne taktowanie
${freq_dyn cpu0}
  • Pasek (wyskość: 4, szerokość: 200) użycia ogólnego procesora
${cpubar cpu0 4,200}

Jeśli pominiemy atrybut szerokości pasek rozszerzy się na całą długość okienka Conky.

  • Wykres ogólnego użycia procesora
${cpugraph cpu0 20,200 white black}

Kolejno: procesor wysokość,szerokość kolor1 kolor2

Jesli pominiemy atrybut szerokości wykres rozszerzy się na całą długość okienka Conky.

Jeśli pominiemy drugi kolor wykresu całość zostanie wyświetlona w jednym kolorze.

Atrybut cpu0 określa ogólną wartość dla wszystkich procesorów. Dla procesorów jednordzeniowych nie ma on znaczenia, może zostać usunięty. Dla procesorów wielordzeniowych można wyświetlić stan użycia dla każdego rdzenia osobno, kolejno: cpu1, cpu2, itd.

Pamięć RAM

  • Ilość aktualnie używana przez system
${mem}
  • Maxymalna dostępna ilość pamięci
$(memmax)
  • Procent używanej ilości pamięci
${memperc}
  • Pasek użycia pamięci (wysokość: 4, szerokość: 200)
${membar 4,200}

Jeśli pominiemy atrybut szerokości pasek rozszerzy się na całą długość okienka Conky.

Dyski i partycje

  • Rozmiar partycji
${fs_size /}
  • Ilość używanej przestrzeni
$(fs_used /}
  • Ilość wolnej przestrzeni
${fs_free /}
  • Ilość wolnej przestrzeni w procentach
${fs_free_perc /}
  • Pasek (wyskość: 4, szerokość: 200) używanej przestrzeni
${fs_bar / 4,200}

Jeśli pominiemy atrybut szerokości pasek rozszerzy się na całą długość okienka Conky.

Swap

  • Rozmiar partycji swap
${swapmax}
  • Ilość używanej przestrzeni
${swap}
  • Ilośc używanej przestrzeni w procentach
${swapperc}
  • Pasek (wyskość: 4, szerokość: 200) używanej przestrzeni
${swapbar 4,200}

Jesli pominiemy atrybut szerokości pasek rozszerzy się na całą długość okienka Conky.

Dyski przenośne

Dla dysków przenośnych można zastosować konstrukcję if_mounted

${if_mounted /media/phone}
${fs_free /media/phone}
${fs_free_perc /media/phone}
${fs_bar 4 /media/phone}
${endif}

Ranking użycia procesora

  • Nazwa najaktywniejszego procesu
${top name 1}
  • Numer PID najaktywniejszego procesu
${top pid 1}
  • Procentowa ilość uzycia procesora najaktywniejszego procesu
${top cpu 1}

Kolejne miejsca można uzyskać zmieniając ostatni atrybut.

Ranking użycia pamięci RAM

  • Nazwa najwiekszego procesu
${top_mem name 1}
  • Numer PID największego procesu
${top_mem pid 1}
  • Procentowa ilość uzycia pamięci największego procesu
${top_mem cpu 1}

Kolejne miejsca można uzyskać zmieniając ostatni atrybut.

Sieć

Atrybut eth0 należy zmienić na interfejs którego używamy do połączenia.

  • Adres IP
${addr eth0}
  • Szybkość wysyłu
${upspeedf eth0}
  • Szybkość ściągania
${downspeedf eth0}
  • Całkowity rozmiar wysyłu
${totalup eth0}
  • Całkowita rozmiar ściągania
${totaldown eth0}
  • Wykres szybkości wysyłu
${downspeedgraph eth0 20,200 white black 128}

Kolejno: interfejs wysokość,szerokość kolor1 kolor2 maksymalna_wartość.

Jeśli pominiemy atrybut szerokości wykres rozszerzy się na całą długość okienka Conky.

Jeśli pominiemy drugi kolor wykresu całość zostanie wyświetlona w jednym kolorze.

  • Wykres ogólnego użycia procesora rozpoczynający się kolorem białym a kończący się kolorem czarnym
${upspeedgraph eth0 20,200 white black 32}

Kolejno: interfejs wysokość,szerokość kolor1 kolor2 maksymalna_wartość

Jeśli pominiemy atrybut szerokości wykres rozszerzy się na całą długość okienka Conky.

Jeśli pominiemy drugi kolor wykresu całość zostanie wyświetlona w jednym kolorze.

Lm Sensors

Bardzo przydatna aplikacja do monitorowania temperatur, szybkości obrotów wentylatorów i napięć różnych podzespołów komputera. Podany tu przykład będzie się opierać nie na gotowych skryptach, lecz na wycinkach kodu z konsoli.

Opis instalacji Lm Sensors

Aby móc wyświetlać jakąkolwiek wartość z Lm Sensors w conky należy najpierw sprawdzić jak opisane są nasze podzespoły.

Przykład

Po wpisaniu:

$ sensors

Wypisuje nam na przykład:

w83627dhg-isa-0290
Adapter: ISA adapter
VCore:       +1.28 V  (min =  +0.00 V, max =  +1.74 V)   
in1:        +12.14 V  (min =  +0.48 V, max =  +7.18 V)   ALARM
AVCC:        +3.25 V  (min =  +0.64 V, max =  +0.26 V)   ALARM
3VCC:        +3.25 V  (min =  +0.42 V, max =  +3.36 V)   
in4:         +1.28 V  (min =  +0.20 V, max =  +1.55 V)   
in5:         +1.58 V  (min =  +0.26 V, max =  +0.64 V)   ALARM
in6:         +3.89 V  (min =  +3.38 V, max =  +0.18 V)   ALARM
VSB:         +3.25 V  (min =  +0.02 V, max =  +1.41 V)   ALARM
VBAT:        +3.25 V  (min =  +0.14 V, max =  +0.02 V)   ALARM
Case Fan:   2872 RPM  (min = 3970 RPM, div = 2)  ALARM
CPU Fan:    1214 RPM  (min = 8881 RPM, div = 8)  ALARM
Aux Fan:       0 RPM  (min = 5273 RPM, div = 128)  ALARM
fan4:          0 RPM  (min = 10546 RPM, div = 128)  ALARM
fan5:          0 RPM  (min = 10546 RPM, div = 128)  ALARM
Sys Temp:    +34.0°C  (high =  +2.0°C, hyst =  +8.0°C)  ALARM  sensor = thermistor
CPU Temp:    +42.5°C  (high = +80.0°C, hyst = +75.0°C)  sensor = diode
AUX Temp:   +127.0°C  (high = +80.0°C, hyst = +75.0°C)  ALARM  sensor = thermistor
cpu0_vid:   +1.325 V
coretemp-isa-0000
Adapter: ISA adapter
Core 0:      +39.0°C  (crit = +85.0°C)
coretemp-isa-0001
Adapter: ISA adapter
Core 1:      +37.0°C  (crit = +85.0°C)

Więc aby uzyskać na przykład samą temperaturę procesora należy wpisać w konsoli:

sensors | grep "CPU Temp" | cut --bytes=14-18

Gdzie wartość w cudzysłowiu to oznaczenie podzespołu, a --bytes=14-18 to kawałek wyciętego wyniku (14-18 to pola które zostały wycięte, można łączyć wiele kawałków tekstu dodając wartość po przecinku, np: --bytes=15-17,20,35-40)

Pozostaje już wyświetlić wynik w Conky:

${exec sensors | grep "CPU Temp" | cut --bytes=14-18}

Metoda ma jedną bardzo dużą zaletę - nie potrzebujemy żadnych dodatkowych skryptów na dysku.

Poczta Gmail

Tworzymy w katalogu domowym [ dokładnie: ~/.scripts/ ] plik o nazwie gmail.py. Następnie wklejamy do niego:

import os
import string
#Wpisz swój login i hasło
username="****"
password="****"
com="wget -O - https://"+username+":"+password+"@mail.google.com/mail/feed/atom --no-check-certificate"
temp=os.popen(com)
msg=temp.read()
index=string.find(msg,"<fullcount>")
index2=string.find(msg,"</fullcount>")
fc=int(msg[index+11:index2])
if fc==0:
  print "0 nowych"
else:
  print str(fc)+" nowych"

Następnie do konfiguracji Conky dodajemy poniższy wiersz:

${execi 300 python ~/.scripts/gmail.py}

Wyświetlanie liczby pakietów do aktualizacji

  • Tworzymy w /etc/cron.hourly/ skrypt np. "archupdate.sh" o zawartości:
#!/bin/bash
# Ścieżka: /etc/cron.hourly/

pacman -Sy
  • Tworzymy gdzieś w katalogu domowym skrypt np. "conky-updates.pl" o zawartości:
#!/usr/bin/perl

use strict;
use warnings;
my $n = (`pacman -Qu | wc -l`);
chomp ($n);
if ($n == 0)
{
     print "0"
}
elsif($n == 1)
{
     print "1"
}
else
{
print "$n" 
}

Krótkie wyjaśnienie:

print "0" - w cudzysłowiu możemy wpisać cokolwiek o braku aktualizacji

print "1" - w cudzysłowiu możemy wpisać cokolwiek o jednym pakiecie do aktualizacji

print "$n" - w cudzysłowiu możemy wpisać cokolwiek o więcej niż jednym pakiecie do aktualizacji

  • Dodajemy do pliku konfiguracyjnego ~/.conkyrc:
${execi 10 perl ~/ścieżka/do/skryptu/conky-updates.pl}

Wyświetlanie liczby pakietów zainstalowanych w systemie

  • Tworzymy w /etc/cron.hourly/ skrypt np. "archupdate.sh" o zawartości:
#!/bin/bash
# Ścieżka: /etc/cron.hourly/

pacman -Sy
  • Tworzymy gdzieś w katalogu domowym skrypt np. "conky-pkg.pl" o zawartości:
#!/usr/bin/perl

use strict;
use warnings;
my $n = (`pacman -Q | wc -l`);
chomp ($n);
if ($n == 0)
{
     print "Zero pakietów. He he he :]"
}
elsif($n == 1)
{
     print "Cały jeden pakiet."
}
else
{
print "$n" 
}
  • Dodajemy do pliku konfiguracyjnego ~/.conkyrc:
${execi 10 perl ~/ścieżka/do/skryptu/conky-pkg.pl}

Zobacz również

Arch-linux.pl