Před pár dny jsem restartoval mou domácí pec (samozřejmě nedobrovolně) a po spuštění systému nereagoval Cairo Dock na můj skript, kterým přes tlačítko myši ovládám jeho viditelnost. Zároveň se nad dokem objevila notifikace o změnách v nové verzi, mezi nimiž svítilo i DBus, což dávalo tušit, kde je problém. A změna metody ShowDock konečně přinesla to, co mi v Cairo Docku chybělo hodně dlouho - přepínat mezi stavy Show/Hide. Do verze 2.4 bylo možné dok schovat, nebo zobrazit, ale už né jednoduše stav prohodit, nebo alespoň zjistit, v jakém stavu se aktuálně nachází. Nově bere metoda místo boolean parametru integer a krom jasných 0 a 1 akceptuje i číslo 2, které změní sučasný stav na opačný. Volání metody z příkazového řádku vypadá takto:
Zobrazují se příspěvky se štítkemd-bus. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemd-bus. Zobrazit všechny příspěvky
pondělí 17. října 2011
úterý 17. listopadu 2009
Zobrazení a schování Cairo-Docku třeba tlačítkem myši

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
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
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 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 ...
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 ...
Přihlásit se k odběru:
Příspěvky (Atom)