pondělí 21. dubna 2014

Svátkový indikátor má konečně ppa

Slíbil jsem ppa už před lety, ale přišlo mi to strašně složité, nikde jasný návod jak na to. Když jsem přešel na kompilovaný jazyk, začalo to být ale opravdu nezbytné, protože vám už nemůžu předhodit jeden univerzální instalační balík, musím už přinejmenším rozlišovat architekturu, i když jsou binárky třeba kompatibilní se všemi aktuálními verzemi systému. A tak jsem se rozhodl, že s tím konečně pohnu, i kdyby se mi měly strhnout mozkové závity.

A tak je tu konečně ppa a přepsaný svátkový indikátor, který vás jednak zbaví ošklivé ikony, která se objevila v U13.10 díky změně v libappindicator, ale také již používá standardní systémovou lokalizaci a seznamy jmen a dnů pracovního klidu se přemístily do separátních souborů, čímž se stala aplikace podstatně univerzálnější.


Takže jsem se před týdnem ponořil do světa autotools, debuild, pbuilder a launchpadu a nakonec to včera začalo fungovat. Zatím forma trochu pokulhává, ale to se časem doladí. Hlavně že to konečně funguje.

Instalace:

sudo add-apt-repository ppa:georgdh/gdh
sudo apt-get update
sudo apt-get install indicator-nameday

K dispozici jsou balíky pro Ubutnu 12.04, 13.10 a 14.04, dál to asi rozšiřovat nemá smysl, krom tedy přidávání budoucích verzí.

Indikátor pak najdete v nabídce aplikací jako Indicator Nameday a dá se použít nejen přímo v Unity, ale i v Classic/Flashback panelech s appletem pro zobrazování indikátorů (to je výchozí stav). S rozšířením Appindicator support i v GNOME Shell.

Jak to funguje

Aplikace je lokalizovaná podle systému, přičemž základem je angličtina a podle lokalizačních proměnných prostředí ($LANGUAGE/$LANG) se automaticky použije český, nebo slovenský překlad, to už je věc systému.

V menu aplikace je teď místo přepínače lokalizace výběr sady jmen (a svátků). Soubory se seznamy jmen a svátků mají jednoduchou strukturu a po instalaci se nachází v adresáři /usr/share/indicator-nameday/db. Jednotlivé soubory mají jména s koncovkami .names pro jména a .holidays pro dny pracovního klidu. Indikátor při startu načte seznam všech souborů s koncovkou .names a přidá je do menu, kde mezi nimi můžete přepínat. Jako jméno může být použito cokoliv, ale pokud je to lokalizační zkratka jazyka (cs,sk, ..) bude automaticky načtena podle lokalizace prostředí, pokud nebylo určeno jinak parametrem při spuštění. Pokud není nalezen balík podle lokalizace, je automaticky použit výchozí cs. S načtením xx.names se také automaticky načítá obsah souboru xx.holidays.

Indikátor zatím nepoužívá žádné soubory pro uložení nastavení a tak si nepamatuje, jaký seznam jste měli navolený před posledním ukončením aplikace. Toho si mohou všimnout především Slováci, kteří používají jinou lokalizaci, při spuštění z nabídky aplikací. Volba pro automatické spouštění indikátoru při startu prostředí si ale nastavení pamatuje, protože vytvořený spouštěč aplikaci předává jméno seznamu jmen jako parametr. Vlastně by nebyl problém tento spouštěč překopírovat i do ~/.local/share/applications/, čímž by se přerazil ten výchozí v systému.

Ikony aplikace používají standardní schéma, takže je možné jim vytvořit náhradníka pro jednotlivé sady ikon. Výchozí jsou v
/usr/share/icons/hicolor/scalable/apps/indicator-nameday.svg - aplikace
/usr/share/icons/hicolor/scalable/status/indicator-nameday-status.png - panel

Datum Velikonočního pondělí počítám podle Gausse a automaticky se doplňuje do seznamu dnů pracovního klidu pro aktuální rok. Ve vyhledávacím okně lze hledat data Velikonočního pondělí pro libovolný jiný rok, stačí zadat čtyřmístný letopočet.

Vyhledávání funguje okamžitě jak píšete a není nutné řešit malá velká písmena, ani diakritiku. Lze použít i regulární výrazivo.

