Začalo to tak, že jsem hledal vzhled Windows 7 pro Gnome a místo toho narazil na toto. A co že to je vlastně opěvované Aero Snap? To je taková ta legrace kdy přetažením okna k jednomu z okrajů obrazovky dojde k jeho maximalizaci na celou případně půl obrazovky. To je oblíbené zejména na větších (širších) monitorech a při práci v oblíbeném Wordu a podobných programech. V případě internetového prohlížeče a klasického rozlišení 1280x1024 ten zmatek vypadá asi takto:
Instalace potřebného vybavení
V terminálu zadejte:
sudo aptitude install compizconfig-settings-manager wmctrl
Nastavení (první možnost)
Z nabídky Systém - Předvolby spusťte Manažer nastavení Compizu a v části Obecné zvolte Commands (na obrázku zvýrazněno červeně).
Nyní na Command line 0 (Příkazová řádka 0) vložte tento text:
WIDTH=`xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'` && HALF=$(($WIDTH/2)) && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,0,0,$HALF,-1
na Command line 1 toto
WIDTH=`xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'` && HALF=$(($WIDTH/2)) && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$HALF,0,$HALF,-1
a konečně na Command line 2 následující
wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz
Vypadat by to mohlo jako na následujícím obrázku
Teď musíme ještě říci kdy se mají tyto příkazy provést, přesuňte se proto na kartu Edge Bindings předchozího okna. Postupným kliknutím na zvýrazněná tlačítka nastavte provedení příkazu při přesunu myši doleva "Run command 0" (Left), doprava "Spustit příkaz 1" (Right) a nahoru "Spustit příkaz 2" (Top). Výběr pozic se přitom provádí jednoduše kliknutím na příslušné místo na zobrazeném obrázku. Zřejmě budete upozorněni, že toto nastavení koliduje s jiným, ale myslím, že si můžete v klidu trvat na svém.
Po zavření okna se vše aktivuje a začne fungovat. Oproti řešení Windows, v našem případě nemusíte okno aktivně přesouvat (uchopit a přesunout), ale stačí pouze umístit ukazatel myši doleva/doprava/nahoru a daná akce se s aktivním oknem provede.
To může být nepraktické a tak se doporučuje nastavení určité časové prodlevy před provedením příkazu. To se nachází v části Obecné pod tlačítkem Hlavní nastavení.
A dál nastavení prodlevy najdete na v podobě jezdce nebo editačního políčka pod textem Edge Trigger Delay (čas prodlevy před spuštěním skriptu).
Vše je jinak (druhá možnost)
Nelíbí se vám, že se aktivní okna zvětšují aniž byste je zrovna uchopili myší? Chcete "opravdové" chování stejné jako ve Windows. Pak se podívejte na tuto stránku, z které si dovolím citovat následující skripty. Vytvořte si tři následující soubory se skripty pro obsluhu událostí přetažení okna doleva/doprava/nahoru. Skripty oproti předchozím testují zda je stisknuto tlačítko myši a zda skutečně "držíte" nějaké okno nebo ne.
snap_doleva.sh
#!/bin/sh # # CompizSnap is a collaborative project from ubuntuforums.org and is free software. # This script adds window snapping functionality to compiz using the commands plugin. # # Directions: run "xinput list" to find your mouse's ID# and then edit the MOUSE variable below: # MOUSE="11" # ----- Don't edit below this line unless you know what you are doing. WIDTH=`xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'` && HALF=$(($WIDTH/2-10)) echo $WIDTH TEMPWIDTH=$(($WIDTH-10)) echo $TEMPWIDTH if /usr/bin/X11/xinput --query-state $MOUSE | grep down then while (/usr/bin/X11/xinput --query-state $MOUSE | grep down) do echo 'button pressed' done if [ "$(/usr/bin/X11/xinput --query-state $MOUSE | grep "valuator\[0\]=." | sed s/"valuator\[0\]="//)" -le 10 ] then wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,0,0,$HALF,-10 else echo "exiting without matching" exit 1 fi else echo "exiting because button isnt " exit 1 fi
snap_doprava.sh
#!/bin/sh # # CompizSnap is a collaborative project from ubuntuforums.org and is free software. # This script adds window snapping functionality to compiz using the commands plugin. # # Directions: run "xinput list" to find your mouse's ID# and then edit the MOUSE variable below: # MOUSE="11" # ----- Don't edit below this line unless you know what you are doing. WIDTH=`xdpyinfo | grep 'dimensions:' | cut -f 2 -d ':' | cut -f 1 -d 'x'` && HALF=$(($WIDTH/2)) echo $WIDTH TEMPWIDTH=$(($WIDTH-10)) echo $TEMPWIDTH if /usr/bin/X11/xinput --query-state $MOUSE | grep down then while (/usr/bin/X11/xinput --query-state $MOUSE | grep down) do echo 'button pressed' done if [ "$(/usr/bin/X11/xinput --query-state $MOUSE | grep "valuator\[0\]=." | sed s/"valuator\[0\]="//)" -ge $TEMPWIDTH ] then wmctrl -r :ACTIVE: -b remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -b add,maximized_vert && wmctrl -r :ACTIVE: -e 0,$HALF,0,$HALF,-1 else echo "exiting without matching" exit 1 fi else echo "exiting because button isnt " exit 1 fi
snap_nahoru.sh
#!/bin/sh # # CompizSnap is a collaborative project from ubuntuforums.org and is free software. # This script adds window snapping functionality to compiz using the commands plugin. # # Directions: run "xinput list" to find your mouse's ID# and then edit the MOUSE variable below: # MOUSE="11" # ----- Don't edit below this line unless you know what you are doing. if /usr/bin/X11/xinput --query-state $MOUSE | grep down then while (/usr/bin/X11/xinput --query-state $MOUSE | grep down) do echo 'button pressed' done if [ "$(/usr/bin/X11/xinput --query-state $MOUSE | grep "valuator\[1\]=." | sed s/"valuator\[1\]="//)" -le 10 ] then wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz else echo "exiting without matching" exit 1 fi else echo "exiting because button isnt " exit 1 fi
POZOR! Jak je uvedeno v hlavičce každého skriptu, je nutné ověřit "číslo myši", řádek
MOUSE="11"
To se provádí zadáním příkazu xinput list, který mi v mém případě sdělil toto
⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Genius Laser Mouse id=8 [slave pointer (2)] ⎜ ↳ Macintosh mouse button emulation id=11 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Power Button id=7 [slave keyboard (3)] ↳ Chicony USB-PS/2 Combo Keyboard id=9 [slave keyboard (3)] ↳ Chicony USB-PS/2 Combo Keyboard id=10 [slave keyboard (3)] ↳ 00:1F:82:26:BC:04 id=12 [slave keyboard (3)]
Protože mám laserovou myš Genius, změnil jsem řádek MOUSE="11" na MOUSE="8" ve všech třech souborech, jinak mi výše uvedené skripty nefugnovaly.
Další postup je stejný jako v předchozím. V nastavení Compiz napište místo výše uvedených příkazů odkazy na vytvořené skripty (nezapomeňte jim nastavit právo pro spuštění a raději volte absolutní odkazy na ně) a také zrušte časovou prodlevu, v tomto případě je zbytečná. Příslušná změna okna se přitom provádí okamžitě po uvolnění levého tlačítka myši.
Vše je úplně jinak (třetí možnost)
Ještě jsem trochu zahledal a pro příznivce ovládání oken z klávesnice tu je další možnost. Nainstalujte si další pluginy pro compiz
sudo aptitude install compiz-fusion-plugins-extra
a v Manažeru nastavení Compizu vám přibude přibude efekt Mřížka. Po jeho zapnutí budete moci měnit velikost/umístění oken pomocí kláves Ctrl + Alt + <číslo numerické klávesnice>. Např. Ctrl + Alt + 4 je doleva, Ctrl + Alt + 6 doprava, Ctrl + Alt + 1 do levého dolního rohu a Ctrl + Alt + 9 do pravého horního rohu, atd. Opakovaným stiskem klávesové zkratky bude okno měnit svoji velikost.
Něco navíc poprvé
Pokud jste nainstalovali Manažer nastavení Compizu prvně, trochu se v něm porozhlédněte, nastavení je spousta. Pokud chcete vidět takové ty malé náhledy oken při ukázání na spuštěný program dole na panelu, pak si nezapomeňte zapnout Window Previews (najdete v částí Doplňky).
Něco navíc podruhé
Konečně z úplně jiného soudku, ale přece si to nenechám jen pro sebe. ;-) Neodolal jsem a v rámci akce 1 + 1 zdarma na CPRESSu jsem si pořídil knížky Jádro systému Linux a Naučte se C++ za 21 dní. Tato akce platí do konce prázdnin (vyprodání zásob) a znamená, že máte každou druhou (tu levnější) knihu zdarma. Osobně mohu doporučit také nejlepší knihu všech dob - Digitální fotografie v programu GIMP (tu už mám zhltlou a jako dárek je zcela idální v jakémkoliv množství).
Recenzi knihy Jádro systému Linux najdete zde a Digitální fotografie v programu GIMP tady.
Teď už jen najít čas a začít číst ..
Zdroje
http://fonsen.blogspot.com/2009/03/compiz-grid-in-ubuntu.html