ú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. ...