conky - instalacja, konfiguracja, i2c, hddtemp itd.

Archiwalne, stare wpisy FAQ i HowTo Użytkowników
Kaka'
Senior Member
Posty: 3018
Rejestracja: 30 lipca 2006, 13:17
Lokalizacja: Kartuzy

conky - instalacja, konfiguracja, i2c, hddtemp itd.

Post autor: Kaka' »

Wpisując w Google hasło conky można uzyskać sporo ciekawych informacji, jednak problem w tym, że te informacje, są na różnych stronach i trzeba dość dużo czasu poświęcić aby je zebrać. Dlatego napisałem ten poradnik.
Kaka'
Senior Member
Posty: 3018
Rejestracja: 30 lipca 2006, 13:17
Lokalizacja: Kartuzy

Post autor: Kaka' »

O conky słów kilka

Cóż to jest conky? Conky jest to monitor systemu, który wyświetla informacje o systemie na pulpicie. Zaraz, zaraz! Przecież ja już mam karambę lub superkarambę. Tak, są do tego programy inne niż conky jednak omawiany tu przeze mnie program jest moim zdaniem najlepszy z jednej ważnej przyczyny: nie pożera tyle pamięci i CPU co karamba czy inne programy tego typu. Mając conky nie poczujesz w ogóle, że jest uruchomione. Ile razy karamba zżerała Ci 10-20% CPU (jak nie więcej), czy mnóstwo RAM-u? Na pewno wiele razy.
No tak, ale co z tego, że tyle tego zżera, przecież mam szybki komputer. Ja też mam szybki komputer, też na początku tak to sobie tłumaczyłem, jednak zmieniłem poglądy. Zacząłem doceniać mój procesor i pamięć, oraz tą niewiarygodną prostotę conky. Usunąłem karambę. Tak, nie żałuję tego. Nie dość, że program conky nie zżera tyle zasobów, nie dość, że jest łatwiejszy w konfiguracji to jego wygląd jest naprawdę świetny. Dlatego zachęcam Cię, drogi czytelniku, abyś chociaż spróbował conky - na pewno nie pożałujesz.
Kaka'
Senior Member
Posty: 3018
Rejestracja: 30 lipca 2006, 13:17
Lokalizacja: Kartuzy

Post autor: Kaka' »

Instalacja

Debian
Wystarczy w konsoli wydać polecenie jako root:

Kod: Zaznacz cały

aptitude update

A następnie:

Kod: Zaznacz cały

aptitude install conky

Ubuntu

Kod: Zaznacz cały

sudo apt-get update

Kod: Zaznacz cały

sudo apt-get install conky
Kaka'
Senior Member
Posty: 3018
Rejestracja: 30 lipca 2006, 13:17
Lokalizacja: Kartuzy

Post autor: Kaka' »

Konfiguracja conky

Plikiem konfiguracyjnym conky jest

Kod: Zaznacz cały

/home/nazwa_użytkownika/.conkyrc
Właśnie tam umieszcza się całą konfigurację tegoż wspaniałego monitora systemu. Otwórz teraz konsolę i wpisz:

Kod: Zaznacz cały

touch ~/.conkyrc
Teraz wstaw tam poniższy tekst:

Kod: Zaznacz cały

background yes

#prawy dolny rog
gap_x 1050
gap_y 50

maximum_width 200

# X font when Xft is disabled, you can pick one with program xfontsel
#font -*-*-*-r-normal--14-*-*-*-c-*-iso8859-2
font -xos4-terminus-*-r-normal-*-12-100-*-*-c-*-iso10646-1

# Use Xft?
use_xft yes

#xftfont Bitstream Vera Sans Mono:size=8
xftfont Terminus:encoding=utf-8:size=9
xftalpha 0.9

update_interval 1.0

total_run_times 0

own_window no

#own_window_type desktop
#own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_transparent yes

# If own_window_transparent is set to no, you can set the background colour here
own_window_colour hotpink

# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes
draw_shades yes
draw_outline no
draw_borders no
stippled_borders 8
border_margin 4
border_width 1

default_color white
default_shade_color black
default_outline_color white

alignment top_left
no_buffers yes
uppercase no

