Prosty widżet w Karamba

Całkiem niedawno postanowiłem, że chciałbym mieć na moim pulpicie zdjęcie pewnej ukochanej osoby. Ustawienie jej zdjęcia jako tapetę nie odpowiadało mi. Postanowiłem, że skorzystam sobie z programu pod KDE – SuperKaramba.

Znalazłem nawet pewien widżet, który dowolny obrazek “wsadzał” w taką fajną ramkę i umieszczał na pulpicie. Całkiem miły skrypt (A-photo), ale strasznie toporny i obciążający mój sprzęt. Nie mogłem nawet zmienić obramowania do obrazka (a było ich kilka), dlatego też postanowiłem, że sam sobie zrobię prosty widżet, który umieści zdjęcie na pulpicie.

Ku mojemu zdziwieniu stworzenie prostych widżetów dla karamby wcale nie jest tak skomplikowane. Wykonanie skryptu, który mnie zadowala zajęło ok. 5 minut i 3 linijki kodu. Wprawdzie to jest prymitywny skrypt (wyświetla jedno zdjęcie, które jest na przezroczystym tle) to mi on wystarcza ;-)

Kod do mojego skryptu wrzucę na samym końcu. Chciałbym Wam pokazać, że stworzenie swojego własnego, prostego, widżeta wcale nie jest takie straszne :)
Na samym początku pragnę poinformować, że nie czytałem żadnego manuala. Wszystko jest oparte na podstawie innych widżetów, które pobrałem. Niektóre wyjaśnienia również mogą być mało “profesjonalne”. Za wszelkie utrudnienia przepraszamy.

Hello World!

Na początek zaczniemy od czegoś takiego ;-]
Tworzymy nowy plik z rozszerzeniem .theme (tak aby środowisko KDE od razu mogło go skojarzyć z Karambą).
Na początek wklejmy coś takiego:

karamba x=100 y=100 w=200 h=50 locked=false

defaultfont font="Sans serif" fontsize=11 color=255,255,255

text   x=5 y=5  value="Hello World!" fontsize=20

To teraz czas na tłumaczenie ;-) . Linijka zaczynająca się od słowa “karamba” tworzy nowy obiekt, który pojawi się na pulpicie na współrzędnych x i y. Parametr “w” i “h” odpowiada za szerokość i wysokość naszego widżeta.
Polecenie “defaultfont” ustawia standardową czcionkę, jej rozmiar, oraz kolor.
Polecenie “text” służy nam za wyświetlenie tekstu w pozycji x y względem widżeta. W tym przykładzie jest dodatkowo jednorazowo zmieniony rozmiar czcionki.

Coś bardziej skomplikowanego ;p

Ok to teraz zróbmy z tego widżetu jakiś użytek… W tym przykładzie nasz widżet będzie po prostu pokazywał output polecenia “uptime”.
No to zacznijmy od stworzenia nowego obiektu karamba…

karamba x=100 y=100 w=350 h=50 locked=false

defaultfont font="Sans serif" fontsize=11 color=255,255,255

Teraz dopiszmy do końa jeszcze taką linijkę:

text   x=5 y=5  sensor=program program="uptime" interval=1000

Polecenie “text” już znamy, ale co się dzieje dalej? Ustawiany jest sensor, który będzie odczytywał wynik polecenia zdefinowanego w “program”. W zmiennej “program” możemy ustawić praktycznie każde polecenie jakie nam przyjdzie do głowy, także możliwości są całkiem spore ;-]. “Interval” spowoduje, że widżet będzie odświeżany co 1000 milisekund.

To może jakiś wykresik?

Znane są tzw. “monitory systemu” takie jak “torsmo”, lub “conky”. Do widżetów Karamby również można zrobić masę tego typu zabawek. Wykonanie prostego grafu, który przedstawia obciążenie procesora jest wręcz banalne, a wygląda tak:

graph  x=5 y=5  sensor=CPU w=200 h=25 points=70 color=255,255,127

Oczywiście x i y oznaczają położenie naszego wykresu, a w i h jego wymiary.

Tło

