neděle 31. ledna 2010

Automatické vypnutí/uspání počítače po nastavené době

Poslední aktualizace 26.5.2010 - vylepšena funkčnost, ošetřeny výjimky skriptu Shutdown-timer.

K pohodlnější, mocnější a uživatelsky přítulnější aplikaci pro vypínání, uspávání i vraždění napsané v Pythonu, se dostanete kliknutím na odkaz Shutdown GTimer v záhlaví této stránky.

Každý může někdy potřebovat vypnout, nebo uspat počítač až po určité době, kdy to nebude moct udělat sám. Třeba si pustíte večer film a máte v plánu u něj usnout. Když jsem před lety přešel z Windows XP na Ubuntu, začal jsem, jak  jsem byl zvyklý, hledat program, který by mi tuto možnost dal. Nic jsem nemohl najít, až jsem nakonec objevil jednu KDE aplikaci, která pod Gnome fungovala jen občas, jak měla náladu. Nakonec jsem přišel na to, proč takových aplikací moc není - vždyť tu přeci máme ten mocný příkazový řádek! ...

pondělí 18. ledna 2010

Magická klávesa SysRq

Jednou za čas (jako například dnes) se dostanu do situace, kdy X server přestane odpovídat, na klávesnici nereaguje a není jak ho shodit. Tedy vlastně je, máme tu přeci onu magickou klávesu SysRq, pomocí které můžeme požádat kernel, aby nám pomohl. Jenže jak vlastně byly ty kombinace...? Po půlroce, či roce, už se mi ty kombinace pletou, častěji je nepotřebuji. Tak si to dnes připomenu, zapíšu a třeba i konečně zpamatuju. ...

neděle 17. ledna 2010

Konverze audio souborů přímo z Nautila

Nautilus podporuje začlenění externích skriptů do svého kontextového menu, to jsem tu již zmínil. Jedním takovým skriptem, který máme přímo v repozitářích Ubuntu je balík nautilus-script-audio-convert, který umožňuje převádět mezi sebou různé formáty audio souborů. Převádí konkrétně wav, ogg, mp3, mpc, flac, ape, aac (m4a) nebo wma do wav, ogg, mp3, mpc, flac, ape nebo aac. Umí také kopírovat id3 tagy, nebo je možné je při konverzi doplňovat ručně. ...

neděle 3. ledna 2010

Jak obcházím nedostatky Rhythmboxu

Z nějakého nepochopitelného důvodu jsem si z hudebních přehrávačů nejvíce oblíbil Rhythmbox, přestože příliš nesplňuje mé požadavky. Neumí třeba procházet adresářovou strukturu, hudební data organizuje pouze podle ID tagů do vlastní kolekce. Jenže to máte pár výběrů, některé soubory nemají tagy, .. a je to pěkný bordel. Další nepříjemnou vlastností Rhythmoxu na mém systému je to, že často tuhne. Prostě najednou přestane hrát a reagovat. Je třeba ho zabít a nastartovat znovu. Naštěstí to nedělá častěji, než jednou za hodinu :)  (Edit: možná za to může funkce crossfade ve spojení s formátem wma. Opět ten problémový Microsoft.. :) ...

pátek 1. ledna 2010

Jak zakázat Opeře ikonu v oznamovací oblasti

Update: Přinejmenším v Opeře 10.6 a novějších, přestal fungovat přepínač -notrayicon, ale ikonu lze vypnout v configu. Zadáte-li do adresního řádku:

opera:config

můžete konfigurovat, co chcete. Tray ikona je konkrétně zde:

opera:config#UserPrefs|ShowTrayIcon

Odškrtnete, odrolujete dolů na konec sekce a zvolíte Uložit/Save. Při příštím spuštění se již ikona neobjeví.


Používání historie v BASHi

Historie uchovává seznam spouštěných příkazových řádků a umožňuje jejich rychlé opakované použití. Standardně se uchovává 500 řádků pro jednu relaci (počet je v proměnné $HISTSIZE) a po jejím ukončení ukládá seznam do souboru určeném proměnnou $HISTFILE, jehož maximální velikost v řádcích definuje proměnná $HISTFILESIZE. Pokud budeme chtít tyto hodnoty trvale změnit, bude potřeba je definovat v konfiguračním souboru ~/.bash_profile, nebo ~/.bashrc. třeba takto:

