Zobrazují se příspěvky se štítkemGNOME. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemGNOME. Zobrazit všechny příspěvky
čtvrtek 27. srpna 2015
GNOME Shell - restart po pádu s reaktivací rozšíření
GNOME Shell na mém Ubuntu 14.04 tu a tam padne. Většinou se automaticky restartuje, ale občas to nezvládne a zůstane padlý. Po aktualizaci Firefoxu na verzi 40 se to stávalo neustále, dokud jsem FF nezakázal HW akceleraci grafiky. Někdy se také při restartu rozhodne, že jeho pád způsobuje nějaké rozšíření a tak preventivně zakáže úplně všechna. Tu a tam restartovat GS ručně, případně si naklikat aktivaci potřebných rozšíření, jistě není takový problém, ale jediný stisk klávesové zkratky je bezpochyby příjemnějším řešením. Samozřejmě není od věci, aby se záloha seznamu aktivních rozšíření automaticky aktualizovala při změně. Tak jestli vás něco takového zajímá, můžete se kouknout na mé řešení.
GNOME Tweak Tool - oprava nefunkčního přidávání aplikací spouštěných po startu
Gnome Tweak Tool (v čské lokalizaci Vylaďovací nástroj) v GNOME 3.12 obsahuje drobnou chybku, která způsobuje nefunkčnost nástroje pro přidání aplikací spouštěných po startu. Ne že by to byla taková tragédie, stejně umožňuje přidat pouze aplikace, jež mají v systému desktopový spouštěč, tudíž vlastní skript tudy neprotlačíte, spouštěč si musíte vyrobit jinak a to už si rovnou dáte do ~/.config/autostart sami.
Nicméně nechat něco rozbitého, když je oprava tak jednoduchá, jako v tomto případě... Celý problém je o tom, že pythoní skript, který to má na svědomí, se snaží získat jméno uživatele (který skript spustil) cestou, která zrovna nefunguje. Nefunguje to na Ubuntu, stejně jako na Archu. Náprava tedy spočívá v tom, že se do kódu přidá jeden import a pro získání jména uživatele se použije jiný modul, jenž výsledek dá. ...
Nicméně nechat něco rozbitého, když je oprava tak jednoduchá, jako v tomto případě... Celý problém je o tom, že pythoní skript, který to má na svědomí, se snaží získat jméno uživatele (který skript spustil) cestou, která zrovna nefunguje. Nefunguje to na Ubuntu, stejně jako na Archu. Náprava tedy spočívá v tom, že se do kódu přidá jeden import a pro získání jména uživatele se použije jiný modul, jenž výsledek dá. ...
sobota 6. června 2015
Výchozí prohlížeč obrázků v Ubuntu/GNOME zobrazuje humus
Začal jsem po čase ve větším zpracovávat fotografie a tak jsem si všiml, že výchozí prohlížeč obrázků v GNOME zobrazuje stíny a celkový kontrast jinak, než jakákoli jiná aplikace, kterou pro zpracování a prohlížení fotografií používám, včetně webových prohlížečů. Ze stínů tahá na světlo všechen ten bordel, co má být zraku smrtelníka skryt a celkově ničí kontrast. Je to jinak prohlížeč milý, přítulný a výchozí, tak jsem hledal, co je s ním je špatně. A našel jsem další zákeřnou automatiku. ...
neděle 3. srpna 2014
Také se vám po restartu prostředí přepíná klávesnice na anglickou? Mně už ne.
Tento problém se táhne s Ubuntu již několik vydání a po upgradu na Ubuntu 14.04 postihl i mě. Po přihlášení do desktopu a kdykoliv restartuju GNOME Shell, což dělám poměrně často, se mi klávesnice přepne na en-us, kterou ani v nastavení desktopu nemám přidanou. Točilo mě to tak, že jsem si v rychlosti spíchnul skript, který mi běžel na pozadí a přes gsettings ji každých pár sekund pro jistotu nastavoval na českou, což fungovalo tak, že jsem úplně zapomněl, že tu ten problém stále je. Dneska jsem to musel řešit na cizím systému a tak jsem si dohledal systémovější řešení. Všechno zlo (opět) pochází od IBus. ...
neděle 6. dubna 2014
GVFS metadata a pozice ikon na Ploše z příkazového řádku
Sice jsem se naučil ikony na ploše nepoužívat vůbec, protože prázdná plocha má být prázdná a uklidňující, případně informativní, ne stresující, plná bordelu, ale když jsem zahlédl požadavek na možnost nastavit rozmístění ikon na ploše Ubuntu z příkazového řádku, přišlo mi to zajímavé. Koukl jsem se kam Nautilus (který plochu v Ubuntu a GNOME spravuje) zapisuje po změně pozice ikony přetažením myší a ... zjistil prdlajs. Nautilus totiž využívá virtuální filesystém GVFS a tak se to stalo ještě zajímavější. Jistě, že to někde na ten disk nakonec zapíše také, ale stopuje se to hůř a nakonec jsou data v binární podobě. Zjistil jsem každopádně jak mohu číst i zapisovat metadata k jednotlivým souborům (i zcela nová, vlastní) přes gvfs-* příkazy a napsal dva skripty pro uložení a obnovení pozic ikon na ploše spravované Nautilem. Ale zrovna tak není problém obhospodařit Nema, či jiného správce plochy využívajícího GVFS. ...
pondělí 9. prosince 2013
Vlastní klávesové zkratky pro akce Nautila
Nautilus není co býval a je co je. Podstatné jsem již rozpitval dříve, ale nezmínil jsem možnost předefinování a doplnění klávesových zkratek. Některým se třeba stále stýská po funkční klávese Backspace, což není problém zařídit. Můžete si také přidat zkratky na akce, které Nautilus ve výchozím stavu umí pouze z menu a urychlit si tak práci. A nakonec to není jen pro Nautila nejnovějšího, stejně si můžete přenastavit i starší verze, třeba v U12.04. ...
neděle 3. listopadu 2013
Jak funguje GNOME Shell a jeho rozšíření
GNOME Shell sám o sobě neoplývá mnoha nastaveními, která by si mohl uživatel jednoduše naklikat, na druhou stranu je navržen tak, že ho lze změnit k nepoznání trochou skriptování. Na jakém principu GS a jeho rozšíření fungují trochu naťuknu a přidám pár tipů pro zájemce o vlastní tvorbu. ...
neděle 15. září 2013
Vlastní úpravy vzhledu GNOME Shell i GTK+
Sice existuje dost témat vzhledu pro GS a GTK již hotových, ale velmi často jsou to nedodělky, které vám toho víc zkazí, než vylepší. Výchozí vzhled GS není zas tak hrozný a tak si vystačím s pár drobnými kosmetickými zásahy do vyladěného základu. Úprava vzhledu prostředí GS není nijak extra složitá věc, jen je třeba dát dohromady potřebné soubory. Napsal jsem si krátký skript, který všechny potřebné soubory vydoluje ze systému a zkopíruje do tématického adresáře v $HOME, kde můžete začít s úpravami sami a přidám pár drobných tipů. ...
pátek 30. srpna 2013
GTK+3 - průhledné widgety, barvy, souřadnice myši, ..
Před časem jsem začal psát o využívání GTK+ toolkitu při výrobě oken pro své aplikace a rád bych na to navázal. Klasické "Hello World!" ukázky jsou neskutečně nudné a proto budu pokračovat tím, co zajímá každého začátečníka: průhlednost, barvičky a jiné efektní kraviny, prostě zábava. Výsledkem bude okénko s textem, kterému je možné měnit barvy popředí i pozadí včetně průhlednosti, kolečkem myši měnit velikost a na požádání se bude schovávat, když se nad ním zdrží myška, tedy i nějaké to dolování souřadnic a rozměrů jak okna, tak kurzoru myši. Jo a MRDEL je normální slušné slovo! ...
pátek 19. července 2013
GNOME Shell - Správce profilů nastavení monitorů - rozšíření do panelu
Správce profilů nastavení monitorů je něco, co se jako základní součást linuxových desktopových prostředí moc nevidí. Spíš vůbec nevidí a docela mě to udivuje, protože například s notebookem je potřeba přenastavovat konfiguraci monitorů poměrně častá. Snad se něco již několik měsíců rýsuje pro KDE, ale o něčem podobném pro další rozšířené desktopy jsem zatím nic nečetl. O to víc potěší snaha uživatele GNOME Shell, který věnoval energii tvorbě rozšíření určenému právě pro jednoduché přepínání mezi konfiguracemi monitorů. A navíc na to nešel úplně hloupě. ...
sobota 15. června 2013
Vala.. Proč jsem se vlastně páral s tím Pythonem tak dlouho?
Posledních pár dní si hraju s jazykem Vala, který se zdá být ideální náhradou Pythonu ve spojení s GTK+ toolkitem. Vala nabízí o něco méně komfortu, než PyGObject, ale výsledkem je nativní kód, který umí přímo využívat knihovny psané v C. Vala je totiž ve výsledku C, protože kompilátor valac nejprve převede program do C a ten pak zkompiluje pomocí gcc. Jazyk je to oproti C objektový a oproti Pythonu typový, což je pro líného skriptonistu mého formátu, jehož vývoj prošel etapami ZX BASIC > ASM Z80 > deset let nic > BASH, AWK > Python, trochu opruz. Dobrá, současně s ASM Z80 jsem se ještě seznamoval s Pascalem, ze kterého si pamatuju jen otravné BEGIN - END, ale C a jeho odnožím jsem se úspěšně bránil, připadal jsem si na to příliš hloupý. Nebo líný, to vyjde na stejno. Ještě minulý týden se mi při pohledu na slovo 'void' dělalo nevolno a představoval si, jak můj mozek vybuchuje a usazuje se po stěnách místnosti. ...
neděle 2. června 2013
Indikátory v GNOME Shell
Jako uživatele Ubuntu, potažmo Unity, mě při používání prostředí GNOME Shell vadilo, že indikátory pro Unity panel se sice objevují v Message Tray (ta informační lišta, co se zobrazí po najetí na dolní okraj orazovky), ale bez ikon a s menu, která se sice po kliknutí zobrazí, ale kdo si to jednou zkusil, měl jistě chuť někomu nafackovat. Tedy především v aktuálních verzích počínaje 3.6, dřív to bylo o malinko lepší. Zkrátka to teď vypadá spíš jako velká provokace. Dnes jsem se po čase podíval extensions.gnome.org a hle, je tu řešení. ...
pondělí 27. května 2013
Kategorie aplikací GNOME Shell 3.8 umí, jen trochu jinak
V GNOME Shell 3.8 byly zrušeny kategorie aplikací v overlay režimu Činnosti, které se zobrazovaly u pravého okraje. Přeci jen když už se hrabu v aplikacích ručně, usnadňují kategorie orientaci, takže jsem to nepovažoval za nějak hodnotné rozhodnutí. Jenže vývojáři GNOME mají v plánu groupování aplikací přímo v hlavní nabídce, ve formě složek, podobně jako je to třeba v iOS a připravují k tomu interface do další verze. Už nyní je ale možné se pohrabat v gsettings a přimět GS vyrobit nabídku aplikací rozdělenou do složek podle kategorií. ...
neděle 27. ledna 2013
Když v Unity po startu nefungují vlastní myší zkratky
Nastavíte si v CCSM například přechod na vedlejší pracovní plochu na otočení kolečka u levé hrany displeje, nebo náhled všech otevřených oken na kliknutí u pravé hrany displeje a ono to funguje. Jenže po dlaším restartu systému už většinou ne. Většinou také stačí ještě jednou restartovat Unity, ale rozhodně je to opruz. Někde jsem tu tento problém již před delší dobou zmínil, vyskytuje se ve všech dosavadních verzích Unity (3D). Má to i poměrně snadné řešení, ale v předchozím příspěvku Pár tweaků pro Ubuntu 12.10 Quantal jsem to nějak zapomněl přidat. Přidám to tedy nyní, když jsem na to opět narazil při hrátkách s novou instalací. ...
sobota 26. ledna 2013
Jak vytáhnout odpadky z koše, když Nautilus nestačí
Nedávno jsem jednomu uživateli pomáhal se situací, kdy si v Shotwellu omylem smazal fotografie, které se tímto ocitly v koši, což je ta lepší zpráva, ale zároveň byla smazána adresářová struktura, ve které se fotografie nacházely, což je komplikací. Dříve jsem zaznamenal podobné případy i s Rhythmboxem. A když je těch souborů hodně a hlavně byly roztříděné v mnoha adresářích, je to radost. Nautilus sice umí soubory z koše obnovit, ale jen tehdy, pokud cílový adresář existuje. Pokud původní umístění nenajde, prostě se na to vy..prdne. Asi to má nějaký hlubší smysl, ale já osobně bych uživateli nabídl původní lokace v takovém případě obnovit. Bohužel to mohu nabídnout jen externě, ale pokud je nějaký zoufalec v této situaci, nic není ztraceno. Nautilus si totiž původní umístění pamatuje, jen ho neumí obnovit. ...
neděle 18. listopadu 2012
PyGObject - Aktualizace GUI z callbacku, časovače, i vlákna
Už je to nějaká doba, co jsem se začal vrtat v GTK+ pomocí Pythonu a tak začnu trousit nějaké poznámky související s tímto toolkitem, což mám od začátku v plánu, jen jsem se doposud neodhodlal. Nebude to mít žádný řád, budou to jen útržky kódu, které se budu snažit co nejsrozumitelněji okomentovat a mělo by jít především o věci, které mi chvilku trvalo najít, poskládat a tak.
Začnu něčím základním, na co začátečníci narazí skoro vždy, než si uvědomí, jak jejich GUI vlastně funguje a kdy se aktualizuje okno a jeho součásti. ...
Začnu něčím základním, na co začátečníci narazí skoro vždy, než si uvědomí, jak jejich GUI vlastně funguje a kdy se aktualizuje okno a jeho součásti. ...
úterý 22. května 2012
Nautilus Extension API z Pythonu
Je víc možností, jak rozšířit funkčnost správce souborů Nautilus. Kontextové menu můžete vylepšit o nějakou novou funkci nejjednodušeji pomocí externích skriptů, jak už jsem tu psal. Můžete využít plných možností API Nautila a psát rozšíření (extensions) přímo v C, ale můžete také využít rošíření Nautilus Python a psát je v Pythonu. Poslední zmíněné řešení vám oproti tomu prvnímu dává daleko víc možností a oproti druhému s tím budete mít daleko méně práce. Méně práce to je moje a tak se snad moc nepředřu, když se budu snažit fungování Nautilus Extension API trochu přiblížit. Přidám i odkaz na repozitář s pár hotovými rozšířeními připravenými rovnou k instalaci.
pondělí 7. května 2012
Rozšíření Nautila vlastními skripty
Nautilus umožňuje velmi jednoduše rozšířit svou kontextovou nabídku (to menu, co se zobrazí po kliknutí pravým myšítkem). Úplně nejjednodušší je použití skriptů, které jen umístíte do patřičného adresáře a Nautilus přidá do své kontextové nabídky submenu Skripty, kde je pak najdete. Pokud by se měla vaše rozšíření objevit v první úrovni kontextového menu, je to možné zařídit třeba za pomoci modulu python-nautilus a napsat tedy rozšíření v Pythonu.
V aktuálním Ubuntu chybí nějaké ty balíky s rozšířeními pro Nautila, jako například nautilus-gksu, který umožňoval spouštět vybrané položky s právy roota. Je to proto, že je autoři zatím nepřepsali do podoby vhodné pro aktuální GNOME 3. Tak si můžeme jednoduše pomoct sami a vystačíme si prozatím s BASHem.
V aktuálním Ubuntu chybí nějaké ty balíky s rozšířeními pro Nautila, jako například nautilus-gksu, který umožňoval spouštět vybrané položky s právy roota. Je to proto, že je autoři zatím nepřepsali do podoby vhodné pro aktuální GNOME 3. Tak si můžeme jednoduše pomoct sami a vystačíme si prozatím s BASHem.
sobota 5. listopadu 2011
Nautilus 3 je opravdu trochu jiný
Nedá se nic dělat, musím si zas postěžovat. Konstruktivně samozřejmě :) Nový Nautilus se chová v mnohém trochu jinak, než jeho předchůdce a rozhodně mi naboural navigaci. Pokud z nějakého důvodu použijete pro práci se soubory výchozího správce souborů GNOME, stále je efektivnější držet se klávesnice, než myši. V dvojkovém Nautilu otevřu adresář a dál se naviguji postupným psaním jména podadresáře (pokud ho znám), kam potřebuji. Nalezený adresář odentruji, tedy otevřu, a psaním pokračuji dále. Když se spletu Backspacem poslední písmeno smažu. A najednou je tu Nautilus 3 a všechno je jinak. Dobře, ne všechno, ale dost na to, aby mě to na..štvalo. Takže začnu psaním vyhledávat adresář, Enterem ho otevřu, píšu další adresář a... prdlačka. Co to kur..nik je? Vyhledávací políčko po otevření adresáře nezmizelo, jak jsem očekával, ale zůstalo i se svým obsahem a tak jsem zadáváním dalších znaků nemohl uspět. Kur..nik, říkám si, a začnu automaticky mačkat klávesu Backspace. Co to kur..nik zase je? Aha, vím, že Backspace v novém Nautilu supluje chybějící navigační ikonu "přejít k nadřazenému adresáři", ale i když jsem v textovém poli vyhledávání? Paráda, takže nemůžu mazat a když otevřu adresář, musím stisknout klávesu Escape (nebo jako retarda chvilku počkat, až to vyhledávací políčko samo zmizí), abych mohl pokračovat. Nezdá se mi to chytré. No co, vždy se dá ještě stisknout Ctrl+L a v adresním řádku nového Nautila je vše při starém. Když jsem (letmo) hledal bugy na toto téma, našel jsem pouze dřívější problémy s tím, že po otevření podadresáře nešlo už psaním vyhledávat vůbec. Nicméně i stávající chování považuji za bug, takže to případně zkusím ohlásit.
Těch drobných změn souvisejících s přechodem na GNOME 3 je víc, ventilovat bych chtěl příště přinejmenším vytváření rozšíření pro Nautilus 3 v Pythonu. Ale ještě tomu musím přijít pořádně na kloub, na stránkách gnome.org je dokumentace.. není :)
úterý 11. října 2011
Počítání sezení s ConsoleKit em
Řešil jsem problém, který spočívá v tom, že pokud je v systému přihlášeno více uživatelů než jeden, vyskočí při pokusu o vypnutí/restartování systému požadavkem na službu ConsoleKit (nevím na koho mocnějšího se obrátit :) okno, které chce akci autorizovat heslem superuživatele. Stačí se v některém terminálu přihlásit jako root pomocí příkazu sudo su (rozumnější sudo -i, sudo -s, nezakládají další session) a můj Shutdown GTimer nesplní svůj úkol. A vzhledem k tomu, že okno System policy po chvíli samo zmizí (alespoň v některých verzích Ubuntu), tak pokud není uživatel očima na monitoru, ani se nedozví proč. V nové verzi by měl být Shutdown GTimer schopen předem na tuto skutečnost upozornit. Tato systémová politika je funkční přinejmenším od Ubuntu 10.04 výš, verze 8.04, kde vypnutí systému ještě řeší HAL, toto omezení neplatí, alespoň pokud jste v rámci GNOME session přihlášeni v emulátoru terminálu jako root.
Služba ConsoleKit je správcem sezení (sessions) a tudíž je to zase ona která dodá informaci, kolik sezení je aktivních a tím zda se dá systém vypnout bez požehnání vyšší moci. Tedy služba dodá seznam, který je nutno spočítat. Šel jsem na to klasicky přes DBus, v příkazovém řádku je dotaz možno formulovat takto:
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.GetSessions | grep Session | wc -l
nebo takto (vzhledem k tomu, že pro každé sezení založí ConsoleKit uzel (node), který odkazuje na metody a signály určené pro jeho správu):
dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit org.freedesktop.DBus.Introspectable.Introspect | grep Session | wc -l
Pro ConsoleKit jsou ovšem v systému pro příkazový řádek přímo příkazy, které se používají jednodušeji a výstup je již formátován, bez xml značek. Příkaz ck-list-sessions vypíše všechna sezení, včetně jejich atributů. Z výpisu lze vyfiltrovat počet sezení takto:
ck-list-sessions | grep ^Session | wc -l
ConsoleKit toho z příkazového řádku nabízí více, můžete si třeba zkontrolovat historii sezení a zjistit, že se vám díky nedostatečně zabezpečenému ssh serveru někdo několikrát naboural do systému :D Více třeba zde:
http://wiki.ubuntu.cz/ConsoleKit
V Pythonu to samozřejmě řeším bez shellu, ale princip je stejný, navíc tam mám možnost se pověsit na signály, které jsou ConsoleKitem generovány při přidání, či odebrání sezení a na jejich základě aktualizovat stavovou informaci. Pro další verzi Shutdown GTimeru si ale vystačím s detekcí více sezení při aktivaci odpočtu v režimu Vypnutí a Restartu, málokdo asi při tomto použití ocení upozornění o změně situace v průběhu odpočtu. Ještě mě teď napadlo, že pokud spustíte Shutdown GTimer jako root, zmíněné omezení samozřejmě neplatí a tudíž musím v kódu podchytit i tuto situaci. Tak snad brzy, první nástřely jsou již v svn.
Přihlásit se k odběru:
Komentáře (Atom)