Dodanie tła też jest bardzo proste. Do tego celu tworzymy jakiś obrazek w formacie PNG, najlepiej o takich samych wymiarach jak nasz widżet. Możemy dla tego tła ustawić jakąś przezroczystość (tak aby ładniej wyglądało :-]). W pliku .theme ustawienie takiego tła będzie wyglądało mniej więcej tak:

image x=0 y=0 path="bg.png" name="background"

W podobny sposóbm możemy wstawić dowolny obrazek, bez nadawania mu atrybutu “name”.

Kod prostego monitora

Oto kod jednego z prostszych widżetów jaki znalazłem na kde-look:

######################################################################
# English Version
######################################################################

karamba x=100 y=100 w=250 h=150 locked=false

defaultfont font="Sans serif" fontsize=11 color=255,255,255

######################################################################
# System
######################################################################

# System
text   x=0 y=0   value="System" fontsize=20

# Processor -> Name
text   x=0 y=25  sensor=program program="cat /proc/cpuinfo | grep 'model name' | sed -e 's/.*: //'"

# Processor -> Frequency
text   x=0 y=40  value="Frequency :"
text x=150 y=40  sensor=program program="cat /proc/cpuinfo | grep 'cpu MHz' | sed -e 's/.*: //'" align=right interval=10000
text x=155 y=40  value="MHz"

# Processor -> Load
graph  x=0 y=75  sensor=CPU w=200 h=15 points=70 color=255,255,127
text   x=0 y=95  value="CPU Load: "
text x=125 y=95  sensor=CPU format="%load%" align=right

# Processor -> Temperature
text   x=0 y=110 value="CPU Temp :"
text x=125 y=110 sensor=sensor type="CPU Temp" format="%v°C" align=right

# Processor -> Fan
text   x=0 y=125 value="CPU Fan :"
text x=125 y=125 sensor=sensor type="CPU Fan" format="%vrpm" align=right

Zakończenie

Tworzenie widżetów nie jest skomplikowane. Oczywiście potrzeba na to odrobinę czasu, ale efekty bywają całkiem ciekawe.
Z mojej strony to będzie “prawie” wszystko. Jeszcze dorzucę kod widżeta, który zrobiłem, oraz prosty efekt jego działania.

Mój widżet ;p

Zdjęcie specjalnie zmieniłem ;p

karamba x=100 y=100 w=220 h=320 locked=false

image x=0 y=0 path="bg.png" name="background"

#oczywiście może być inny adres do obrazka ;p
image x=10 y=10 path="/home/radmen/foto/{foto}"

6 Responses to “Prosty widżet w Karamba”

  1. paszczak000 April 5, 2007 at 12:04 pm #

    :) Mój ulubione widget to notesik na pulpicie. Robię go sobie tak:

    karamba x=450 y=400 w=160 h=130 locked=true interval=10000
    image x=0 y=0 w=160 h=130 path="foglio.png"
    text x=20 y=15 color=0,0,0 fontsize=10 font="neuropol" interval=10000 sensor=program program="less notes"
    clickarea x=0 y=0 w=160 h=130 onclick="kwrite notes"

    A tu obrazek

  2. radmen April 5, 2007 at 12:04 pm #

    Paszczak: niezłe :] Daj mi paczuszkę ze źródełkami ;

  3. paszczak000 April 5, 2007 at 12:04 pm #

    Jaką paczuszkę? :P

    Do umieszczania zdjęć na desktopie korzystam z A-foto

    Przypadł mi do gustu i na laptopie ładnie to wygląda ;-)

  4. radmen April 5, 2007 at 12:04 pm #

    Blah, właśnie to a-photo mi się nie spodobało. Jakieś to toporne ;-]
    Dawaj paczkę od tych notatek :-]
    … a wróć… przeca wszystko co potrzebne już mam :D

  5. paszczak000 April 5, 2007 at 12:04 pm #

    Nie wiem :) Dodałem A-foto, dodałem zdjęcie i już :)

    No masz wszystko. Pobierz obrazek, ustaw sobie wielkość, ścieżki i gotowe. Strasznie mi się to przydaje. Takie żółte karteczki.

  6. radmen April 5, 2007 at 12:04 pm #

    Co do A-photo to luzik… Zrobiłem sobie własnego widżeta i on mi w zupełności wystarcza :D