export HISTSIZE=1000
export HISTFILESIZE=100000

Celý seznam historie od nejstarších po nejnovější, vypíše příkaz:
history

lépe
history | less

který umožní výpis stránkovat. Nebo lze použít jako parametr příkazu history počet posledních řádků, které se mají zobrazit:

history 20

Základní možností vyhledávání v historii je použití kurzorových kláves "nahoru" a "dolu", které listují seznamem historie. Zajímavější funkcí je ineraktivní vyhledávání, které se vyvolá klávesovou zkratkou Ctrl+R. Umožňuje psát řetězec, na jehož základě se historie okamžitě prohledává od nejnovějšího záznamu směrem k nejstaršímu a zobrazuje výsledek. Další sisk kombinace Ctrl+R vyhledá další výskyt zadaného řetězce. Pokud se zobrazil řádek, který hledáme, můžeme ho ihned spustit klávesou ENTER, popřípadě klávesou ESC (escape) ukončit vyhledávání s tím, že máme možnost nalezený řádek před spuštěním upravit. Pro zrušení vyhledávání a návrat na aktuální řádek slouží kombinace Ctrl+G.

čtvrtek 31. prosince 2009

Užitečné příkazy pro Bash terminál

Emulátor terminálu je jedna z mnou nejpoužívanějších aplikací v Ubuntu. Dá se s jeho pomocí často vyřešit problém podstatně rychleji, než pomocí grafické aplikace. Tuhle jsem třeba potřeboval udělat iso obraz CD a zjistil, že vlastně nemám žádný grafický nástroj, který by to uměl. A přitom bylo řešení hned pod nosem: ...

úterý 17. listopadu 2009

Zobrazení a schování Cairo-Docku třeba tlačítkem myši

Cairo-Dock sice nabízí klávesovou zkratku pro ruční aktivaci a deaktivaci docku, ale při jejím využití, se dock zobrazuje tam, kde se aktuálně nachází kurzor myši, což není přesně to, co si představuji. Při nastavení automatického schovávání, se dock zase často aktivuje omylem v nejnevhodnější okamžik a naopak se schovává, když o to nestojím. Dock by se měl zobrazit tam, kde jsem mu předem nastavil, tedy na spodní hraně monitoru, s možností ho zobrazit, či naopak skrýt, podle potřeby. Naštěstí Cairo-Dock nabízí metodu  ShowDock pro systém D-Bus, jíž se dá zobrazování docku ovládat. Stačí tedy napsat skript, který mu bude posílat příkazy pomocí programu dbus-send. Abych nezapoměl - v nastavení Cairo-Docku je třeba mít zaškrtnut plugin Dbus.

CairoDock-show-hide.sh
#!/bin/bash

if [ ! `pidof cairo-dock` ]; then cairo-dock -ac; fi
if [ ! -f /dev/shm/cairo.status ]; then echo visible>/dev/shm/cairo.status;fi
 

N=`cat /dev/shm/cairo.status`
case $N in
     visible) dbus-send --dest=org.cairodock.CairoDock /org/cairodock/CairoDock org.cairodock.CairoDock.ShowDock boolean:false; echo hidden > /dev/shm/cairo.status;;
     hidden) dbus-send --dest=org.cairodock.CairoDock /org/cairodock/CairoDock org.cairodock.CairoDock.ShowDock boolean:true; echo visible > /dev/shm/cairo.status;;

esac

Skript nejdříve kontroluje, zda již dock běží a pokud ne, spustí ho. Není tedy třeba dock dávat do seznamu aplikací spouštěných po startu systému. Spouštím ho s cairo enginem (přepínač -c), protože OpenGL mi dělá problémy (přepínač -o). Dále skript kontroluje, zda již existuje soubor s informací o stavu docku (Cairo-Dock sám tuto informaci neposkytuje, přinejmenším mně známým způsobem) a pokud ne, vytvoří ho. Další část kódu čte stavový soubor a posílá doku pokyn, aby se přepnul do stavu opačného, přičemž tento stav opět uloží do stavového souboru, ktrerý, mimochodem ukládám do paměti RAM.
Stačí si spouštění tohoto skriptu nastavit na klávesovou zkratku ve vašem desktopovém prostředí, nebo, jako já, na jedno z tlačítek myši třeba pomocí programu xbindkeys. Konfigurační soubor .xbindkeysrc v domovském adresáři pak bude obsahovat podobnou definici:

"/cesta/ke/skriptu/CairoDock-show-hide.sh"
m:0x0 +b:10

V tomto případě jsem si ovládání docku nastavil na tlačítko č. 10, které se na mé Logitech MX1100 nachází pod palcem.
Ještě jedna důležitá informace - Cairo dock má stále aktivní oblast na hraně oblasti, kde se dock zobrazuje, která slouží pro zobrazení docku po najetí myši. V nastavní je potřeba tuto oblast zmenšit na výšku jednoho bodu a pozici docku nastavit tak, aby jeho spodní okraj (pokud dock máte dole) byl mimo aktivní plochu monitoru, tedy aby kurzor myši neměl šanci na tuto oblast dosáhnout a dock omylem aktivovat. Pozici docku je možno měnit i bez okna nastavení, stejně jako pozici běžného okna, tedy stisknout ALT, podržet na docku levé tlačítko myši a přesunout jak je potřeba.

Všechny metody, které Cairo-Dock pro systém D-Bus nabízí, zjistíte takto:
$ dbus-send --print-reply --dest=org.cairodock.CairoDock /org/cairodock/CairoDock org.freedesktop.DBus.Introspectable.Introspect

neděle 15. listopadu 2009

Vlastní skript spouštěný při suspend / resume

Nejen Ubuntu 9.04, ale většina aktuálních linuxových distribucí, využívá pro obsluhu uspávání a probouzení počítače balík pm-utils. Možnosti tohoto nástroje vypíše příkaz man pm-actions zadaný do terminálu. Osobně jsem měl problém s tím, že se velmi často nedařilo uspat počítač kvůli programu gnome-do, který se uspání bránil. ...

neděle 1. listopadu 2009

Cairo-Dock 2.x způsobuje průhlednost oken některých QT aplikací

Cairo-Dock je jedna z napodobenin DOCKu, který používá Apple ve svém OS X a nutno přiznat, že dnes již poměrně stabilní a použitelná. Dlouhou dobu jsem raději používal konkurenční Avant Window Navigator, ale asi před rokem jsem přešel na Cairo-Dock, který se začal více blížit mé představě. Nejsem ale nijak zvlášť náročný uživatel tohoto nástroje a zdaleka nevyužívám všech možností, za což může především Compiz Fusion a Gnome-Do. Gnome-Do umí i vlastní dock, ten mi ovšem moc nesedl.
Před časem ale přišla verze 2.0, která krom cairo backendu začala nabízet i OpenGL, které Docku propůjčí ještě efektnější animace a po spuštění čerstvě nainstalovaného Docku se člověk nestačí divit, když ikony začnou po najetí kurzoru myši hořet a mezi tím se tučňák klouže po břichu, nebo pobíhá s vánoční čapkou. Cairo-Dock na OpenGL ovšem způsobuje jednu anomálii, kdy některým QT aplikacím zprůhlední okna. Konkrétně je postižen třeba SMplayer, či VirtualBox. Obsah oken pak úplně chybí, nebo je vidět jen na tmavém pozadí, podle zvoleného videovýstupu. ...

neděle 11. října 2009

Ovládání aplikací přes D-BUS v Ubuntu - Aktualizováno 28.11.10

Poslední aktualizace 28.11.2010 - upřesnění


D-Bus je systém pro komunikaci mezi procesy v desktopovém prostředí a více se o něm dozvíte třeba na wiki, ale především zde. V Gnome i v KDE4 je dnes tento systém standard, využívá se pro systémovou komunikaci, ale své rozhraní pro D-Bus nabízí plno dalších alpikací, které je možno touto cestou ovládat, nebo z nich naopak získávat informace. Bash rozhodně není nejvhodnější pro práci s D-Bus, ale nějaké možnosti tu jsou. Jedná se především o programy dbus-send, který umí posílat požadavky a dbus-monitor, kterým lze sledovat signály, jež aplikace na D-Bus posílají. Dále je zajímavý program qdbus, který navíc umí jednoduše vypsat všechny dostupné služby na příslušné sběrnici a ovládat aplikace jednodušeji, než dbus-send. Pro qdbus je potřeba nainstalovat balík qt4-dev-tools, který obsahuje i grafickou nadstavbu qdbusviewer, tahle varianta ale do GNOME zatáhne poměrně dost MB z KDE ...

