neděle 30. listopadu 2014

Dlaždice v GNOME Shellu a Unity


Občas se hodí dát si dvě a více oken vedle sebe tak, aby byly vidět současně a zároveň se neplýtvalo místem. Dnešní desktopová prostředí většinou alespoň základní omezené možnosti pro uspořádání oken vedle sebe nabízejí, většinou roztažení jednotlivých oken na poloviny až čtvrtiny obrazovky. GNOME Shell patří ve výchozím stavu mezi nejslabší prostředí v tomto ohledu, sám umí pouze roztáhnout okna na levou a pravou polovinu, ale je k dispozici pár rozšíření, která jeho možnosti vylepší. Původně jsem tedy chtěl zmínit jen pár těchto rozšíření pro GS, ale když už jsem v tom, připomenu nejprve i možnosti Unity, resp. Compizu, které rozhodně nepatří mezi nejomezenější.



Unity / GNOME Flashback (Compiz)

Unity, výchozí prostředí Ubuntu, využívá plugin Compizu Grid, který umožňuje velmi efektivně skládat okna vedle sebe do mřížky 2x2, tedy buď na libovolnou polovinu, nebo čtvrtinu obrazovky. Přednastaveny jsou klávesové zkratky na Ctrl+Alt+klávesy numerického bloku (bez ohledu na Num Lock) a současně fungují i zkratky Ctrl+Super+šipky (levá / pravá polovina, celá obrazovka, návrat k původní velikosti / minimalizace). Klávesové zkratky si samozřejmě můžete přenastavit podle svého. K dispozici jsou také myší gesta, kdy stačí popadnout okno za lištu a najet k některé hraně obrazovky. Myší je ve výchozím nastavení možné okna umisťovat pouze na pravou / levou polovinu a celou obrazovku, ale jednoduše si můžete v pluginu Grid nastavit i čtvrtiny po najetí do rohu. Plugin se také dá nastavit tak, aby po opakovaném stisku klávesové zkratky určující polohu a velikost okna, okno dále měnilo svou velikost (pokud to umožňuje), takže když budete chtít okno roztáhnout na pravou stranu obrazovky, ale ne na celou, jen na užší pruh u kraje, dosáhnete toho několika stisky Ctrl+Alt+KP6 (klávesa 6 na numerickém bloku). Velikostí je přednastaveno několik a po dosažení té nejmenší se okno v dané rovině naopak zvětší oproti původní polovině obrazovky a opět se dalšími stisky zkratky zmenšuje.

Detailní nastavení chování pluginu Grid můžete nastavit přes CCSM, část nastavení související s myší naleznete i v Unity Tweak Tool.

Možnosti Unity jsou tedy poměrně široké, i když se vždy pracuje pouze s jedním oknem, které nijak neinteraguje s okny ostatními, jako v klasickém dlaždicovém prostředí.

GNOME Shell

GNOME Shell toho v základu moc neumí, umí okna roztahovat pouze na levou a pravou polovinu obrazovky, maximalizovat a demaximalizovat pomocí stejných klávesových zkratek, jako Unity, tedy Ctrl+Super+šipky (a Super+šipky vlevo/vpravo) nebo potažením okna myší ke krajům obrazovky. Rozdíl je tu v tom, že druhý stisk příslušné zkratky vrací okno do předchozí velikosti a umístění.

GS má ovšem v zásobě několik (neoficiálních) rozšíření, které možnosti dláždění významně doplňují:


Put Windows

Toto rozšíření vzniklo jako náhrada pluginu Grid z Compizu, který jsem představil výše. Dává tedy možnost umisťovat okna na čtvrtiny obrazovky, i ve třech krocích měnit velikost okna opakovaným stiskem klávesových zkratek, které ve výchozím stavu využívají klávesy Super (Win) a numerického bloku. Jaké poměry velikosti okna vzhledem k obrazovce se při tom použijí, si můžete šoupátky sami poupravit v nastavení rozšíření a to pro každý ze čtyř směrů zvlášť.

Put Windows počítá i s více monitory, není tak problém přilepit okno z jednoho monitoru na druhý, stačí jen klávesovou zkratku stisknout opakovaně a okno se posune na hranu dalšího monitoru, pokud tím směrem nějaký je. Tím se ovšem ztratí možnost měnit tímto způsobem velikost okna na společné hraně monitorů, pokud si v nastavení nezaškrtnete volbu Always use multiple widths/heights. K dispozici jsou i zkratky Shift+Super+šipky vlevo/vpravo pro přepínání fokusu mezi jednotlivými monitory, podle čeho ale vybírá okno k aktivaci mi není zcela jasné, snad nějak váží poměr plochy okna nejblíže k monitoru, ze kterého se fokus přemisťuje.

Nastavení PW zahrnuje i další drobnosti, takže si můžete chování jednotlivých akcí dále doladit. Můžete také uložit pozice pro konkrétní okna. V nastavení pluginu si jen přidáte okna ze seznamu právě otevřených a každému můžete šoupátky určit relativní (nastavuje s v procentech) velikost i umístění na libovolném, právě aktivním, monitoru. Přepínačem si určíte, zda se má okno na pozici přesouvat automaticky.

Další zajímavostí PW jsou klávesové zkratky (výchozí Super+I/J/K/L) pro přepínání oken podle relativního umístění na monitoru, lze tedy přepínat na okno vlevo, vpravo, nahoře, dole, což se u dlaždiček hodí. Nutno dodat, že tato funkce občas hapruje a zvláště na více monitorech na GS 3.10 se mi nechová zrovna předvídatelně. Na 3.12 je to lepší.