Tak asi takto. Vypadá to následovně, moc se toho nezměnilo:


11 komentářů:

  1. Dobrá práce :-)

    OdpovědětSmazat
  2. Akorát ti v návodu chybí mezera mezi apt-get install jsem to zkopírovat a divil se proč mi to nejde ;-)

    OdpovědětSmazat
    Odpovědi
    1. Omlouvám se, už ani nevidim, co píču :) Opraveno

      Smazat
  3. Super, super, gratulace k PPA. Jen hlásím asi báug, nejde to v unity přesunout v ~/.local/share/indicators/application/ordering-override.keyfile, hlásí se to jako Indicator-NameDay
    a ať to dám kdekoli, tak stejně jako wallch to nic nezmění a je to u mě předposlední.
    Unity 7.2 na ubuntu 14.04 + 3.14 kernel.

    OdpovědětSmazat
    Odpovědi
    1. Přiznám se, že já jsem zatím v 14.04 nehnul s indikátorama co mám vůbec.. Jen jsem si ověřil, že se ten soubor při restartu Unity opravdu načítá a zkontroloval stringy, ale zatím nevím kde to vázne.

      Smazat
    2. Jasný, však tohle zas není takový problém, nejhorší byla ta ikona pokud byly jiné než výchozí ikony, potažmo skoro žádné téma ikon tu ikonku nemělo :-D

      S indikátorama hnout jde, jen by mě zajímalo zda nějak jde pohnout i s Bluetooth, indikátorem baterky atd. Na to jsem nedošel, jediný co posunu je nm-applet (síť, jeho ruční start jsem řešil v lubuntu 14.04 co jsem dával včera na historický notes na hraní pro děti mé známé).
      No a taky jsme ještě nepřišel na to jak zrušit sledování stavu baterky myši (logitech performace mx) nebo vůbec taky vyřešit tu hnusnou ikonku co mě to tam hodí (stejnej problém jak s tvým indikátorem svátků).

      Smazat
    3. mimochodem pokud používals konfigurovatelné notify-osd tak leolik už vydal verzi i pro 14.04, takže poslední trn v oku odstraněn, ostatní jsou jen prkotiny :-D

      Smazat
    4. Já už od minulého léta používám výhradně GNOME Shell a kde jsou notifikace trochu hodnotnější, interaktivní - na Empathy perfekt, můžu přes notifikaci rovnou odpovědět a přitom nepřepínat okna. Ale za info každopádně dík, možná sepíšu nějaké ty tweaky pro 14.04, to jsou nejoblíbenější články :)

      Smazat
    5. jo, no hele, gnome jsme chvilku používal, aole uvažuju že zas zkusím, jedinný problem: doinstaloval sjem teda gnome-shell a ejhle nebylo v nabídce lightdm, ale XBMC tam je :-D
      Až tam bude tak spíš by možná nebylo špatné napsat pár názvů doplňků, hlavně na použití na dvou monitorech.
      Už jsme gnomečku víc nakloněn, rok mě trvalo odnaučit se zlozvyky z widlí :-D Tákže v podstatě klikat a hledat ovládací prvky jinde než dole. Už abych se zas přeučil zavírat okna jinde než vlevo nahoře :-D

      PS: to jak fungují notifikace v gnomečku jsme zkoušel a je to dobré. V Unity mě stačí kiknout na oznamovací bublinu a jaksi se mě kupodivu otevře i skype, pidgin, jen thunderbird občas zlobí.

      Smazat
  4. Dobrý den,
    Chtel jsem to vyzkoušet, ale mi se s tím zatím nějak nedaří, při spuštění v terminálu to píše : mirek13@mirek13-desktop:~$ indicator-nameday
    Error while reading 'cs:en' pack
    loading 'cs.*' pack...
    Zkouším to na XUBUNTU 14.04

    OdpovědětSmazat
    Odpovědi
    1. Ten error je normální, protože to bere podle lokalizace prostředí a en sada jmen neexistuje, proto načte cs jako výchozí. Jenže je to indikátor pro Unity a tak ho zobrazí jen panely, které umí tyto indikátory zobrazovat. Jestli existuje nějaký wrapper pro panel Xfce nevím.

      Smazat

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.