neděle 4. října 2009

Conky podruhé - Rhythmbox

Dnes popíšu jak v Conky zobrazit Rhythmboxem právě přehrávanou skladbu i s možností zobrazení obrázku alba. Pro zobrazení názvu skladby, alba, délky, pozice právě přehrávané skladby je možno použít program rhythmbox-client, který je součástí Rhythmboxu. ...

neděle 13. září 2009

Hledal jsem ramdisk, našel /dev/shm/


Při psaní skriptů jsem narazil na potřebu uložit někde soubory, které si pak jiný program vyzvedne. Někdy je to potřeba dělat poměrně často a paměť RAM je pro tuto činnost daleko vhodnější, než pevný disk.  Na netboocích, používajících  laciné SSD disky, má každý neprovedený zápis na disk ještě větší hodnotu. Proto jsem hledal jak zprovoznit v Ubuntu ramdisk, kam bych dočasné soubory odkládal. Při té příležitosti jsem zjistil, že linuxové systémy provozují již v základu složku /dev/shm/, s virtuálním souborovým systémem tmpfs, pro sdílení dat mezi aplikacemi, jejíž obsah se ukládá právě do paměti RAM. Standardně je její maximální velikost rovna polovině RAM, ale aktuální velikost se dynamicky mění podle obsahu. Pokud se RAM přeplní, přeteče obsah do SWAPu, pokud nějaký je, čímž se ta výhoda, o kterou nám jde může ztratit - to se u ramdisku nestane. Složka je pro uživatele běžně přístupná pro čtení i zápis a tak je to nejjednodušší způsob, jak zrychlit práci s dočasnými soubory. Samozřejmě do té doby, než se začne swapovat. O něco více můžete nalézt třeba zde, v češtině jsem toho zatím moc nenašel.

Zajímavý článek, který s tématem souvisí je na Linuxexpresu.

pátek 21. srpna 2009

Monitorování systému pomocí Conky

Co je to Conky a co umí si můžete přečíst třeba zde, nebo zde. Osobně oceňuji naprostou konfigurovatelnost, nízké systémové nároky a možnost jedním pohledem zkontrolovat stav a vytíženost celého systému. Conky je slušně vybaven pro spolupráci s externími skripty, takže jeho možnosti víceméně závisí na vašich schopnostech a fantazii. Na webu je toho spousta, pěkná sbírka nápadů je na ubuntu fóru. Některé z nich jsem upravil a použil, pár jsem si jich napsal sám, třeba se někomu budou hodit:

Detekce disku v CD/DVD mechanice
Dynamické zobrazování informací o výměnných discích
Automatický restart Conky po pádu


Klikněte na obrázek pro zobrazení použitých objektů.




neděle 10. května 2009

Spuštění programu, který nerad Compiz

Občas si zahraji UT2004 a protože Compiz může dělat problémy, je dobré ho před spuštěním hry vypnout. Napsal jsem skript nocompiz, který, pokud dostane jako parametr cestu k programu, zajistí jeho spuštění bez Compizu a po ukončení programu Compiz opět spustí, pokud byl předtím aktivní. Pokud nocompiz nedostane žádný parametr, nabídne vytvoření spouštěče na vaši Plochu (Desktop), který využije ke spouštění vybraného programu sebe sama. Objeví se dialog pro výběr souboru a po jeho výběru se zobrazí okno pro zadání jména spuštěče. Pokud ukončíte okno výběru souboru bez výběru, program se ukončí, pokud nezadáte jméno, dostane spouštěč jméno nonameSkript můžete umístit, kam chcete, ale po vytvoření spouštěče, ho již nesmíte přemisťovat. Nezapoměňte souboru nastavit spustitelný příznak. Ikonu si můžete nastavit normálně, pravým myšítkem na spouštěč ve vlastnostech. ...