Všechny klávesové zkratky se také dají předefinovat, nebo úplně vypínat podle libosti.

Co ale PW nepodporuje, je myš, takže, oproti Gridu v Untity, si nenastavíte umístění okna na čtvrtinu obrazovky jeho přetažením do rohu obrazovky.

gTile

Rozšíření, které nevnucuje nějaké schéma a pevně rozmístěná okna, ale umožňuje každému oknu velmi jednoduše nadefinovat, jakou část obrazovky má obsadit. Kliknete do panelu na ikonku gTile, nad aktivním oknem se efektně objeví poloprůhledné okénko s maticí čtverců (hustota se dá vybrat z několika možností rovnou v něm), ve kterém můžete na dvě kliknutí definovat, jakou část obrazovky má okno pokrýt.

Na jedno kliknutí také můžete rozházet všechna okna na ploše do jednoho ze dvou předvolených layoutů, další přepínač definuje, zda po navolení pozice okna nabídka gTile zmizí, nebo zůstane na obrazovce pro možnost nastavit více oken za sebou. Nabídka gTile se vždy drží nad oknem, které je momentálně aktivní, i když s ním třeba pohnete, a také se plynule přesune, pokud aktivujete okno jiné.

Se dvěma monitory si gTile moc rady neví, v GS 3.10 funguje tak, že po aktivaci zobrazí své okénko na obou, přičemž to na monitoru s neaktivním oknem je nalepeno na společném okraji. Posouvání okénka nad aktivní okno funguje pouze na primárním monitoru, na sekundárním se pouze posune doprostřed, když zde má nějaké okno fokus. Ve chvíli, kdy použijete volbu předvoleného layoutu, je použito pouze monitoru, na kterém jste volbu provedli a všechno se vám tudíž sesype sem, naštěstí jen z aktuální viditelné plochy.

Výhodou gTile je jednoduchost, pokud jen občas potřebujete rychle poskládat tři čtyři okna vedle sebe. Na mém GS 3.10 občas trochu zlobí s tím, že se první klik myší na výchozí čtverec většinou na poprvé nechytne a musím to zkoušet i několikrát, než mi zůstane označen a mohu druhým kliknutím určit čtverec cílový.

ShellTile

Další vylepšení pro nenáročné dlaždiče klikače. Funkce tohoto rozšíření spočívá v tom, že můžete okna seskupovat do dlaždicového celku přetažením jednoho okna nad druhé za současného držení Ctrl. Okna pak drží pohromadě v nastavené mozaice (přemístíte jedno a ostatní se pak k němu přesunou) a takových celků si můžete udělat kolik chcete. Pokud jsou ale okna, která takto slučujete příliš malá, klidně se překryjí tak, že jedno přes druhé ani nevidíte. Stačí pak viditelné okno zvětšit a okna se dostanou vedle sebe. Pro vyjmutí konkrétního okna ze skupiny je nutné okno maximalizovat, dále už se chová samostatně.

ShellTile má svá omezení, ale pokud potřebujete vydláždit jen pár oken a zbytek desktopu nechat nedotčený, může ho zkusit.

shellshape

Pokud si chcete opravdu pořádně přičichnout k dlaždicové správě oken, toto rozšíření vám to dopřeje. Ikona rozšíření v panelu indikuje zvolené rozložení oken, které můžete přepínat i z jejího menu a může být na každé virtuální ploše jiné, takže můžete mít dlaždicovou třeba jen jedinou plochu a s ostatními nakládat běžným plovoucím způsobem. Dlaždicová rozložení mají buď vertikální, nebo horizontální orientaci, vždy je jedna část obrazovky jako hlavní, s hlavním oknem (případně více okny, dá se ještě dělit), a druhá jako vedlejší, pro všechna ostatní okna. Hlavní síla shellshape je ale v ovládání z klávesnice, pomocí zkratek můžete dělat všechny běžné manipulace s okny, prohazovat je mezi sebou, měnit poměr velikosti hlavní a vedlejší oblasti, i jednotlivých oken, okna do celku připínat a zase je odpínat, atd. Okna samozřejmě můžete i nadále honit myší, například přetažení jednoho okna nad druhé způsobí prohození jejich pozic a změna rozměru jednoho okna způsobí změnu i ostatních, tak aby zůstaly zarovnány podle zvoleného schéma. Tedy někdy, z klávesnice je to přeci jen spolehlivější.

Bohužel shellshape neumí využít více monitorů, vždy operuje pouze na primárním.

Závěrem

Nakonec jsem došel k tomu, že pro mé potřeby jsou naprosto dostačující rozšíření Grid v prostředí s Compizem a Put Windows v GNOME Shellu. Oba nástroje zvládají dva monitory a příliš neobtěžují svou nedokonalostí. Nejzajímavější z rozšíření je shellshape, ale i to má své drobné chybky. Problémy ještě podtrhují chyby v GNOME 3.10, kdy okna s client side dekorací, jako třeba Nautilus, mají kolem viditelného okna ještě cca 20px tlustý průhledný rám, takže v dlaždicovém uspořádání vypadají blbě a mrhají místem. V GS 3.12 se již toto naštěstí neobjevuje.

Žádné komentáře:

Okomentovat

Zkuste prosím při komentováni používat místo volby Anonymní volbu Název/adresa URL, kde vyplníte nějakou přezdívku, adresu zadávat nemusíte. Vědět, které příspěvky jsou od jednoho člověka, je fajn. Díky.

Pokud by se vám náhodou odeslaný komentář na stránce nezobrazil, vytáhnu ho z koše hned jak si toho všimnu. I Google spam filter se občas sekne.