úterý 1. května 2012

Jméno a verze DE v Conky

Jméno a verze desktopu v conky
S přechodem na Pinďolína různě pendluju mezi Unity, GNOME Shell, i Classic, abych zjistil, co mi které prostředí může nabídnout. Tedy popravdě je to spíš o tom, které mě bude nejméně s..vadit, protože všechny ty možné výhody kompenzují jejich tvůrci notnou dávkou nevýhod, v případě GNOME Classic si tu hlavní závadu snad museli vymyslet schválně, aby lidi raději používali Unity. Nebo jiné prostředí. Nebo jinou distribuci. V případě Classicu je to bug související s pluginem Place Windows a dokáže vážně na..štvat. Bez něj budete lovit okna pod panelem i Launcherem. Ale to jsem zas začal pindat o jiných kravinách, než o kterých by měl být tento zápisek...

Zkrátka spustím conky.. A počkat, tohle vlastně taky musím napsat! Conky v Pinďovi má taky ošklivý bug (samozřejmě již velmi dlouho nahlášený) - nefungují správně příkazy execp a execpi, které umí spustit skript a jeho výstup parsovat jako součást skriptu Conky. Jenže pokud je vstup delší než pár desítek znaků, je ten zbytek ignorován. To pro můj skript dynamicky zobrazující externí disky nestačí. A tak jsem udělal další prasárnu, protože je to jednodušší, než si starší fungující verzi 1.8.0 kompilovat ručně. Stáhnul jsem hotový deb, ještě z dob Lucida, vybalil z něj soubor /usr/bin/conky a tím na tvrdo přerazil ten co jsem nainstaloval v Pinďovi z repozitáře. A funguje to perfektně, jako doteď v U10.10, jak se zdá.

No a teď tedy k tématu. V conky nechávám zobrazovat jméno a verzi prostředí, které se automaticky detekuje externím skriptem, který jsem si nazval get_de.sh

#!/bin/bash

case $DESKTOP_SESSION in
 "ubuntu" )         unity --version|sed "s/^\(.\)/\U\1/" ;;
 "ubuntu-2d" )      echo Unity 2D ;;
 "gnome-shell" )    gnome-shell --version ;;
 "gnome" )          gnome-shell --version ;;
 "gnome-classic" )  echo 'GNOME Classic' ;;
 "gnome-fallback" ) echo 'GNOME Classic (NE)' ;;
 "kde-plasma" )     kded4 --version|sed -n '2s/ .* / /p' ;;
 "cinnamon" )       cinnamon --version ;;
 * )                echo $DESKTOP_SESSION ;;
esac


Classic panel verzi nesděluje a nevím zatím odkud ji sebrat a tak píšu vlastní řetězec. Samozřejmě se dá stejným způsobem dopsat libovolné prostředí, postupně doplňuju.

Z conky pak volám skript takto:

${execi 10000  ~/.conky/get_de.sh}

Ha, když už jsem u execi.. je tu ještě jeden aktuální conky bug - pokud je zadaný interval delší, než uptime systému (?!:O), dojde k chybě. Zkrátka aktuální Conky je brak a vývoj je tak zabržděný, že chyby se táhnou několik vydání Ubuntu a ani já nemám náladu lovit někde v GITu pracovní verze, kde jsou některé chyby opraveny a kompilovat to. Zkrátka stará dobrá verze 1.8.0, kterou jsem instaloval již v dubnu 2010 je pro mě naprosto vyhovující. Pravda, tenkrát jsem si ji na U9.04 i sám kompiloval, ale tento postup už ve 12.04 nezabral a tak jsem to pro lenost vzdal.

Update: Funkční conky 1.8.2
Update: Funkční conky 1.9.0


5 komentářů:

  1. zdravim myslíš že se vyplati počkat na aktualizaci conkyho nebo to uďelat tak jako ty?

    OdpovědětSmazat
  2. Hola! Čekat je nesmysl, vývoj conky je dost mrtvý, stejné bugy jsou tam léta a nějaký update je v nedohlednu, tím spíš pro pinďu. Verze 1.8.0 vyšla v roce 2010, dneska máme aktuální 1.8.1 i když druhou revizi. Ten jejich GIT je pro mě trochu nepřehledný, i když jsou údajně nějaké pracovní verze 1.8.2, kde je něco opraveno, neměl jsem sílu se k tomu dostat. Třeba mě to někdy chytne, zapátrám, zkompiluju a napíšu, ale zatím nemám motivaci :)

    OdpovědětSmazat
  3. nainstaloval jsem https://launchpad.net/~createsc/+archive/3beol/+build/3311025 tak zatim zkoumam jelikoz conky najelo ale mam to sprehazeny (hodiny se protinaji kalendarem) tak se este na to zkusim mrknout kdyztak tam dam starou verzi

    OdpovědětSmazat
  4. No vidiš, jsem to zas podcenil. Plazil jsem se po sourceforge a gitu a na launchpad jsem nedorazil. Díky za odkaz, večer to zkusím taky.

    OdpovědětSmazat
  5. Takže pro mě to odkazované conky funguje a nemusel jsem upravovat nic

    OdpovědětSmazat

Zkuste prosím při komentováni používat místo volby Anonymní volbu Název/adresa URL, kde vyplníte nějakou přezdívku, adresu zadávat nemusíte. Vědět, které příspěvky jsou od jednoho člověka, je fajn. Díky.

Pokud by se vám náhodou odeslaný komentář na stránce nezobrazil, vytáhnu ho z koše hned jak si toho všimnu. I Google spam filter se občas sekne.