pátek 4. června 2010

Jednoduché přepínání dvou monitorů na grafice Nvidia

Pokud máte dva monitory, nebo připojujete notebook k externímu monitoru, určitě se vám hodí nějaký rychlý způsob, jak přepínat jejich konfiguraci. Pokud používáte ATI Catalyst, nebo otevřené ovladače grafiky, můžete použít program xrandr (viz. můj novější článek), s ovladačem přímo od Nvidie jsem ale nepochodil. Nvidia-settings sice nabízí grafické rozhraní, ale pro přepnutí mezi monitory je třeba sedmkrát kliknout. To opravdu není zrovna pohodlné. Příkazový řádek sice nvidia-settings také poslouchá, ale opravdu jsem nepřišel na to, jak docílit jednoduchého přepnutí monitorů. Všiml si toho i Willem van Engen a protože není úplně neschopný, napsal si program Disper, který  jednoduše řeší všechny běžné požadavky na nastavení dvoumonitorového systému. Disper umí přepínat mezi jednotlivými monitory, zapnout rozšířený i kolonovaný režim, měnit rozlišení, škálování...

Disper je třeba nejdříve nainstalovat, pro uživatele Ubuntu má autor vlastní repozitář:

Uživatelé Karmica a Lucida to mají jednoduché:
$ sudo add-apt-repository ppa:wvengen/ppa
$ sudo apt-get update
$ sudo apt-get install disper

My se staršími systémy to nemáme zas o tolik složitější:
(nezapoměňte jaunty nahradit jménem vaší verze Ubuntu)
$ sudo su -c "echo 'deb http://ppa.launchpad.net/wvengen/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/wvengen/ppa/ubuntu jaunty main' >> /etc/apt/sources.list"
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 54422A4B98AB5139
$ sudo  apt-get update
$ sudo apt-get install disper

Pro Mavericka zatím repozitář není, ale vzhledem k tomu, že stejně instalační balík pro všechny verze systému je jen jeden, můžete použít druhý postup, nebo si prostě stáhnete instalační balík sami a nainstalujete běžným způsobem (poklepete na něj myší):
http://ppa.launchpad.net/wvengen/ubuntu/pool/main/d/disper/disper_0.2.3_all.deb

Disper se spouští jednoduše příkazem disper, následovaným přpínačem, kterým dáte vědět, co po něm chcete. Všechno se dozvíte z helpu.

Pro přehled vypíšu základní přepínače (použijete buď krátkou, nebo dlouhoverzi):


-l --list       vypíše připojené monitory s výčtem podporovaných rozlišení
-s --single     povolí pouze primární monitor
-S --secondary  povolí pouze sekundární monitor
-c --clone      na obou monitorech stejný obraz
-e --extend     pracovní plocha se rozšíří přes oba monitory


Mě osobně zajímá především cyklické přepínání mezi dvěma monitory, což disper sám přímo nedělá, proto jsem si napsal jednořádkový skript, který spouštím kliknutím na příslušnou ikonku v mém doku, nebo dálkovým ovladačem.

switch-monitor.sh
#!/bin/bash
[[ `xrandr -q | grep "connected 1920"` ]] && disper -S || disper -s

Mám dva monitory s rozdílným rozlišením, proto jsem se rozhodl detekovat aktivní monitor podle tohoto klíče. Pomocí xrandr tedy zjistím aktuální rozlišení (šlo by to i přes disper, ale je to o dost pomalejší) a na jeho základě spouštím disper s příslušným přepínačem. Primitivní, ale plně funkční.

5 komentářů:

  1. diky za info, jen mala poznamka:
    "Přišel na to ale Willem van Engen a protože není úplně neschopný, napsal si program Disper, ..." - imho pusobi tak, ze mily Willem neni uplny debil, ale jen castecny... :)

    just my 5c

    OdpovědětVymazat
  2. Snad to tak nebude brát i milý Willem, to by mě mrzelo, byla to pochvala :D

    OdpovědětVymazat
  3. vubec nechapu jak ten disper naistalovat a to nejsem zadny antitalent na compy... kdyz stahnu ten disper jsou tam je soubory a nejake slozky ale zadny spustitelny.. nejaka rada?

    OdpovědětVymazat
  4. nebo to neni pro windowsy? potrebuju neco cim jednoduse prepinat mezi 2ma monitory.. je to zbytecne slozite.. mam win 7 x64

    OdpovědětVymazat
  5. Tenno návod, a ani celý blog, opravdu není o Windows ;)

    OdpovědětVymazat

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.