GNOME oznamovací oblast na dva řádky
Posledních pár dní hledám nějaké přijatelné řešení nastavení mé pracovní plochy. Jedná se mi hlavně o možnost mít otevřeno mnoho oken na více plochách naráz, aby byly seskupené pod jedno tlačítko na panelu, pokud možno znázorněné pouze ikonkou, ne ikonkou a názvem okna, při kliknutí na tuto ikonku budu přenesen na plochu, kde se ono okno nachází, ne že se okno přenese na plochu, kde jsem já a podobně.
Řešení se nakonec povedlo docílit více než dobře za pomoci Dockbaru z gnome-look.org. Trošku hrátek v GIMPu a dokonalost sama.
Funguje to jednoduše, a přesně tak, jak jsem si představoval. Když okno není minimalizované (nezáleží, na jaké virtuální ploše je) je ikonka barevná, je-li okno minimalizované, je černobílá (viz. Terminal Server Client – 4. ikonka zprava), pokud je nějaká aplikace zaplá vícekrát a jedno okno je minimalizované a další není/nejsou, je ikonka barevná napůl (viz. ikonka Chromia), pokud je okno aktivní, je pozadí světlejší (viz. Gimp) a pokud si okno žádá o pozornost, je pozadí červené, nebliká, to mě přivádí k šílenství, pouze je obarvené (viz. Gajim).
Možná bych byl i spokojen a nechal to být, tak jsem se soustředil na panel aplikací, že jsem si nevšímal, jak blbě vypadá oznamovací oblast, každá ikonka jinak velká. Nu co, nevadilo by mi alespoň, kdyby byly všechny velké, ale tohle nebylo ono a byl jsem na to upozorněn i jinými. Myšleno, že k dokonalému desktopu scházelo jen vyřešení tohoto problému. Bohužel řešení nebylo tak jednoduché.
Jiná prostředí jako například KDE a tuším že i ve Windows jsou ikonky v oznamovací oblasti ve více řádcích automaticky, když je panel dostatečně vysoký, aby se tam vešly, bohužel, v GNOME to tak není a co je horší, nedá se to jednoduše ani nastavit, respektive se to nastavit nedá ani složitě.
Ovšem existuje na to patch, který tuto funkci zavádí (thx za info Mirek Kašpar). Nachází se na gnome-look.org, přesněji zde. Nevýhodou je ovšem, jak sem už řekl, jedná se o patch. Což znamená, že musíte patchnout zdrojový kód gnome panelu, respektive apletu pro oznamovací oblast, zkompilovat a nainstalovat. No moc user friendly to není, navíc když GtkTable, které patch používá pro ikonky v oznamovací oblasti místo GtkBox je v nové verzi GTK trošku problémový, alespoň v tomto případě, takže něco typu ikonky napráskané do malého prostoru není nic neobvyklého a potkalo to i mě.
Řešení sem našel dvě, buď to, vždycky, když se ikonky takhle splácnou (pokaždé když tam přibude/ubyde nějaká) o jeden pixel zvětšit a zase zmenšit celý panel, ikonky se srovnají, ale je to řešení ala ROFLMAO, měnit po každé změně v oznamovací oblasti velikost panelu aby se ikonky srovnaly.
Druhé řešení je plácnutí do zdrojového kódu patche. Patch vypadá takto.
Je sice pro GNOME panel 2.26.2 a já mám verzi 2.26.3 ale letmým pohledem do zdrojáku zjistíte, že jediný rozdíl je v číslu, aby ladil s verzí GNOME celého, kód se nijak nezměnil.
Co nejvíce zaujalo mě byl řádek 68, tedy rows = height / ( priv->icon_size + 2);. Tato část kódu udává, v kolika řádcích ikonky budou, respektive zjišťuje, do kolika si může dovolit je dát, jeden a více. Tento řádek zároveň znamenal onen problém s občasným zhuštěním ikonek do malého prostoru na jednom řádku.
Na tom kódu není nic moc špatného, prostě podle výšky panelu určí, do kolika řádků ikonky rozdělí, vzhledem k tomu, že u svého panelu jsem prostě věděl, že ikonky budou vždy ve dvou řádcích, změnil jsem řádek 68 na
68 | rows = 2; |
a tím budou ikonky na dva řádky, ať se děje co se děje. Zároveň je tedy zbytečný i řádek 69, který zjišťuje, zda se proměnná rows nerovná nule, pokud ano, změní ji na jedničku, ať existuje alespoň jeden řádek, ve kterém by se ikonky zobrazily. Jelikož jsem proměnnou rows natvrdo nastavil na dvě, není nutné zjišťovat, zda se náhodou nerovná jedna, takže jsem řádek zakomentoval.
Obstaral jsem si zdrojový kód gnome-panelu, momentálně mám verzi 2.26.3, takže jsem si stáhl gnome-panel-2.26.3.tar.bz2.
Na prvních třech řádcích patche jsem ještě změnil cestu, takže jsem všechny výskyty 2.26.2 přepsal na 2.26.3 abych mohl patch aplikovat. Rozbalil jsem stažené zdrojové kód a patch nakopíroval do složky s kódem.
Závislosti pro kompilaci a aplikace patche
Co potřebujete doinstalovat pěkně zjistíte z výstupu ./configure. Na GNOME-look autor vypsal následující
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ORBit-2.0 gdk-pixbuf-2.0 pango gtk+-2.0 glib-2.0 gio-2.0 gio-unix-2.0 libgnome-2.0 libgnomeui-2.0 libbonoboui-2.0 gnome-desktop-2.0 libglade-2.0 gconf-2.0 libgnome-menu dbus-glib-1 |
Pro Fedoru jsem instaloval takto
1 | yum install ORBit2-devel gdk-pixbuf-devel pango-devel gtk+-devel glib2-devel libgnome-devel libnogmeui-devel gnome-desktop-devel libglade2-devel dbus-glib-devel gnome-menus-devel libwnck-devel libgweather-devel |
Po doinstalování balíčků aplikujeme patch, přejdeme v konzoli do kořenového adresáře se zdrojovým kódem a kde jsme patch nakopírovali a aplikujeme jej příkazem
1 | zcat na-tray-multirow-2.26.2.patch.gz | patch -p1 |
Připomínám, že patch by s tímto zápisem měl být v gz formátu (gzip) a takto se jmenovat, jestli se jmenuje jinak, přizpůsobte tomu i tento příkaz.
Kompilace kódu a instalace
Nyní můžeme spustit configure následujícím příkazem a parametrem
1 | ./configure --prefix=/usr |
Začne se kontrolovat dostupnost balíčků, knihoven a připravovat zdrojový kód pro kompilaci. Pod úspěšném dokončení pokračujte příkazem
1 | make |
poté
1 | make install |
Hotovo. Nyní stačí odebrat z panelu dosavadní oznamovací oblast a přidat jí znovu, nyní by již měla být ve dvou řádcích.
Závěrem
Je škoda, že taková funkčnost není již v základu, ono asi nikdo moc nepočítal s tím, že tak vysoký panel někdo bude provozovat, ale podle počítadla stažení to není zrovna málo lidí. Naopak s malým panelem (nebo malýma ikonkama v oznamovací oblasti v tomto případě) nepočítají ani programátoři aplikací, jelikož například Banshee při ikonkách 16×16 a menších ikonku prostě nezobrazí viz bug #590771.
Patch popsán v tomto zápisku problém velkých ikon v tray oblasti řeší, není to sice nejjednodušší, ale mohlo by být i hůř, toto řešení just work.

Komentáře: 7 k zápisku “GNOME oznamovací oblast na dva řádky”
lol kompilovat panel kvuli takove kraviny :) ale je jasna vyhoda otevreneho software, neco ti chybi? uprav si to :)
To není kravina, to je hafo důležitá věc =) Něco na ten styl, že ne jen tohle je výhoda opensource jsem chtěl napsat, nakonec jsem nějak zapomněl, je to fakt, jen tak si dopsat funkci nejde všude =)
jeste ze takove veci u Windows nemusim resit :-D
Kefe kdy se vracíš?
Ahoj, jak udělat ty krásné velké ikonky programů? :-)
Nejjednodušeji přes DockbarX.
Díky moc :-)