cpu_avg_samples 2
net_avg_samples 2

override_utf8_locale no

use_spacer yes

TEXT
${color #ddaa00}${font Terminus:encoding=iso8859-2:size=15}${time %A}${color}
${font :encoding=iso8859-2:size=9}$alignc${color #ddaa00}${time %e %B %G}

${color slate grey}Kernel:
$alignc${color }$kernel
${color slate grey}UpTime:
$alignc${color }$uptime
${color slate grey}Load:
$alignc${color }$loadavg

${color }${color slate grey}CPU:    $color%${color #ddaa00}$cpu$alignr$color$running_processes/ $processes
${color slate grey}${cpugraph 25,200 000000 ffffff}
${font :size=8}${color #ddaa00}${top name 1}$alignr${top cpu 1}
${color lightgrey}${top name 2}$alignr${top cpu 2}
${color lightgrey}${top name 3}$alignr${top cpu 3}
${color lightgrey}${top name 4}$alignr${top cpu 4}
${font :size=9}
${color slate grey}RAM:   $color%$memperc ${alignr}$mem
${membar 5,200}
${color slate grey}SWAP: $color%$swapperc ${alignr}$swap
${swapbar 5,200}
${font :size=8}${color #ddaa00}${top_mem name 1}$alignr${top_mem mem 1}
${color lightgrey}${top_mem name 2}$alignr${top_mem mem 2}
${color lightgrey}${top_mem name 3}$alignr${top_mem mem 3}
${color lightgrey}${top_mem name 4}$alignr${top_mem mem 4}
${font :size=9}
${color slate grey}TWARDZIEL: $color$alignr$diskio
${color slate grey}${diskiograph 25,200 000000 ff0000}
${color slate grey} /:${alignr}${color }${fs_free /}
${fs_bar 5,200 /}

${color slate grey}INTERNET:
${color}DL:${color #ddaa00}${downspeed eth0}${color}UP:${color #ddaa00}${upspeed eth0}${color}${alignr}KiB/s
${offset 10}${color}Total: ${color white}${totaldown eth0} 
${offset 10}${color}Total: ${color white}${totalup eth0}
${color slate grey}${downspeedgraph eth0 25,200 000000 00ff00}
${color slate grey}${upspeedgraph eth0 25,200 000000 0000ff}

${color #0077ff}@Connections@
$color Outbound: ${tcp_portmon 32768 61000 count}
$color Inbound: ${tcp_portmon 1 32767 count}  
${color #0077ff}Outbound Connection ${alignr} Port$color
 ${tcp_portmon 32768 61000 rip 0} ${alignr} ${tcp_portmon 32768 61000 rservice 0}
 ${tcp_portmon 32768 61000 rip 1} ${alignr} ${tcp_portmon 32768 61000 rservice 1}
 ${tcp_portmon 32768 61000 rip 2} ${alignr} ${tcp_portmon 32768 61000 rservice 2}
 ${tcp_portmon 32768 61000 rip 3} ${alignr} ${tcp_portmon 32768 61000 rservice 3}
 ${tcp_portmon 32768 61000 rip 4} ${alignr} ${tcp_portmon 32768 61000 rservice 4}
 ${tcp_portmon 32768 61000 rip 4} ${alignr} ${tcp_portmon 32768 61000 rservice 5}
 ${tcp_portmon 32768 61000 rip 4} ${alignr} ${tcp_portmon 32768 61000 rservice 6}
 ${tcp_portmon 32768 61000 rip 4} ${alignr} ${tcp_portmon 32768 61000 rservice 7}
 ${tcp_portmon 32768 61000 rip 4} ${alignr} ${tcp_portmon 32768 61000 rservice 8}
 ${tcp_portmon 32768 61000 rip 4} ${alignr} ${tcp_portmon 32768 61000 rservice 9}
 ${tcp_portmon 32768 61000 rip 4} ${alignr} ${tcp_portmon 32768 61000 rservice 10}
Po czym zapisz plik. Teraz w konsoli wpisz:

Kod: Zaznacz cały

conky
W tym momencie na pulpicie powinien się pojawić monitor systemu. Jeżeli tak się nie stało to zobacz co pojawiło się w konsoli, a następnie spróbuj dojść do tego gdzie jest błąd.

Jeżeli denerwuje Cię, że conky ciągle mruga (skacze) to jako root otwórz /etc/X11/xorg.conf i do Section "Module" dodaj linijkę:

Kod: Zaznacz cały

Load    "dbe"
Uwaga! Po Load ma być tabulator (TAB), a nie spacja! Teraz zapisz plik, wyloguj się ze swojego środowiska graficznego, zrestartuj x-y (Ctrl + Alt + BackSpace), ponownie się zaloguj i uruchom program conky. Teraz conky już nie powinien skakać. Jeżeli dalej skacze to upewnij się, czy wszystko dobrze zrobiłeś, oraz czy w konfigu conky masz taką linię:

Kod: Zaznacz cały

double_buffer yes 

Mimo, że problem ze skakaniem został rozwiązany to kolejnym zmartwieniem jest to, że w KDE i GNOME nie ma ikon na pulpicie. Na pewno sobie pomyślałeś Co za głupi program ten conky! Ja też za pierwszym razem tak pomyślałem. Zastanowiłem się nad jedną rzeczą: Czy potrzebne są mi ikony na pulpicie?. Po krótkich rozmyśleniach doszedłem do wniosku, że nie. Tak, nie mam na pulpicie teraz żadnych ikon. Zapewne, Ty sobie nie wyobrażasz pracy bez ikon na pulpicie, ale naprawdę zastanów się, czy są one konieczne. Czy nie lepiej wcisnąć na pulpicie na przykład lewy przycisk myszy i tam wybrać co chcesz uruchomić? Tak, według mnie jest to lepsze rozwiązanie. Jednak jeżeli naprawdę musisz mieć te ikony, rodem z Windowsa, to w przypadku KDE do autostartu (~/.kde/Autostart) dodaj poniższe polecenie (ppm --> Utwórz Nowe --> Skrót do programu --> Program --> Polecenie):

Kod: Zaznacz cały

feh --bg-scale `dcop kdesktop KBackgroundIface currentWallpaper 1`
Należy podkreślić, że musisz mieć zainstalowany pakiet feh:

Kod: Zaznacz cały

aptitude install feh
W GNOME nie wiem jak to dokładnie zrobić (nie używam GNOME), ale też spróbuj użyć programu feh. Pod Xfce4 tego znikania ikon nie zaobserwowałem, jednak jeżeli takie zjawisko będzie miało miejsce to upewnij się, że w ~/.conkyrc masz poniższe ustawienia:

Kod: Zaznacz cały

own_window yes
own_window_type override
W innych środowiskach graficznych i menadżerach okien tego zjawiska nie zaobserwowałem.

Dodam jeszcze, że tekst, który wstawiłeś do pliku ~/.conkyrc jest to moja konfiguracja. Możesz zrobić swoją własną lub użyć jeszcze innych. Więcej konfiguracji znajdziesz z pomocą Google i na stronie http://conky.sourceforge.net/

Dodane:
Dla niewtajemniczonych, oznaczenie:

Kod: Zaznacz cały

/home/nazwa_użytkownika/
jest równoważne: Taki zapis oznacza, że zmiany wykonujemy w katalogu domowym użytkownika, na koncie, którego jesteśmy obecnie zalogowani.
Kaka'
Senior Member
Posty: 3018
Rejestracja: 30 lipca 2006, 13:17
Lokalizacja: Kartuzy

Post autor: Kaka' »

Omówienie pliku konfiguracyjnego conky

Wcześniej zamieściłem mój plik konfiguracyjny .conkyrc. Czas go omówić. Nie będę omawiał wszystkiego, ale te najważniejsze rzeczy.
  1. Kod: Zaznacz cały

    #prawy dolny rog
    gap_x 1050
    gap_y 100
    Dwie ostatnie linijki (tak dwie! linijka rozpoczynająca się znakiem # oznacza komentarz) informują conky na jakiej części pulpitu ma się znaleźć. Z matematyki wiesz co to jest oś x i y więc problemów z umiejscowieniem conky na pulpicie nie będzie.
  2. Kod: Zaznacz cały

    maximum_width 200
    Informuje jaki szeroki ma być monitor systemu.
  3. Kod: Zaznacz cały

    update_interval 1.0
    Wartość podana tutaj informuje conky co ile sekund ma być odświeżany monitor systemu. Polecam wartość 1.0 lub 0.5
  4. Kod: Zaznacz cały

    own_window no
    Czy conky ma się uruchamiać w osobnym oknie. W celu dokładnego zrozumienia tej opcji polecam zamiast no wpisać yes i przekonać się co się stanie.
  5. Kod: Zaznacz cały

    default_color white
    default_shade_color black
    default_outline_color white
    Są to trzy linijki mówiące o standardowych kolorach. Zamiast na przykład black można wpisać red - polecam z tymi linijkami trochę poeksperymentować.
  6. Kod: Zaznacz cały

    override_utf8_locale no
    W przypadku, jeśli kodowanie systemu masz ustawione na UTF-8 zmień no na yes.
  7. Kod: Zaznacz cały

    TEXT
    Wszystko znajdujące się poniżej tego słowa, będzie wyświetlane przez monitor systemu conky na pulpicie.
  8. Kod: Zaznacz cały

    ${color slate grey}Jądro:
    $alignc${color }$kernel
    Każda linijka musi się zaczynać od znaku $. Następnie widzimy {color slate grey} - informuje to conky jakiego koloru tekst ma być wyświetlony w napisach, które występują po {color slate grey}. Po tym widzimy napis Jądro: i to on zostanie właśnie wyświetlony w kolorze jaki został wcześniej zdefiniowany, w nawiasie klamrowym. Po tym znowu widać nową linijkę, a dokładniej: $alignc. Oznacza to, że tekst umieszczony za tą linijką będzie wyśrodkowany. Znowu: ${color } ale tym razem nie ma już zdefiniowane koloru. To jakiego kolor będzie tekst? Zajrzyj do punktu e. Następnie widać bardzo ważną rzecz, a mianowicie $kernel. Dzięki temu nasz monitor systemu wyświetli aktualnie używaną wersję jądra.
  9. Kod: Zaznacz cały

    ${font :size=8}
    Zmienia rozmiar czcionki na podany.
  10. Kod: Zaznacz cały

    ${alignr}
    Oznacza, że tekst umieszczony za tym zostanie wyrównany do prawej strony.
  11. Kod: Zaznacz cały

    ${color slate grey}TWARDZIEL: $color$alignr$diskio
    ${color slate grey}${diskiograph 25,200 000000 ff0000}

    Ta pierwsza linijka to wiadomo, ale drug to już nowość... Pierwsze wyrazy (${color slate grey}) w drugiej linijce nie są nowością, ale to ostatnie (${diskiograph 25,200 000000 ff0000}) już tak. Za co to odpowiada? Otóż, jeżeli używasz mojego pliku ~/.conkyrc, zauważyłeś, że w conky są jakby takie prostokąty gdzie wyświetlane jest obciążenie procesora itp. Właśnie ta linijka odpowiada za ten prostokąt. Chciałbym w tym momencie podkreślić, że takie ,,prostokąty'' i inne graficzne bajery (nie mówię tu o wyświetlanych tekstach), w przypadku słabego komputera, mogą obciążać procesor. W takim wypadku zalecane jest usunąć takie "prostokąty" i zadowolić się samym tekstem. Proponuję pobawić się z ${diskiograph 25,200 000000 ff0000}, a dokładniej liczbami, które tam występują - dzięki temu lepiej zrozumiesz filozofię tego ustawienia.
To tyle, jeżeli chodzi o to, co chciałem omówić. Wiem, że jest tego trochę mało, ale conky ma mnóstwo opcji i potężne możliwości i nie jestem w stanie wszystkiego opisać. W miarę czasu postaram się zawsze dodać krótki opis jakiejś ciekawej funkcji. Polecam przyjrzeć się dokładnie zawartości pliku ~/.conkyrc. Znajdź te 30 minut, przeanalizuj ten plik, pozmieniaj niektóre rzeczy - dzięki temu szybciej zrozumiesz składnię ~/.conkyrc.

Więcej informacji o conky znajdziesz na stronie domowej projektu: http://conky.sourceforge.net/ oraz z pomocą Google.
Kaka'
Senior Member
Posty: 3018
Rejestracja: 30 lipca 2006, 13:17
Lokalizacja: Kartuzy

Post autor: Kaka' »

Conky i i2c

Czy nie chciałbyś żeby conky pokazywało temperaturę procesora itp.? Aby to osiągnąć należy zainstalować odpowiednie pakiety:

Kod: Zaznacz cały

aptitude update
i:

Kod: Zaznacz cały

aptitude install lm-sensors lm-sensors-source
Po pomyślnej instalacji, jako root, wydajemy w konsoli polecenie:

Kod: Zaznacz cały

sensors-detect
Na pojawiające się pytania możemy odpowiadać standardowo, czyli Enter. W czasie konfiguracji zostaniemy poinformowani, że trzeba umieścić odpowiednie wpisy w odpowiednich plikach. Robimy wszystko tak, jak jest tam opisane. Uruchamiamy ponownie komputer i w konsoli jako zwykły użytkownik wpisujemy:

Kod: Zaznacz cały

sensors
Sprawdziliśmy działanie.

Teraz dodamy pokazywanie temperatury do monitora conky.

Otwieramy w dowolnym edytorze plik ~/.conkyrc i dopisujemy w nim odpowiednią linijkę (uwaga! linijka, którą przykładowo przedstawiam jest przystosowana do mojego komputera i pliku ~/.conkyrc).

Kod: Zaznacz cały

${color }CPU:$color ${i2c temp 2}C ${color }MB:$color ${i2c temp 1}C
Dodajemy tą linijkę w najbardziej odpowiadające naszym potrzebom miejsce, następnie zapisujemy zmiany i uruchamiamy conky.
Kaka'
Senior Member
Posty: 3018
Rejestracja: 30 lipca 2006, 13:17
Lokalizacja: Kartuzy

Post autor: Kaka' »

Conky jako monitor aktualizacji

Źródło

Po co ciągle wpisywać:

Kod: Zaznacz cały

apt-get update
apt-get dis-upgrade
aby zobaczyć jakie pakiety mają zostać zaktualizowane. Niech informuje nas o tym conky.

Jako root tworzymy plik:

Kod: Zaznacz cały

vim /etc/init.d/UPGRADE.MONITOR
i wpisujemy do niego:

Kod: Zaznacz cały

#!/bin/bash
apt-get update
sh -c "apt-get dist-upgrade -s | grep Inst | cut -c 6- > /var/log/upgrades.log"
oraz, dalej jako root:

Kod: Zaznacz cały

chmod +x /etc/init.d/UPGRADE.MONITOR
Teraz, dalej jako root, otwieramy plik /etc/crontab:

Kod: Zaznacz cały

vim /etc/crontab
i dodajemy do niego:

Kod: Zaznacz cały

10,20,30,40,50,59 * * * * root /etc/init.d/UPGRADE.MONITOR
Opuszczamy edytor zapisując zmiany i jako root wydajemy polecenie:

Kod: Zaznacz cały

/etc/init.d/cron reload
Teraz do pliku:

Kod: Zaznacz cały

~/.conkyrc
w najbardziej odpowiadające nam miejsce wpisujemy:

Kod: Zaznacz cały

Pakiety do aktualizacji:
${execi 20 cat /var/log/upgrades.log}
Kaka'
Senior Member
Posty: 3018
Rejestracja: 30 lipca 2006, 13:17
Lokalizacja: Kartuzy

Post autor: Kaka' »

Gmail i conky - czyli informacje o nowej poczcie


Conky może informować nas, czy dotarła jakaś nowa wiadomość na nasze konto na gmailu. Jest to bardzo
przydatna rzecz.

Najpierw tworzymy sobie prosty skrypcik w katalogu domowym o nazwie check_gmail.sh

Kod: Zaznacz cały

#!/bin/bash

gmail_login="xxx" #login do skrzyki
gmail_password="yyy" #hasło do konta

dane="$(wget --secure-protocol=TLSv1 --timeout=3 -t 1 -q -O - \
https://${gmail_login}:${gmail_password}@mail.google.com/mail/feed/atom \
--no-check-certificate | grep 'fullcount' \
| sed -e 's/.*<fullcount>//;s/<\/fullcount>.*//' 2>/dev/null)"

if [ -z "$dane" ]; then
echo "Connection Error !"
else
echo "GMail: $dane list(ów)"
fi

W miejscu xxx, yyy podaj swój login i hasło do skrzynki.

Teraz dajemy prawa do wykonania skryptowi, czyli:

Kod: Zaznacz cały

chmod +x ~/check_gmail.sh
Natomiast do conky, w najbardziej odpowiadające nam miejsce dopisujemy np.:

Kod: Zaznacz cały

${execi 60 ~/check_gmail.sh}
Poczta będzie sprawdzana co minutę. Czas oczekiwania na połączenie z pocztą ustawiony na 2 sek. żeby w przypadku jakichś problemów z gmailem nie blokować Conky na amen :)


--
Autor: Hagal
Kaka'
Senior Member
Posty: 3018
Rejestracja: 30 lipca 2006, 13:17
Lokalizacja: Kartuzy

Post autor: Kaka' »

Conky i hddtemp


Temperatura dysku twardego w conky? Tak, to też możliwe.

Najpierw instalujemy potrzebny pakiet:

Kod: Zaznacz cały

aptitude update && aptitude install hddtemp
Na wszystkie pytania odpowiadamy twierdząco (ENTER).

Teraz dla przykładu, jako zwykły użytkownik, wpisujemy:

Kod: Zaznacz cały

nc localhost 7634
Powinno pojawić się coś w tym stylu (zależnie jaki dysk posiadamy):

Kod: Zaznacz cały

|/dev/sda|WDC WD1600JS-22NCB1|36|C|
Jak widać jest to trochę nieczytelne, więc dla odmiany wpisujemy:

Kod: Zaznacz cały

nc localhost 7634 | cut -d'|' -f4
Teraz wynikiem jest sama liczba, która zarazem jest temperaturą danego dysku.

Aby dodać wyświetlanie temperatury do conky stworzymy mały skrypt.

Jako zwykły użytkownik wpisz:

Kod: Zaznacz cały

touch ~/.conky_script_hddtemp && chmod +x ~/.conky_script_hddtemp
Teraz otwórz ten skrypt dowolnym edytorem, na przykład:

Kod: Zaznacz cały

vim ~/.conky_script_hddtemp
Wpisz do niego:

Kod: Zaznacz cały

#!/bin/bash
echo "$(nc localhost 7634 | cut -d'|' -f4)"
Zapisz i wyjdź z pliku. Teraz mała próba:

Kod: Zaznacz cały

sh ~/.conky_script_hddtemp
Powinniśmy jako wynik otrzymać temperaturę dysku.

Skoro wszystko działa jak należy, dodaj do ~/.conkyrc w najbardziej odpowiadające Ci miejsce:

Kod: Zaznacz cały

$color${execi 1 /home/TY/.conky_script_hddtemp} ${color #ddaa00} °C
Jeżeli korzystasz z mojego konfigu to możesz zamiast tej linii:

Kod: Zaznacz cały

${color slate grey}TWARDZIEL: $color$alignr$diskio 
wstawić taką linię:

Kod: Zaznacz cały

${color slate grey}TWARDZIEL: $color${execi 1 /home/TY/.conky_script_hddtemp} ${color #ddaa00} °C $color$alignr$diskio
Podziękowania dla użytkownika Hagal
jang
Beginner
Posty: 208
Rejestracja: 26 stycznia 2007, 14:38

Post autor: jang »

http://conky.sourceforge.net/variables.html

Kod: Zaznacz cały

hddtemp	dev, (host,(port))	Displays temperature of a selected hard disk drive 
                                                   as reported by the hddtemp daemon
                                                   running on host :p ort. Default host is
                                                   127.0.0.1, default port is 7634.
Coś mi się wydaje że wcale nie trzeba mieć do tego żadnego dodatkowego skryptu, no chyba że się mylę ?

Pozdrowienia
Zablokowany