Conky jako panel GNOME

conkybarpanel.png

W pogoni za funkcjonalnością i ładnym wyglądem mojego pulpitu postanowiłem pobawić się narzędziem Conky. Jest to mały program, który potrafi wyświetlać różne informacje o systemie w czasie rzeczywistym. Przykładem może być np. obciążenie procesora czy transfer danych na eth0. Conky jest mocno konfigurowalnym narzędziem, a wygląd statystyk można dość dowolnie ustalać. W moim przypadku zapragnąłem posiadać cienki poziomy pasek z podstawowymi informacjami o stanie systemu. Widziałem takie cudo na stronie uela, który zresztą podzielił się plikiem konfiguracyjnym Conkiego (dzięki wielkie!). Nieco go zmodyfikowałem do swoich potrzeb, a wyniki można zobaczyć tutaj (to ten cienki paseczek u góry). Wszystko było bardzo fajnie, ale natrafiłem na jeden dość denerwujący problem.

Conky, o ile mi wiadomo, nie potrafi stworzyć okienka, które zachowywałoby się jak panel GNOME. Konsekwencje tego są takie, że każde okienko może przesłonić Conkiego i z obserwacji statystyk nici. Być może da się go poinstruować, aby był always-on-top, ale wtedy przesłaniałby on inne okna (paski okien z przyciskami sterującymi). Pogooglowałem więc nieco i znalazłem rozwiązanie. Jest nim specjalny aplet o nazwie gnome-swallow-applet. Aplet ów potrafi “połknąć” dowolne okienko z naszego pulpitu i umieścić jego zawartość w panelu. Właśnie o takim rozwiązaniu myślałem, a działa wyśmienicie. Poniżej przepis krok-po-kroku, jak uzyskać Conkego w panelu (na przykładzie mojego .conkyrc).

  1. Instalujemy pakiet gnome-swallow-applet (jest dostępny w Debianie Lennym) i Conkiego:

    sudo apt-get install gnome-swallow-applet conky
    
  2. Tworzymy w katalogu domowym plik konfiguracyjny do Conkiego o nazwie .conkyrc. Proponuję jako szablonu użyć mojej konfiguracji.
  3. Jeśli jednak ktoś pokusiłby się o samodzielne stworzenie .conkyrc to warto mieć na uwadze kilka rzeczy. Po pierwsze należy poinstruować program, aby stworzył własne normalne okienko bez dekoracji i bez przezroczystości:
    own_window yes
    own_window_transparent no
    own_window_type normal
    own_window_hints undecorate,sticky,skip_taskbar,skip_pager
    

    Co również ważne należy oknu temu nadać unikalny tytuł, aby aplet mógł je znaleźć i “połknąć”. Ja użyłem po prostu nazwy “conky”, jak poniżej:

    own_window_title conky
    

    Kolejną rzeczą jest ustalenie rozmiaru okienka, tak aby mniej/więcej wypełniało nasz panel. W moim przypadku chciałem aby panel rozciągał się na całą szerokość ekranu (czyli 1280 pikseli). Dlatego też dodałem poniższą linijkę do pliku konfiguracyjnego:

    minimum_size 1277 21
    

    Ustaliłem szerokość o 3 piksele mniejszą od rozdzielczości poziomej ekranu (tak wyszło z eksperymentów). Wysokość okna natomiast ustawiłem na wysokość panelu (o czym zaraz). Na końcu trzeba jeszcze ustawić kolor tła okienka Conkiego przez:

    own_window_colour 202010
    
  4. Gdy już mamy skonfigurowanego Conkiego należy dodać nowy panel. Ja zdecydowałem się na panel górny, ale nic nie stoi na przeszkodzie, aby był on na dole (jeśli panel sterujący mamy na górze). Jego grubość ustawiłem na 21 pikseli i zaznaczyłem opcję rozciągnięcia (Expanded). Do owego panelu następnie dodajemy Swallower Meta-Applet:
    swallower.jpg
  5. Na końcu ustawiamy applet, aby uruchamiał Conkiego i go “połykał”:
    swallow.jpg

Po tych wszystkich czynnościach powinniśmy mieć już działającego Conkego w panelu. Dodam jeszcze, że aby zrekonfigurować applet należy kliknąć prawym przyciskiem myszy na pierwszą kolumnę pikseli na panelu. W innym miejscu menu podręczne apletu po prostu nie działa. Co ciekawe wszystko pięknie również śmiga pod Compizem, prócz menu podręcznego. Dlatego też zalecam zabawę z ustawieniami bez włączonego Compiza. Mam nadzieję, że niczego w moim opisie nie pominąłem. Jeśli tak, proszę o komentarz. :)

Mój plik konfiguracyjny do Conkiego
Strona Conkiego

1 komentarz to “Conky jako panel GNOME”

  1. pogrom:

    Cześć,
    zastosowałem to co opisujesz i działa fajnie. Mam tylko jeden problem. Chcę, to zrobić na panelu na którym już mam inne rzeczy i wszystko jest fajnie poza jedną rzeczą. Aplet swallower po wstawianiu na pasek ma postać szarego kwadracika. I po tym jak już połknie conky’ego po lewej stronie jest pionowy pasek pojedynczych pikseli a po prawej (mowa o końcach) jest taki sam pasek ale już kilku pikseli. No i te paski maja kolor szary, a pane lmam przezroczysty, a tapetę …nie szarą. No i kiepsko to wygląda. Nie ma problemu gdy aplet zajmuje cały panel ale w moim przypadku tak nie jest.

    Da się jakoś temu zaradzić? Szukałem w necie jak można konfigurować domyślny kolor tła apletu ale nie udało mi się niczego znaleźć.

Skomentuj